目录
一、RTOS系统是什么?
二、FreeRTOS 文件系统
文件系统
三、FreeRTOS 移植
准备工作
RTOS移植
移植验证
四、 RTOS系统的学习(4.5中断测试实验)
总结
前言
FreeRTOS就是一个免费的RTOS系统。
通过给不同的任务分配时间片以及优先级,形成多任务同时运行的错觉。
查阅资料的网址:http://www.freertos.org
虽然minifly用的STM32F429的芯片,但是可以用F407的历程,因为都是Cortem-M4F的例程
License文件夹 许可信息Source文件夹存放RTOS的源码文件, 重点是portable文件夹,它是软硬件之间的连接桥梁,
不同的编译环境和MCU都有不同的规则,找到里面的Keil,找到RVDS,找到里面的CM4
里面有port.c文件 和 portmacro.h文件 ,这是我们所需要的
1.准备工作
要移植RTOS系统,需要一个简单的基础工程作为模板,这里直接以Minifly作为例程
2.RTOS移植
准备RTOS包在TROS的source文件夹中,删除portable的无用部分,仅仅保留 keil mem rvds
建立一个FreeRTOS的文件夹,将source(源码内容)拷贝进去,相当于引入了一个FreeRTOS包
如图: 蓝色部分是基础工程模板
向工程分组中添加文件 以及 c文件路径 (见F429 FreeRTOS开发手册32页)修改一些 sys systick usart函数的定义 (要配置系统滴答定时器 为1ms 因为引入了HAL库对HAL库还不是很熟 标准库效率高 只是对一些寄存器进行了封装,HAL封装的功能更强大 但是效率会更低3.移植验证
3.1 实验目的
测试是否移植成功(本文仅理解一下 RTOS系统下的编程 未实际操作)
3.2 实验设计
3.3实验程序与分析
略
注:
临界代码段:
4.1 RTOS工程实现步骤:
引入头文件 ↓ 宏定义 ↓ int main() { 初始化 //本例中是在TIMx_Init(,)中初始化了定时器配置 以及调用了函数 实现了了中断配置 以及中断服务程序的编写 ↓ 创建优先级很高的开始任务 ↓ 开启任务调度 } void startTask(void *param) { 进入临界区(); 按优先级创建一系列任务(); 删除开始任务(); 退出临界区(); }然后在其他 .c .h文件中对创建的一系列任务函数进行实现。
//本例中是在TIMx_Init(,)中初始化了定时器配置 以及调用了函数 实现了了中断配置 以及中断服务程序的编写
一、对实时操作系统(RTOS)的文件系统进行了学习
二、大致了解了 RTOS包 的工程移植
三、对RTOS项目工程实现过程 有了了解