企业营销型网站系统,甘肃省酒泉市做网站公司,wordpress模板fruit,手机资讯类网站模板概述 本文主要描述了GD32E230移植FreeRTOS的简要步骤。移植描述过程中#xff0c;忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_FreeRTOS这个工程#xff0c;该工程已经下载放好了移植GD32E230 FreeRTOS的所有文件 OpenMCU_FreeRTOS工程…概述 本文主要描述了GD32E230移植FreeRTOS的简要步骤。移植描述过程中忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_FreeRTOS这个工程该工程已经下载放好了移植GD32E230 FreeRTOS的所有文件 OpenMCU_FreeRTOS工程的愿景主要有 1.、能移植支持主流mcu的freeRTOS 2、深入分析FreeRTOS代码和第三方库代码让嵌入式学习变得非常容易 3、集成一些嵌入式产品中常用的第三方库文件并且该工程会开发做一些产品原型所有的技术方案就像它的名字一样全部开源。
移植步骤
1、keil创建GD32E230的工程 注意一定要选中RTE中CMSIS中的CORE部分 2、工程创建完毕后在keil中建立分组管理如下所示 创建完成后的效果 4、下载FreeRTOS源码 本文在描述过程中所有的源码都是基于OpenMCU_FreeRTOS工程。文章的最后部分有该工程的链接。
5、在刚才新创建的keil GD32E230工程目录下创建Appication文件夹和Utilities文件夹 6、将如下文件拷贝到Application文件夹下面. 7、将如下文件拷贝到Utilities文件下下面 注 拷贝的文件都来自于OpenMCU_RTOS工程读者可以通过文章最后的连接获得工程源码。
8、Application分组添加c文件 9、CMSIS添加system_gd32e23x.c C文件文件存放的路径为
OpenMCU_FreeRTOS\arch\GD32\GD32E23x\CMSIS\GD\GD32E23x\Source\ 10、添加GD32E23x BSP驱动文件文件路径为
OpenMCU_FreeRTOS\arch\GD32\GD32E23x\GD32E23x_BSP\Source 11、添加启动文件startup_gd32e23x.s
文件路径OpenMCU_FreeRTOS\arch\GD32\GD32E23x\CMSIS\GD\GD32E23x\Source\ARM\startup_gd32e23x.s 12、添加freeRTOS内核C文件文件路径为
OpenMCU_FreeRTOS\kernel 13、添加内核移植中的与GD32E230相关的代码 由于GD23E230基于Cortex-M23架构这部分代码跟Cortex-M4和Corex-M0的架构的移植不同有安全和非安全的区别我们基于非安全并且不开启ARM TrustZone特性进行讲解描述; 需要关注的文件路径:
port.c文件OpenMCU_FreeRTOS\kernel\portable\ARMv8M\non_secure
portasm.c: OpenMCU_FreeRTOS\kernel\portable\ARMv8M\non_secure\portable\GCC\ARM_CM23_NTZ
heap_4.c: OpenMCU_FreeRTOS\kernel\portable\MemMang
FreeRTOSConfig.h: GD32E230\Application
14、所有分组添加完后如下图所示 15、添加编译时的头文件路径
1、Application
2、OpenMCU_FreeRTOS\arch\GD32\GD32E23x\CMSIS\GD\GD32E23x\Include
3、OpenMCU_FreeRTOS\arch\GD32\GD32E23x\CMSIS
4、OpenMCU_FreeRTOS\arch\GD32\GD32E23x\GD32E23x_BSP\Include
5、Utilities
6、OpenMCU_FreeRTOS\kernel\include
7、OpenMCU_FreeRTOS\kernel\portable\ARMv8M\non_secure
8、OpenMCU_FreeRTOS\kernel\portable\ARMv8M\non_secure\portable\GCC\ARM_CM23_NTZ
添加完成后如下所示: 16、编译器选项设置
加入GD32E230定义和修改编译警告级别 17、修改gd32e23x_it.c文件中的如下函数定义
删除SVC_Handler PendSV_Handler SysTick_Handler 等函数定义
18、修改FreeRTOSConfig.h文件将堆内存修改为5KB
由于整个GD32E230系列的SRAM配置如下如所示 因此将FreeRTOS的堆内存调整为5KB(程序本身加载也占用内存调整过大会导致程序链接编译错误) 19、编译输出 工程连接
yanl1229/OpenMCU_FreeRTOS