当前位置: 首页 > news >正文

GD32H759IMT6 Cortex-M7 OpenHarmony轻量系统移植——4.1版本升级到5.0.3

笔者在去年利用国庆时间,将Cortex-M7 的国产厂商兆易创新GD32H459移植OpenHarmony轻量系统,但是适配不太完善——只能选择liteos-m接管中断。这样导致使用中断非常麻烦。于是笔者最近将接管中断模式修改为不接管,这样可以方便的使用gd32提供的中断。

相关开源地址:https://gitee.com/GD32H759_OpenHarmony/docs/blob/OpenHarmony-v5.0.3-Release/README.md

往期文章

  • 国产兆易创新Cortex-M7 GD32H459适配OpenHarmony轻量系统,代码开源!

  • 兆易创新Cortex-M7 GD32H459适配OpenHarmony轻量系统适配教程

  • GD32H759IMT6 Cortex-M7 OpenHarmony轻量系统移植——接管中断修改为不接管

如何在GD32H759IMT6 上使用OpenHarmony 5.0.3 轻量系统开发

1.首先搭建好OpenHarmony开发环境后,下载OpenHarmony轻量系统5.0.3r的hi3861代码

# 下载v5.0.3 版本hi3861源码
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v5.0.3-Release -m chipsets/hispark_pegasus.xml -g ohos:mini
repo sync -c
repo forall -c 'git lfs pull'

# 安装依赖
./build/build_scripts/env_setup.sh
source ~/.bashrc

# 下载编译工具
bash build/prebuilts_download.sh

# 执行一遍3861的编译命令确认环境有没有问题
./build.sh --product-name wifiiot_hispark_pegasus --ccache --no-prebuilt-sdk

2.将本组织下GD32H759的vendordevice替换掉上一步拉取的3861代码的vendor和device目录

# 5.0.3版本中需要将third_party/cmsis回退到4.1
rm -rf third_party/cmsis
git clone -b OpenHarmony-v4.1-Release https://gitee.com/openharmony/third_party_cmsis.git third_party/cmsis

rm -rf device
git clone -b OpenHarmony-v5.0.3-Release https://gitee.com/GD32H759_OpenHarmony/device.git device

rm -rf vendor
git clone -b OpenHarmony-v5.0.3-Release https://gitee.com/GD32H759_OpenHarmony/vendor.git

5.0.3版本中需要将third_party/cmsis回退到4.1,如果不回退,会显示cmsis版本太高导致无法编译通过(厂家提供的裸机文件一般是没问题的)

[OHOS ERROR] ../../../device/soc/gigadevice/gd32h7xx/libraries/drivers/src/gd32h7xx_misc.c: In function 'nvic_irq_enable':
[OHOS ERROR] ../../../device/soc/gigadevice/gd32h7xx/libraries/drivers/src/gd32h7xx_misc.c:101:11: error: 'NVIC_Type' {aka 'struct <anonymous>'} has no member named 'IP'; did you mean 'IPR'?
[OHOS ERROR]   101 |     NVIC->IP[nvic_irq] = (uint8_t)temp_priority;
[OHOS ERROR]       |           ^~
[OHOS ERROR]       |           IPR

[OHOS ERROR] Traceback (most recent call last):  

3.编译固件

rm -rf out
./build.sh --product-name GD32H759IMT6_BOARD --ccache --no-prebuilt-sdk

image.png

http://www.dtcms.com/a/112959.html

相关文章:

  • 网络编程—TCP/IP模型(UDP协议与自定义协议)
  • Altshuller矛盾矩阵查询:基于python和streamlit
  • 哈希表(Hashtable)核心知识点详解
  • 【虚拟仪器技术】Labview虚拟仪器技术习题答案(二),设计VI程序
  • 练习题:124
  • Java Web从入门到精通:全面探索与实战(一)
  • 基于YOLO11实例分割与奥比中光相机的快递包裹抓取点检测
  • 基于CATIA产品结构树智能排序的二次开发技术解析——深度定制BOM层级管理系统的Pycatia实践
  • docker搭建minio集群(简化版)
  • MessageQueue --- RabbitMQ WorkQueue
  • Redis-Hash类型
  • 我的购物车设计思考:从个人项目到生产实战思考的蜕变
  • 【Linux网络与网络编程】05.应用层自定义协议序列化和反序列化
  • Systemd构建自动化备份服务与外部存储管理
  • KAPC的前世今生--(下)下RPCRT4!NMP_SyncSendRecv函数分析
  • 去中心化指数(链上ETF)
  • 【小沐学Web3D】three.js 加载三维模型(React Three Fiber)
  • Cribl 通过Generic API新建 Dataset
  • 谈谈策略模式,策略模式的适用场景是什么?
  • 基本机动飞行性能
  • 车辆信息查询API——车辆车五项查询
  • 金融数据分析(Python)个人学习笔记(6):安装相关软件
  • PyTorch参数管理详解:从访问到初始化与共享
  • ARM架构与编程学习(四)(08_keil_gcc_Makefile)
  • 晶晨S905-S905L-S905LB_S905M2通刷_安卓6.0.1_16S极速开机_线刷固件包
  • 英语—四级CET4考试—蒙猜篇—匹配题
  • 测试:正交法设计测试用例
  • mysql数据库中getshell的方式总结
  • Java进阶-day06:反射、注解与动态代理深度解析
  • GPU显存占用高但利用率低的深度解析 (基于实际案例与技术文档)