上一章中我们初步的了解了一下 FreeRTOS,本章就正式踏上 FreeRTOS 的学习之路, 首先
肯定是把 FreeRTOS 移植到我们所使用的平台上, 这里以 ALIENTEK 的 STM32F103 开发板为
例,本章分为如下几部分:
2.1 准备工作
2.2 FreeRTOS 移植
2.3 移植验证实验
2.1 准备工作
2.1.1 准备基础工程
要移植 FreeRTOS,肯定需要一个基础工程, 基础工程越简单越好, 这里我们就用基础例程
中的跑马灯实验来作为基础工程。
2.1.2 FreeRTOS 系统源码
FreeRTOS 系统源码在上一章已经详细的讲解过如何获取了, 这里我们会将 FreeRTOS 的系
统源码放到开发板光盘中去,路径为: 6, 软件资料->14, FreeRTOS 学习资料->FreeRTOS 源码。
2.2 FreeRTOS 移植
2.2.1 向工程中添加相应文件
1、 添加 FreeRTOS 源码
在基础工程中新建一个名为 FreeRTOS 的文件夹, 如图 2.2.1.1 所示:
图 2.2.1.1 新建 FreeRTOS 文件夹
创建 FreeRTOS 文件夹以后就可以将 FreeRTOS 的源码添加到这个文件夹中, 添加完以后
如图 2.2.1.2 所示:
图 2.2.1.2 添加 FreeRTOS 源码
在 1.3.2 小节中详细的讲解过 portable 文件夹,我们只需要留下 keil、 MemMang 和 RVDS
这三个文件夹, 其他的都可以删除掉, 完成以后如图 2.2.1.3 所示:

图 2.2.1.3 portable 文件夹
2、向工程分组中添加文件
打开基础工程,新建分组 FreeRTOS_CORE 和 FreeRTOS_PORTABLE,然后向这两个分组
中添加文件,如图 2.2.1.4 所示:

图 2.2.1.4 添加文件
分组 FreeRTOS_CORE 中的文件在什么地方就不说了,打开 FreeRTOS 源码一目了然。 重
点来说说 FreeRTOS_PORTABLE 分组中的 port.c 和 heap_4.c 是怎么来的, port.c 是 RVDS 文件夹下的 ARM_CM3 中的文件, 因为 STM32F103 是 Cortex-M3 内核的, 因此要选择 ARM_CM3中的 port.c 文件。 heap_4.c 是 MemMang 文件夹中的,前面说了 MemMang 是跟内存管理相关的,里面有 5 个 c 文件: heap_1.c、 heap_2.c、 heap_3.c、 heap_4.c 和 heap_5.c。
这 5 个 c 文件是五种不同的内存管理方法,就像从北京到上海你可以坐火车、坐飞机, 如果心情好的话也可以走路,反正有很多种方法, 只要能到上海就行。这里也一样的,这 5 个文件都可以用来作为FreeRTOS 的内存管理文件, 只是它们的实现原理不同, 各有利弊。 这里我们选择 heap_4.c,至于原因, 后面会有一章节专门来讲解 FreeRTOS 的内存管理,到时候大家就知道原因了。 这里就先选择 heap_4.c,毕竟本章的重点是 FreeRTOS 的移植。
3、 添加相应的头文件路径
添加

本文以ALIENTEK的STM32F103开发板为例,介绍FreeRTOS的移植过程。先进行准备工作,包括准备基础工程和获取系统源码;接着进行移植,向工程添加文件、修改SYSTEM文件;最后进行移植验证实验,设计四个任务,运行结果显示LED0和LED1按设定闪烁,证明移植成功。


被折叠的 条评论
为什么被折叠?



