移植最新版本OpenHarmony到STM32F407

本文介绍了如何将OpenHarmony 3.1移植到STM32F407单片机上,包括开发环境准备、获取源码、配置编译文件、修改链接脚本、中断服务函数和串口映射等关键步骤。通过移植,可以利用OpenHarmony的最新特性在MCU上运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32F407移植OpenHarmony系统

一、前言

最近OpenHarmony3.1已正式发布,标准系统(LiteOS-A)基础能力增强,小型系统(LiteOS-M)基本没啥变化,趋于稳定,为了弥补这个缺陷,移植最新的LiteOS-M到MCU上,使用最新的系统特性,我又研究了一下OpenHarmony移植到MCU的过程,之前移植失败有些细节没有注意到,后面研究后发现其实整体框架还是很清晰的,顺便将OpenHarmony 移植到MCU的过程分享给大家,相关教程和代码放在我的Gitee和Github仓库。

移植编译的方式使用的Makefile进行编译构建,没有使用官方推荐的najia进行构建,官方对于的najia的构建方式的描写的挺详细,也是主推的方法,有兴趣的可以自行去了解,我个人偏向于使用Make方式。

二、开发环境

硬件平台

原子开发板

软件环境

VSCode、STM32CubeMX、Git工具

技术基础&#x

### 野火 STM32F407ZG 开发板相关资料与教程 野火 STM32F407ZG 开发板是一款基于 STM32F407ZG 芯片的高性能开发平台,广泛应用于嵌入式系统开发。以下为关于该开发板的技术资料、教程及配置方法的相关信息。 #### 1. 官方文档与工具 官方提供的文档和工具是学习和使用 STM32F407ZG 开发板的基础资源。用户可以参考以下内容: - **STM32CubeMX**:用于初始化外设配置和生成代码框架的图形化工具[^1]。 - **STM32固件库(Standard Peripheral Library)**:提供了对 STM32 系列微控制器外设的低级访问接口[^1]。 - **STM32Cube HAL 库**:高级抽象层库,简化了复杂外设的操作[^3]。 #### 2. 配置 GPIO 输出示例 以下是一个配置 GPIO 输出的代码示例,展示了如何通过 STM32 固件库控制 LED 的亮灭: ```c #include "stm32f4xx.h" void Delay(__IO uint32_t nCount) { while (nCount--) {} } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能 GPIOF 时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); // 配置 PF9 和 PF10 为推挽输出模式 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOF, &GPIO_InitStructure); while (1) { // 设置 PF9 和 PF10 为高电平 GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10); Delay(0x7FFFFF); // 设置 PF9 和 PF10 为低电平 GPIO_ResetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10); Delay(0x7FFFFF); } } ``` 上述代码实现了对 GPIOF 端口的配置,并通过循环控制 LED 的闪烁[^1]。 #### 3. ADC 多通道采集与 DMA 传输 对于需要进行多通道 ADC 采集的应用场景,可以使用 DMA 传输以提高效率。以下是配置 ADC 和 DMA 的关键步骤: - 初始化 ADC 和 DMA 模块。 - 启用 DMA 传输功能。 - 在主函数中启动 ADC 转换并等待数据完成。 示例代码如下: ```c HAL_ADC_Start_DMA(&hadc3, (uint32_t *)ADC3_sampling.adc3_dma_storage, 4 * Filter_width); ``` 此代码片段展示了如何通过 HAL 库启动 ADC 的 DMA 数据传输[^3]。 #### 4. DAP 下载器调试问题解决 在使用 DAP 下载器调试过程中,可能会遇到报错问题。例如,当将原工程中的芯片型号从 F407VET6 更改为 F407ZGT6 时,可能导致下载失败。解决方案包括: - 确保芯片型号与实际硬件一致[^4]。 - 清理工程文件并重新生成代码框架。 - 更新或重新安装 ST-LINK 驱动程序。 #### 5. OpenHarmony 移植教程 若计划将 OpenHarmony 系统移植STM32F407ZG 开发板上,可以参考以下步骤: - 安装必要的工具链,如 make 工具[^2]。 - 配置内核和驱动以适配硬件特性。 - 编译并烧录生成的镜像文件到目标板。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬件那些事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值