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/cmsisrm -rf device
git clone -b OpenHarmony-v5.0.3-Release https://gitee.com/GD32H759_OpenHarmony/device.git devicerm -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.mzph.cn/web/75223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法竞赛】树上最长公共路径前缀(蓝桥杯2024真题·团建·超详细解析)

目录 一、题目 二、思路 1. 问题转化&#xff1a;同步DFS走树 2. 优化&#xff1a;同步DFS匹配 3. 状态设计&#xff1a;dfs参数含义 4. 匹配过程&#xff1a;用 map 建立权值索引 5. 终止条件&#xff1a;无法匹配则更新答案 6. 总结 三、完整代码 四、知识点总…

开源免费虚拟化平台PVE软件定义网络

一、PVE SDN&#xff08;Software Defined Networking&#xff09;原理与使用逻辑 SDN&#xff08;软件定义网络&#xff09; 是一种将网络控制逻辑从传统交换机、路由器中分离出来的技术&#xff0c;使得网络可以通过软件集中管理和自动化配置。 Proxmox VE&#xff08;PVE&…

mysql 8.0.41下载安装教程(附安装包)mysql 8.0.41图文详细安装教程

文章目录 前言一、mysql 8.0.41 简介二、安装前准备三、MySQL 8.0 安装流程解析1.解压安装包2.启动安装程序3.选择安装类型4.选择安装组件5.开始安装6.配置设置&#xff08;部分步骤&#xff09;7.设置数据库密码8.完成安装配置9.配置环境变量&#xff1a;10.验证安装&#xff…

JAVA基础八股复习

1.局部变量一般存放在栈中&#xff0c;成员变量一般存放在堆中 2.什么是多态&#xff1f;谈谈对多态的理解&#xff1f; 在面向对象语言中&#xff0c;接口的多种不同的实现方式即为多态。用白话来说&#xff0c;就是多个对象调用同一个方法&#xff0c;得到不同的结果。 多态中…

10:00开始面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

k8s核心资源对象一(入门到精通)

本文将深入探讨Kubernetes中的核心资源对象&#xff0c;包括Pod、Deployment、Service、Ingress、ConfigMap和Secret&#xff0c;详细解析其概念、功能以及实际应用场景&#xff0c;帮助读者全面掌握这些关键组件的使用方法。 一、pod 1 pod概念 k8s最小调度单元&#xff0c;…

《Sqoop 快速上手:安装 + 测试实战》

推荐原文 见&#xff1a;http://docs.xupengboo.top/bigdata/di/sqoop.html Sqoop&#xff08;SQL-to-Hadoop&#xff09; 是 Apache 开源的工具&#xff0c;专门用于在 Hadoop 生态系统&#xff08;如 HDFS、Hive、HBase&#xff09; 和 关系型数据库&#xff08;如 MySQL、O…

数据结构刷题之贪心算法

贪心算法&#xff08;Greedy Algorithm&#xff09; 是一种在每个步骤中都选择当前最优解的算法设计策略。它通常用于解决优化问题&#xff0c;例如最小化成本或最大化收益。贪心算法的核心思想是&#xff1a;在每一步选择中&#xff0c;都做出局部最优的选择&#xff0c;希望…

重新定义PPT创作!ChatPPT发布全球首个AI PPT专用MCP Server

在这个AI技术日新月异的时代&#xff0c;ChatPPT团队推出革命性的MCP Server&#xff08;Multimodal Collaboration Platform&#xff09;&#xff0c;这是全球首个专注于AI PPT生成领域的智能协作平台。该平台的诞生&#xff0c;标志着PPT创作正式迈入"智能协作"新纪…

未来蓉城:科技与生态共舞的诗意栖居-成都

故事背景 故事发生在中国四川成都的2075年&#xff0c;展现科技与自然深度交融的未来城市图景。通过六个充满想象力的生态装置场景&#xff0c;描绘市民在智慧城市中诗意栖居的生活状态&#xff0c;展现环境保护与人文传承的和谐共生。 故事内容 在电子竹林轻轨站&#xff0c;通…

