2020-10-20 任务三(一) RTOS系统初识

目录

一、RTOS系统是什么?

二、FreeRTOS  文件系统

文件系统

三、FreeRTOS  移植

准备工作

RTOS移植

移植验证

四、 RTOS系统的学习(4.5中断测试实验)

总结



前言

 

一、RTOS系统是什么?

FreeRTOS就是一个免费的RTOS系统。

    通过给不同的任务分配时间片以及优先级,形成多任务同时运行的错觉。

    RTOS系统时钟是由滴答定时器提供的,RTOS的系统时钟节拍应该匹配滴答定时器,其实就是设置滴答定时器的中断周期。

    由于我们使用了HAL库,HAL库里的延时函数要求滴答定时器周期为1ms,因此FreeRTOS的系统节拍应该设置为1000HZ,也就是1ms的周期  HAL→SysTicks→FreeRTOS

查阅资料的网址:http://www.freertos.org

二、FreeRTOS  文件系统

1.文件系统

  • Demo文件夹里面是FreeRTOS的相关历程

 虽然minifly用的STM32F429的芯片,但是可以用F407的历程,因为都是Cortem-M4F的例程

  • License文件夹 许可信息
  • Source文件夹

存放RTOS的源码文件, 重点是portable文件夹,它是软硬件之间的连接桥梁,

不同的编译环境和MCU都有不同的规则,找到里面的Keil,找到RVDS,找到里面的CM4

里面有port.c文件 portmacro.h文件 ,这是我们所需要的

三、FreeRTOS  移植

  1. 准备工作

  2. RTOS移植

  3. 移植验证

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实验程序与分析

  略

注:

临界代码段:

四、 RTOS系统的学习(4.5中断测试实验)

4.1  RTOS工程实现步骤:

引入头文件
↓
宏定义
↓
int main()
{
    初始化 //本例中是在TIMx_Init(,)中初始化了定时器配置 以及调用了函数 实现了了中断配置 以及中断服务程序的编写
    ↓
    创建优先级很高的开始任务
    ↓
    开启任务调度
}


void startTask(void *param)
{
    进入临界区();
    按优先级创建一系列任务();
    删除开始任务();
    退出临界区();
}


         然后在其他 .c  .h文件中对创建的一系列任务函数进行实现。

//本例中是在TIMx_Init(,)中初始化了定时器配置 以及调用了函数 实现了了中断配置 以及中断服务程序的编写


总结

一、对实时操作系统(RTOS)的文件系统进行了学习

二、大致了解了 RTOS包 的工程移植

三、对RTOS项目工程实现过程 有了了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值