在原先GD32L233的工程中,如何移植FreeRTOS,主要分一下几个步骤:
从FreeRTOS官网下载代码源文件。
移植FreeRTOS核心代码。
调整FreeRTOSConfig配置文件。
调整原工程中的部分代码。
一、下载FreeRTOS源码
进入FreeRTOS下载最新的源码即可,官网链接:FreeRTOS™ - FreeRTOS™。
二、移植核心代码
在下载的文件中,进入FreeRTOS-Kernel的内核文件夹,移植代码。
如图所示,在内核文件夹中,需要移植四类文件到自己的工程文件夹中:
a) 公共文件。
b) 内核文件。在FreeRTOS-Kernel\portable\GCC\ARM_CM23_NTZ\non_secure文件内,因为内核是M23核,无TrustZone.
c) 内存管理文件。在FreeRTOS-Kernel\portable\GCC\ARM_CM23_NTZ\non_secure文件内,一般选heap_4的管理方式比较多。
d) 配置文件。在官网下载有示例程序的源码,找一个相同内核的MCU示例程序中的配置文件,然后在此基础定制。FreeRTOS\Demo\CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC。
把上面四类文件加到自己的工程文件后,在编译器添加所有文件和路径,这一步就算完成了。
三、调整FreeRTOSConfig配置文件
因为示例程序中的MCU和GD32L233还不太一样,配置文件需要稍微调整一下。1. 把MPU, Trustzone, 这些GD32中没有的模块,配置都需要关掉。2. 堆的大小调小一点,比如调整到15Kb。3. 系统时基Tick频率调整一下,比如1ms=1Khz。4.关闭静态分配STATIC_ALLOCATION。
四、调整原工程中的部分代码
工程原代码中的中断gd32l23x_it.c,需要屏蔽一下三个函数1.SVC_Handler;2. PendSV_Handler;3.SysTick_Handler;否则编译会报错提示重复定义申明。
最后,在main.c中创建一个新任务,编译通过,就说明FreeRTOS移植成功。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/miaozheChen/article/details/143471034
|