计算机网络笔记-分组交换网中的时延

一、分组交换网络中的四种时延类型 1. 排队时延 在队列中&#xff0c;当分组在链路上等着被传输时的时延为排队时延&#xff0c;一个分组的排队时延长度取决于该分组前方等待传输的分组数量&#xff0c;如果排队队列为空&#xff0c;且没有正在传输的分组那么该分组的排队时延…

ubuntu20.04.6LTS 安装PCL 1.9.1

在虚拟机中&#xff0c;ubuntu20.04.6 LTS 安装PCL 1.9.1&#xff0c;实测成功了。 注意&#xff1a; 1、编译时选择双核&#xff0c;否则编译到一半报错&#xff0c;因为内存不够进程被杀死。 虚拟机是4核心、内存8G。可能选3核更快一点&#xff0c;双核编译了2个多小时。 …

SQL:JOIN 完全指南:从基础到实战应用

JOIN 是 SQL 中最重要也最常用的操作之一&#xff0c;它允许我们从多个表中获取关联数据。本文将全面解析 SQL 中的各种 JOIN 类型&#xff0c;包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 以及 CROSS JOIN&#xff0c;并通过实际示例展示它们的应用场景。 一、JOIN 基…

IDEA 2024 Maven 设置为全局本地仓库,避免新建项目重新配置maven

使用idea创建Java项目时每次都要重新配置Maven&#xff0c;非常麻烦。其实IDEA可以配置全局Maven。方法如下&#xff1a; 1.关闭所有项目进入初始页面 2.选择所有配置 3.设置为自己的路径

UDP怎么样实现可靠传输?

如果需要在基于UDP的应用中实现可靠传输&#xff08;例如确保数据不丢失、按顺序到达等&#xff09;&#xff0c;通常需要在应用层实现相应的机制。 1. 确认应答机制 应用层可以使用确认应答机制来确保数据的可靠传输。当发送方发送一个数据包时&#xff0c;接收方收到数据包…

【CSS基础】- 02(emmet语法、复合选择器、显示模式、背景标签)

css第二天 一、emmet语法 1、简介 ​ Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法。 ​ 快速生成HTML结构语法 ​ 快速生成CSS样式语法 2、快速生成HTML结构语法 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab…

每日算法:洛谷U535992 J-C 小梦的宝石收集(双指针、二分)

题目描述 小梦有 n 颗能量宝石&#xff0c;其中第 i 颗的能量为 ai​&#xff0c;但这些能量宝石十分不稳定&#xff0c;随时有可能发生崩坏&#xff0c;导致他们全部消失&#xff01; 小梦想要留住宝石们&#xff0c;不希望他们发生崩坏&#xff0c;同时他发现&#xff1a;如…

Spring MVC 逻辑视图(JSP、Thymeleaf、FreeMarker)与非逻辑视图(JSON、Excel、PDF、XML)详解及示例

Spring MVC 逻辑视图与非逻辑视图详解及示例 一、逻辑视图与非逻辑视图的定义 类型定义逻辑视图通过视图解析器&#xff08;ViewResolver&#xff09;将逻辑名称&#xff08;如 success&#xff09;映射到具体视图实现。非逻辑视图直接返回具体视图对象&#xff08;如 JsonVie…

【AAOS】【源码分析】CarAudioService(二)-- 功能介绍

汽车音频是 Android 汽车操作系统 (AAOS) 的一项功能,允许车辆播放信息娱乐声音,例如媒体、导航和通信。AAOS 不负责具有严格可用性和时间要求的铃声和警告,因为这些声音通常由车辆的硬件处理。将汽车音频服务集成在汽车中,彻底改变了驾驶体验,为驾驶员和乘客提供了音乐、…

docker安装软件汇总(持续更新)

1、简介 本文介绍一些常用的软件通过docker安装并启动&#xff0c;持续更新。 2、docker安装软件 2.1、zookeeper & kafka # 1、拉取zookeeper镜像 git pull wurstmeister/zookeeper # 2、启动zookeeper容器 docker run -d --restartalways --log-driver json-file --lo…