打印

移植FreeRTOS到GD32F350RX

[复制链接]
1932|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本文讲解的是使用移植FreeRTOS到GD32F350RX中(基于KEIL 5编译器)。
系统移植之后创建了3个任务,LED1,LED2,LED3交替闪烁,每个LED的闪烁交替周期不一样。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
FreeRTOS源码下载

首先需要下载FreeRTOS的源码:FreeRTOS源码https://www.freertos.org/a00104.html



下载之后解压。



使用特权

评论回复
评论
喂什么玩意 2022-12-31 23:10 回复TA
———————————————— 版权声明:本文为CSDN博主「无敌小羊历险记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_34471172/article/details/113073013 
沙发
喂什么玩意|  楼主 | 2022-12-31 23:10 | 只看该作者
GD32F350RX工程
在开始移植之前,我们需要准备一个GD32F350RX的工程文件,需要先确保这个工程能够跑去来。
GD32F350RX工程可以在兆易创新的官网上下载,对于工程创建运行不在本文的讨论范围之内。
本文使用的是一个LED的工程,运行之后可以看到三个LED交替变化闪烁。

使用特权

评论回复
板凳
喂什么玩意|  楼主 | 2022-12-31 23:11 | 只看该作者

创建一个FreeRTOS文件夹用于存放FreeRTOS的内核源码文件。

使用特权

评论回复
地板
喂什么玩意|  楼主 | 2022-12-31 23:12 | 只看该作者
FreeRTOS的移植
打开我们下载解压的FreeRTOS源码文件夹。

使用特权

评论回复
5
喂什么玩意|  楼主 | 2022-12-31 23:14 | 只看该作者
FreeRTOS目录结构介绍
打开文件夹之后有两个文件夹:一个是FreeRTOS,另一个是FreeRTOS-Plus。
我们进行系统移植主要使用的就是FreeRTOS里面的内容,FreeRTOS-Plus中的内容是一个扩展功能,和系统内核是没有关系的,我们在系统的移植的过程中不用管。
打开FreeRTOS文件夹:里面有三个文件夹Demo,License,Source。

使用特权

评论回复
6
喂什么玩意|  楼主 | 2022-12-31 23:16 | 只看该作者
Demo中存放的是一些开发板和芯片的例程,可以参考,本文中对GD32F350RX进行移植的时候就需要参考STM32中的例程。

License中存放的是使用权限,也不用关心,FreeRTOS是开源免费的。

使用特权

评论回复
7
喂什么玩意|  楼主 | 2022-12-31 23:17 | 只看该作者
Source就是FreeRTOS的内核源文件,我们移植过程中主要使用到的就是这个文件夹里面的文件。

使用特权

评论回复
8
喂什么玩意|  楼主 | 2022-12-31 23:18 | 只看该作者
系统移植过程
下面开始将系统的移植过程。

使用特权

评论回复
9
喂什么玩意|  楼主 | 2022-12-31 23:19 | 只看该作者
复制需要使用到的文件
首先打开Source文件夹,我们需要使用到的源码如下所示:
这里面的*.c文件我们都需要使用到。
将红色方框中的文件全部复制到上面我们在工程文件夹中创建的文件夹FreeRTOS中。

使用特权

评论回复
10
喂什么玩意|  楼主 | 2022-12-31 23:20 | 只看该作者

使用特权

评论回复
11
喂什么玩意|  楼主 | 2022-12-31 23:20 | 只看该作者
复制到GDF350RX工程中如下所示,其中的*.c文件以及文件夹include中的头文件都会使用到,所以不能删除:

使用特权

评论回复
12
喂什么玩意|  楼主 | 2022-12-31 23:21 | 只看该作者

使用特权

评论回复
13
喂什么玩意|  楼主 | 2022-12-31 23:22 | 只看该作者
删除不需要使用的文件以及文件夹
打开portable文件夹,可以看到其中有很多文件夹,我们需要使用到是如下所示几个。
我们只需要保留下面的三个文件夹即可,其他的都可以删除掉


使用特权

评论回复
14
喂什么玩意|  楼主 | 2022-12-31 23:22 | 只看该作者

使用特权

评论回复
15
喂什么玩意|  楼主 | 2022-12-31 23:23 | 只看该作者
RVDS中GD32需要使用到的内核文件
打开RVDS文件夹,看到里面列举了很多种芯片的文件夹,GD32F350RX需要使用的是ARM_CM3,虽然是一款M4内核的单片机,但是汇编指令还是M3的,所以需要使用这个,其他不使用的可以删除掉。

使用特权

评论回复
16
喂什么玩意|  楼主 | 2022-12-31 23:24 | 只看该作者

使用特权

评论回复
17
喂什么玩意|  楼主 | 2022-12-31 23:26 | 只看该作者
导入FreeRTOS内核文件到GD32工程中
打开GD32F350RX的工程,然后打开Manage Project Items,添加FreeRTOS内容源码文件到工程中,先添加源文件。

使用特权

评论回复
18
喂什么玩意|  楼主 | 2022-12-31 23:26 | 只看该作者
先创建两个文件夹,FreeRTOS以及FreeRTOS_H,FreeROS里面存放*.c文件,FreeRTOS_H里面存放头文件,这个也可以不需要,主要是为了方便打开头文件进行查看。

使用特权

评论回复
19
喂什么玩意|  楼主 | 2022-12-31 23:28 | 只看该作者
导入内核文件

使用特权

评论回复
20
喂什么玩意|  楼主 | 2022-12-31 23:29 | 只看该作者
导入内存处理文件

使用特权

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

本版积分规则

39

主题

416

帖子

0

粉丝