FreeRTOS 和裸机的区别

FreeRTOS 和裸机的区别


01 FreeRTOS 简介

什么是FreeRTOS?

特点:实时性、可移植性、可扩展性

架构:内核、任务、调度器、通信机制

什么是裸机?

特点:无操作系统、直接操作硬件

缺点:缺乏任务调度、难以管理多任务

02 FreeRTOS 和裸机的区别

多任务管理 FreeRTOS 裸机
提供任务调度器 无任务调度器
可以创建多个任务 只能顺序执行任务
通过时间片轮转算法进行任务切换 需要手动切换任务
系统资源管理 FreeRTOS 裸机
提供给内存管理 需要手动管理内存
提供任务间通信机制 需要自行实现任务间通信
可以动态创建和删除任务 无法动态创建和删除任务
可移植性和可扩展性 FreeRTOS 裸机
可以在不同的硬件平台上运行、提供丰富的API和配置选项 需要根据硬件平台进行适配、功能受限于硬件平台

03 Cubemx 简介

特点:图形化界面、自动生成代码、支持多种 MCU

创建RTOS工程

步骤:

  1. 打开 Cubemx
  2. 选择 MCU 型号
  3. 配置系统时钟
  4. 配置 RTOS 参数
  5. 生成代码

04 多任务体验

  • 创建任务
    • 定义任务函数
      • 任务函数的参数和返回值任务函数的实现
    • 创建任务
      • 使用 FreeRTOS 提供的 API 创建任务设置任务的优先级和堆栈大小
  • 任务调度
    • 时间轮转算法
      • 任务按照优先级顺序执行,每个任务执行一段时间后却换到下一个任务
    • 任务切换
      • 任务切换的实际、任务切换的开销
  • 任务间通信
    • 信号量
      • 用于任务同步和互斥、通过信号量实现任务间的资源共享
    • 队列
      • 用于任务间的消息传递、通过队列实现任务间的数据交换
  • 动态创建和删除任务
    • 创建任务
      • 使用 FreeRTOS 提供的 API 动态创建任务设置任务的优先级和和堆大小
    • 删除任务
      • 使用 FreeRTOS 提供的 API 删除任务释放任务占用的资源
posted @ 2023-09-23 18:17  杭冷卉  阅读(265)  评论(0编辑  收藏  举报