一、添加FreeRTOS源码
在基础工程中新建一个名为FreeRTOS的文件夹,创建FreeRTOS文件夹以后将FreeRTOS的源码添加到这个文件夹中。
portable 文件夹,只需要保留keil、MemMang 和 RVDS这三个文件夹,其他的都可以删除掉。
移植FreeRTOSConfig.h文件,它是FreeRTOS 的配置文件,一般的操作系统都有裁剪、配置功能。而这些裁剪及配置都是通过一个文件来完成的,基本都是通过宏定义来完成对系统的配置和裁剪的。
二、添加相关的头文件路径
三、修改SYSTEM文件
SYSTEM文件夹中的文件一开始是针对 μC/OS编写的,因此使用 FreeRTOS的话,就需要作相应的修改。SYSTEM文件夹中一共需要修改三个文件,分别是 sys.h、 usart.c、 delay.c。
1、修改 sys.h 文件
在 sys.h 文件里面用宏 SYSTEM_SUPPORT_OS 来定义是否使用 OS。
2、修改 usart.c 文件
添加 FreeRTOS.h 头文件
在 USART1 的中断服务函数,删除OSIntEnter()和 OSIntExit()
3、修改 delay.c 文件
- 函数 SysTick_Handler(),此函数是滴答定时器的中断服务函数。
在滴答定时器中断服务函数中调用 FreeRTOS 的 API 函数 xPortSysTickHandler()
- delay_init()是用来初始化滴答定时器和延时函数
FreeRTOS 的系统时钟节拍由宏 configTICK_RATE_HZ 来设置,这个值我们可以自由设置,但是一旦设置好以后我们就要根据这个值来初始化滴答定时器。
- delay_us、delay_ms、delay_xms 三个延时函数
delay_us()是 us 级延时函数,delay_ms 和 delay_xms()都是 ms 级的延时函数,delay_us()和 delay_xms()不会导致任务切换。delay_ms()其实就是对 FreeRTOS 中的延时函数 vTaskDelay()的简单封装,所以在使用 delay_ms()的时候就会导致任务切换。
至此,SYSTEM 文件夹就修改完成了。
这些其实都有例程可以参看。