STM32理论 —— μCOS-Ⅲ(新)

  • μCos-Ⅲ全称是Micro C OS Ⅲ,由Micriμm 公司发布的一个基于C 语言编写的第三代小型实时操作系统(RTOS);

  • RTOS 与裸机相比最大的优势在于多任务管理实时性,它提供了多任务管理和任务间通信的功能;

  • μCOS-Ⅲ与FreeRTOS的区别:μCOS-III 的源码可读性比较强,代码写的非常规范。国内资料较多;

  • RTOS 的任务调度结构:如下图,高优先级任务能抢占低优先级任务,而中断能打断任意任务,每个任务都有自己的任务堆栈,用于保存任务的寄存器值;除非高优先级任务挂起,否则在一直运行高优先级任务过程中,低优先级任务无法被运行;
    在这里插入图片描述

  • μCos-Ⅲ官方文档https://micrium.atlassian.net/wiki/spaceshttps://docs.silabs.com/micrium/latest/micrium-common-api/

1. 任务调度器


任务调度器就是决定当前执行哪个任务;

μCos-Ⅲ 支持2种任务调度方式

  1. 抢占式调度:针对优先级不同的任务,优先级高的任务可抢占优先级低的任务;
  2. 时间片调度:针对优先级相同的任务,当多个任务优先级相同且就绪时,调度器会根据用户设置的时间片轮流运行这些任务。时间片以一次系统时钟节拍为单位(滴答定时器的中断频率),µC/OS-III 默认设置的任务时间片为 100,则 µC/OS-III 会在当前任务运行 100 次系统时钟节拍的时间后,切换到另一个相同任务优先级的任务中运行。

1.1 抢占式调度

  1. 创建3个任务;
  2. 任务1、任务2、任务3的优先级分别设置为3、2、1(数字越小,优先级越高);

在这里插入图片描述


参考:

  • 正点原子;

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 09:16:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 09:16:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 09:16:04       87 阅读
  4. Python语言-面向对象

    2024-05-13 09:16:04       96 阅读

热门阅读

  1. TCP与HTTP的关系?

    2024-05-13 09:16:04       31 阅读
  2. Elasticsearch框架学习的难点和重点有哪些

    2024-05-13 09:16:04       26 阅读
  3. HttpServletRequest对象

    2024-05-13 09:16:04       33 阅读
  4. Cloudera:大数据领域的领航者及其安装部署指南

    2024-05-13 09:16:04       31 阅读
  5. 1.4. 离散时间鞅-鞅的Lp收敛,鞅与停时 (1)

    2024-05-13 09:16:04       31 阅读
  6. 讲一下Git 和 事务的自我新理解

    2024-05-13 09:16:04       30 阅读
  7. 监控易:IP地址管理功能

    2024-05-13 09:16:04       31 阅读