一、FreeRTOS简单介绍
FreeRTOS是一款 “开源免费”的实时操作系统,遵循的是 GPLv2+的许可协议,由美国的 Richard Barry 于 2003 年发布,Richard Barry 是FreeRTOS 的拥有 者和维护者,在过去的十多年中FreeRTOS历经了 9 个版本,与众多半导体厂商合作密切, 累计开发者数百万,是目前市场占有率最高的 RTOS。
FreeRTOS于 2018 年被亚马逊收购,改名为 AWS FreeRTOS,版本号升级为 V10,且 开源协议也由原来的 GPLv2+修改为 MIT,与 GPLv2+相比,MIT 更加开放,你完全可以理解为是为所欲为的免费。V9 以前的版本还是维持原样,V10 版本相比于 V9 就是加入了一 些物联网相关的组件,内核基本不变。亚马逊收购FreeRTOS也是为了进军眼下炒的火热 的物联网和人工智能。
- 随着产品要实现的功能越来越多,单纯的裸机系统已经不能够完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,我们可以考虑引入RTOS 实现多任务管理,这是使用RTOS 的最大优势。
二、移植准备
- 下面的网址是官方最新源码的下载地址:
https://sourceforge.net/projects/freertos/files/latest/download?source=files
FreeRTOS源码在解压目录下的路径FreeRTOS_V9.0.0rc2\FreeRTOS\Source

- FreeRTOS的源码核心部分是tasks.c和list.c,其余的几个文件功能都是可选的,例如软件定时器、队列、协程等等。include文件夹里面的文件是操作系统相关的头文件,portable文件夹里的文件与平台相关
- 进入portable文件夹,打开keil文件夹,里面只有一个文件,文件提示See-also-the-RVDS-directory,意思是参照RVDS目录下的文件,以MDK建工程时,就是拿RVDS目录下的文件来替代的,因此应该把RVDS目录下的文件拷贝到Keil目录下,我们只需要把RVDS文件夹中的ARM_CM3文件拷贝到keil中即可。


- 这时portable文件夹中其他文件可以删除了,只保留keil,MemMang文件即可。
三、移植
(1)新建MDK工程
- 首先新建一个MDK工程,这里我使用的是正点原子的库函数模板,可以在www.openedv.com的资料下载里下载。
(2)添加FreeRTOS文件
- 点击上方

- 新建好FreeRTOS文件,将
FreeRTOS\tasks.c
FreeRTOS\list.c
FreeRTOS\portable\Keil\ARM_CM3\port.c
FreeRTOS\portable\MemMang\heap_4.c
这四个文件添加进来
第五个文件FreeRTOSConfig.h文件在FreeRTOS\Demo\CORTEX_STM32F103_Keil,这里我将它拷贝过来与这四个文件放在了一起,在添加的时候文件类型是默认显示.c文件的,要想看到.h文件需要选择All Files。

(3)添加头文件路径
- 点击上方

本文介绍了FreeRTOS实时操作系统,它被亚马逊收购后改名并升级协议。阐述了在STM32F103上移植FreeRTOS的步骤,包括准备工作、新建MDK工程、添加文件、设置头文件路径和修改文件等,还给出了应用示例,最后总结移植能实现多任务管理、降低编程难度。
最低0.47元/天 解锁文章
1103

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



