目录
一、FREERTOS资源包下载
代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/
手册下载:https://www.freertos.org/Documentation/RTOS_book.html
二、移植
1、资源包整理
在工程下建立两个文件夹FREERTOS_SCR,FREERTOS_PORT(文件名自定义)
FREERTOS_SCR:放置freertos的核心源文件(.c文件)
FREERTOS_PORT:放置内存管理和处理器架构的相关代码
在资源包中找到文件,如图:
至此第一步已经准备完毕,接下来将文件移到工程上。
三、工程添加
1、添加
FreeRTOSConfig.h:工程配置文件,通过修改这个文件用来裁剪freertos的功能。
heap_4.c:freertos内存管理的一种方式。
2、编译路径添加
3、修改FreeRTOSConfig.h
根据自己的需求改写FreeRTOSConfig.h,对工程需要的功能进行使能。(后面待更新)
4、修改stm32f10x_it.c
滴答定时器systick是freertos的心跳时钟,驱动freertos的运行,freertos已经在port.c中实现了
中断配置(vPortSetupTimerIntterupt()函数)和通用中断服务函数(xPortSystickHandler()函数)
所以移植时我们只需要在stm32f10x_it.c中实现中断服务函数即可。
具体操作:在port.c文件中xPortPendSVHandler(),vPortSVCHandler()函数已经实现,我们只需要在stm32f10x_it.c中注释掉PendSV_Handler()和SVC_Handler()函数。
5、注意
在使用FREERTOS API函数时需要包含FreeRTOS.h后,再去包含其他头文件。
如果在移植的过程中启动开始调度函数,卡在起始文件中,可在freertosconfig.h中添加上:
#define xPortSysTickHandler SysTick_Handler
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler