梁山派GD32F470移植FreeRTOS

准备工作

  1. 梁山派:梁山派有两个版本1.0.1(GD32F450)和1.0.2(GD32F470)版本
  2. GD32F470项目: https://gitea.klelee.org/klelee/GD32F470ZGT6
  3. FreeRTOS源码:

移植过程

FreeRTOS内核精简

我们下载到的FreeRTOS解压后得到如下目录,我们只需要其中的FreeRTOS目录,及其两个子目录Demo和Source下的部分文件,其他的文件和目录均删除。

image-20240406093920792

精简后的FreeRTOS源码如下:

image-20240406120300423

Keil项目导入FreeRTOS

首先将上面裁剪完成的FreeRTOS内核放到工程下面

image-20240406130224771

双击打开GD32F470.uvprojx

image-20240406130033784

在工程中创建FreeRTOS目录

image-20240406130423271

将本地FreeRTOS相关源码导入工程

image-20240406130627493

在项目下的FreeRTOS目录下找到source目录,选中该目录下的所有c文件,并点击Add

image-20240406130755014

image-20240406130916576

继续添加其他c文件,按照同样的步骤找到heap_4.c并添加:

image-20240406131112552

继续找到port.c并添加

image-20240406131229067

导入FreeRTOSconfig.h

GD32F470ZGT6\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK 目录下的FreeRTOSConfig.h文件复制到GD32F470ZGT6\FreeRTOS\Source\include 下。

将FreeRTOS的头文件路径配置到项目中

image-20240406131710017

image-20240406131914629

继续导入port.h 的头文件路径

image-20240406132102427

至此,FreeRTOS的导入工作就完成了。

工程配置

不使用微库

image-20240406143656245

关闭微库后printf重定向的问题就会报错,可以进行如下调整:


#if !defined(__MICROLIB)
//不使用微库的话就需要添加下面的函数
#if (__ARMCLIB_VERSION 
\n#技术交流#
#if(__ARMCLIB_VERSION\n#
立创开发板

还没有评论,抢个沙发!