一,移植准备
1、FreeRTOS源码
2、需要移植的工程(基础工程)
二,移植步骤
1、将FreeRTOS的源码添加至基础工程。
2、FreeRTOSConfig.h添加配置文件
3、修改system文件
4,修改中断相关文件
5,添加应用程序,验证移植是否成功
1.
(1)首先找到FreeRTOS的源码,并且在工程种创建一个用于存放RTOS源码的文件夹,将FreeRTOS中Source文件夹复制到用于存放RTOS源码的文件夹。
(2)在移植源码后,打开该文件夹可以看到Portable文件夹,该文件夹存放格式各样的连接桥梁与算法,其中只保留KEIL/RVDS/MemMang即可,其他多余的删去,其中MemMang存放的是内存管理算法,共有5个。
本次我们使用HEAP_4。RVDS存放的是MCU内核与操作系统的连接桥梁。
(3)在将FreeRTOS的源码移植后,要将其填入到工程,首先在工程中创建两个文件夹,一个用于存放源码,一个用于存放算法与链接桥梁
添加后如图,之前曾提及,使用的内存算法HEAP_4,并且作者的开发板是M3(寻找对应开发板中的Heap文件),所以PORT中为这两个文件。
(4)添加头文件路径,为了之后调用程序,需要将FreeRtos的头文件进行添加。
这两个文件存放的FreeRTOS源码的.h文件与链接桥梁的.h文件。内存管理算法没有.h文件。
2.FreeRtosCongfig.h添加,其中这个文件可裁剪。可自行编写
3,修改System文件
在sys.h 中将支持OS宏置1
4.修改中断文件
(1)串口相关的
原来的;
修改后的;
(2)delay相关的
最后将头文件进行更改,更改延时函数后,调用到了FreeRTOS中的函数。
原:
改后:
(3)注释重复定义的SVC、PendSV、滴答定时器
方式为在SYS.h中将这两个中断服务函数的宏进行关闭,因此需要在STM32中断配置文件中导入sys.h
宏判断的方式:
注:最后需要将Config文件中的 NVIC_PRIO_BITS跳转,将4U改为4