【基于FreeRTOS的STM32F103系统】简介及官方文件移植
【基于FreeRTOS的STM32F103系统】编写FreeRTOS程序
【基于FreeRTOS的STM32F103系统】内存管理及任务调度
【基于FreeRTOS的STM32F103系统】Heap_4内存管理机制程序详解
【基于FreeRTOS的STM32F103系统】移动底盘程序优化
最近在做毕设,发现了一套STM32的底盘驱动程序,其中有一大段内容我直接看不懂,经过查阅资料才发现是一位牛逼的工程师将RTOS移植到了STM32中,代替了常规的裸机开发,我看不懂,但我大为震撼,于是展开了基于FreeRTOS的STM32F103学习。
RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格,允许偶尔的超时。
在实时操作系统中,我们可以把要实现的功能划分为多个任务,每任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是个死循环。
RTOS操作系统: FreeRTOS,UcOS, RTX, RT-Thread, DJYOS等。
FreeRTOS内核属于可剥夺型内核,负责管理所有的任务,任务之间可以根据优先级进行抢断,由内核决定运行哪个任务,多任务管理有助于模块化开发。
FreeRTOS小巧简洁,包含了资源管理、同步、任务通讯等功能,基本能满足机器人工程师的使用。
(1)主目录下
FreeRTOS-Plus:生态文件,非必需(删除)
tools:亚马逊相关文件(删除)
(2)FreeRTOS目录下
Demo:只保留需要的单片机型号的文件和Common文件
Source:FreeRTOS的核心文件,源码
在其中的portable文件夹中,只保留RVDS和MenMang文件夹
最后,还可以进一步精简,在RVDS文件夹中,只保留与自己单片机对应的架构,STM32F103的话则保留ARM-CM3即可。
最后打开Demo中的Keil项目编译即可
进行了简单介绍和移植,需要对FreeRTOS代码进行进一步改进和编写,使其融入我们的项目。