打印
[研电赛技术支持]

GD32L233移植FreeRTOS

[复制链接]
914|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-11-5 14:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在原先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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1931

主题

15611

帖子

11

粉丝