一、什么是FREERTOS
来玩下拆字游戏FREERTOS = Free + RTOS;Free = 免费;
RTOS = Real Time Operation System = 实时操作系统;
所以FREERTOS就是一款免费的实时操作系统了。
FREERTOS的作者:美国人 Richard Barry
发布时间:2003年
亚马逊收购时间:2018年,版本就变成V10.0.0了
二、怎么获得FREERTOS源码
两个渠道可以获得FREERTOS源码,一个是官网,一个是代码托管网站:
官网地址:https://www.freertos.org/
托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/
一般从托管网站下载比较方便,而且下载V9.0.0版本的人最多,据说是因为这个版本内核稳定,资料多。看自己的喜好了,毕竟STM32CubeMX里面集成的版本是V10.0.X了。
三、FREERTOS结构
从托管网站下载下来的V9.0.0版本的内核就以下这些内容
FREERTOS的内核源代码就在Source文件夹里,Demo文件夹就是一些例程,感兴趣的可以去看看。重点还是在Source文件夹里。
include文件夹里面的头文件和croutine.c、event_groups.c、list.c、queue.c、task.c、timers.c这6个源文件是通用文件,所谓通用文件就是说不管用什么编译器和处理器,只要是移植这个版本的FREERTOS内核,都要把这几个通用的文件拿过去。
portable文件夹就是需要根据编译器和处理器来选择需要的文件。
看看portable文件夹的内容
新手看到这一堆的文件夹就头大,仔细看看BCC、CCS、GCC、IAR、KEIL这种的是不是大家常见的各种编译器,学单片机最常见的就是IAR和KEIL这两个编译器了。
没事点进去看看,文件夹里面到底是什么东西,反正看不懂也没关系。
IAR文件夹下又是一堆的文件夹,但是这些文件夹的名字是不是似曾相识,不错,这就是一堆的单片机处理器
KEIL文件夹里面什么都没有,就留了一个字条,说看RVDS文件夹是一样的,然而RVDS文件夹里面的东西也是一堆似曾相识的处理器
再深入的点进去看看,比如常用的STM32F103系列单片机,就是属于ARM_CM3系列,笔者喜欢用KEIL编译器,那就打开RVDS文件夹下的ARM_CM3文件夹。
里面就是一个C源文件和一个头文件,这两文件就是处理器与FREERTOS的接口文件了,不同的处理器,接口文件也就大同小异,反正别人写好了,拿来用就是的。
实时系统都需要一个内存管理,别人也帮你写好了,就是portable文件夹下的MemMang文件夹,里面不同的源文件就对应着不同的内存管理逻辑,可以选一个。