本次学习FreeRTOS采用的是V9.0.0版本,因为FreeRTOS被亚马逊收购后,出来的是V10.0版本,它里边添加了一些基于云端的物联网的组件,学习的话,用不到,所以选择V9.0.0版本
FreeRTOS文件介绍
(了解FreeRTOS的文件夹的功能,可以更好的理解实时操作系统的架构,也方便移植裁剪)
整体文件
第一步 先看FreeRTOS文件夹
可以看到,里边有3个文件夹
Demo里边是FreeRTOS官方的对各个单片机移植好的一些工程代码
License里边是对FreeRTOS的一些许可信息,做产品需要的话可以看
Source文件夹——包含了FreeRTOS内核的源代码,在移植FreeRTOS到芯片中的时候,就需要这部分源代码
Source文件夹内部
接下来看portable文件夹内部
移植的时候需要用到这两个文件夹中的内容
MemMang文件夹(内存管理文件夹)
这5个内存管理是不同的方法,只需要使用一个即可。
在移植FreeRTOS到STM32上时,使用heap_4这个文件,后续会说为什么。
RVDS文件夹(根据不同的平台选择不同的接口)
FreeRTOS是一个软件,单片机是一个硬件,FreeRTOS想要运行在一个硬件上的时候,是需要将两者关联在一起的。
如何关联那?
通过接口文件进行关联,这些文件通常是由C或者汇编语言写的。
接口文件是与硬件相关的,不同的接口适配不同的硬件。编写接口文件的过程,就叫做移植。
其实我们所说的将FreeRTOS移植到STM32中,只是将官方写好的接口拿来使用。
Heap文件必须使用一个,因为FreeRTOS创建内核对象的时候使用的是动态内存分布,而动态内存分配的函数就是在这几个文件中实现的。不同的算法会导致不同的分配效率和结果,
第二步
FreeRTOSPlus文件夹中包含的是第三方的产品,大多数是在Windows环境中运行的,需要用到Windows模拟器