FreeRTOS的内核应用如何使用?优先级如何分配以及内部IPC通信是如何使用的?
准备工作:
裸机例程,FreeRTOS的源码
首先下载FreeRTOS源码:
代码托管网址为:https://sourceforge.net/projects/freertos/files/FreeRTOS/
选择上图的文件进行下载即可。
下面对文件夹中的文件进行分析
其中1,3种包含的是FreeERTOS的通用文件和C文件 ,这两部分的文件适用于各种编译器和处理器
需要移植的头文件放在2中
打开2号文件夹:
2号文件夹中包含的是和内存管理相关的
打开3号文件夹,包含了处理器相关的文件,其中包含M0,M3,M4系列,FreeRTOS是一个软件 单片机是一个硬件,所以需要关联在一起,通过接口文件关联在一起,不同硬件的接口文件不同,但是大同小异,编写这些接口文件的过程我们叫做移植,移植好的接口文件放在RVDS这个文件夹目录下。
MenMang文件夹中的内容:
几个heap文件中的加内容是内存的分配方法
Demo文件夹中是各种板子的Demo,不懂可以参考官方的Demo
在裸机工程中添加FreeRTOS源码:
在裸机工程模板的文件夹下新建名为src和port的文件夹用于保存FreeRTOS的核心源文件
![](https://img-blog.csdnimg.cn/5147f719bcdf404fa9dc64a2ef5bc987.png)
2.打开 FreeRTOS V9.0.0 源码,在“FreeRTOSv9.0.0\FreeRTOS\Source\portable”目
![](https://img-blog.csdnimg.cn/f54ab05f924b4b2c851803fcb95bd4cb.png)
3.将Source的目录下找到include文件夹,这里是FreeRTOS需要用到的头文件,将它拷贝到新建的FreeRTOS中,至此RTOS的源码提取完成
拷贝FreeRTOSConfig.h文件夹到user文件夹中:
添加FreeRTOS源码到工程组文件夹
1.新建FreeRTOS/scr和FreeRTOS/port分组,然后将文件添加到工程中
2.添加FreeRTOS头文件的路径
3.根据自己的开发板修改FreeRTOSConfig.h文件,还有一些对其中宏定义的修改按照自己的需求进行即可,这里不再截图
4.修改stm32f1xx_it.c
SysTick中断服务函数是一个非常重要的函数,FreeRTOS所有和时间相关的事情都在里面处理,需要一个FreeRTOS的心跳时钟,FreeRTOS帮我们实现了Systick的启动配置:在port.c文件中实现了vPortSetupTimerInterrupt()函数,所以移植时只需要我们现在stm32f1xx_it.c中实现我么对应平台的Systick_Handler()函数即可。FreeRTOS 为开发者考虑得特别多,PendSV_Handler()与 SVC_Handler()这两个很重要的函 数都帮我们实现了,在 port.c 文件中已经实现 xPortPendSVHandler()与 vPortSVCHandler() 函数,防止我们自己实现不了,那么在 stm32f10x_it.c 中就需要我们注释掉 PendSV_Handler()与 SVC_Handler()这两个函数了
、
这样FreeRTOS就移植好啦 下面还需要创建执行任务才会有实验现象哦~