目录
一、FREERTOS资源包下载
二、移植
1、资源包整理
三、工程添加
1、添加
2、编译路径添加
3、修改FreeRTOSConfig.h
4、修改stm32f10x_it.c
5、注意
一、FREERTOS资源包下载
官网:http://www.freertos.org/
代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/
手册下载:https://www.freertos.org/Documentation/RTOS_book.html
![](https://img-blog.csdnimg.cn/75de00df0a4044f096494c8cf38c777f.png)
![](https://img-blog.csdnimg.cn/0cb92ca2fa704e319dc48a18b8decb0d.png)
二、移植
1、资源包整理
在工程下建立两个文件夹FREERTOS_SCR,FREERTOS_PORT(文件名自定义)
FREERTOS_SCR:放置freertos的核心源文件(.c文件)
FREERTOS_PORT:放置内存管理和处理器架构的相关代码
在资源包中找到文件,如图:
![](https://img-blog.csdnimg.cn/716199945a14428a95f21957b6c393dd.png)
![](https://img-blog.csdnimg.cn/5e703bc883e440c68642def281f17d81.png)
至此第一步已经准备完毕,接下来将文件移到工程上。
三、工程添加
1、添加
![](https://img-blog.csdnimg.cn/0b3b405d75f5434cb5792b089af81846.png)
FreeRTOSConfig.h:工程配置文件,通过修改这个文件用来裁剪freertos的功能。
heap_4.c:freertos内存管理的一种方式。
2、编译路径添加
![](https://img-blog.csdnimg.cn/8b2896fdc7a841e9b6f0d4a28c086c98.png)
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)