实时操作系统 µC/OS-III

初识 µC/OS-III

操作系统的概念:

操作系统最直观的特点就体现在,操作系统能够使得一个 CPU 核心“同时运行”多个任务,这个特性就被称为“多任务”。然而,实际上,一个 CPU 核心在某一时刻只能运行一个任务,而操作系统中任务调度器的责任就是决定在某一时刻 CPU 究竟要运行哪一个任务,任务调度器使得 CPU 在各个任务之间来回切换并处理任务,由于切换处理任务的速度非常快,因此给人造成了一种同一时刻有多个任务同时运行的错觉。

任务调度器的工作方式

Unix 操作系统给每个任务分配同样的运行时间,时间到了就切换到下一个任务。

 µC/OS-III这种传统的 RTOS (Real Time Operating System)类操作系统是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。

RTOS 的任务调度器被设计为可预测的,而这正是嵌入式实时操作系统所需要的。在实时环境中,要求操作系统必须实时地对某一个事件做出响应,因此任务调度器的行为必须是可预测的

 STM32 系列的 F1、F4、F7 和 H7 等型号的 MCU 都受 µC/OS-III 的支持,只需要进行简单的移植操作,就能够在这些 MCU 上运行 µC/OS-III 操作系统,极大地方便了我们学习和使用µC/OS-III。

µC/OS-III 是一个可裁剪、可固化到 ROM 的抢占式实时内核,并且可管理任务的数量不受限制。

µC/OS-III 具有以下几个重要的特性:

抢占式多任务管理:µC/OS-III 是一个支持多任务抢占的内核,因此总是优先执行任务优先级高的任务。
时间片调度:µC/OS-III 允许系统中有多个相同任务优先级的任务,如果系统中处于就绪状态的任务中,优先级最高的任务有多个,那么 µC/OS-III 将以时间片的方式调度任务,即根据用户指定的时间(时间片)轮流调度这些任务。
极短的中断禁用时间:µC/OS-III 通过锁定任务调度器代替禁用中断来保护一些关键区域(临界区),这确保了 µC/OS-III 能够快速地响应中断。

任务数量不限:µC/OS-III 理论上支持不受限制的任务数量,但实际上,系统中任务的最大数量受处理器内存空间的限制。
任务优先级数量不限:µC/OS-III 支持的任务优先级数量不受限制,但对于大多数应用场景而言,使用 32~256 个任务优先级就绰绰有余了。
内核对象数量不限:µC/OS-III 提供了多种内核对象,如任务、信号量、事件标志、消息队列、软件定时器和内存区等,并且在不考虑处理器内存限制的情况下,用户可以无限制的创建这些内核对象。
时间戳:µC/OS-III 提供了时间戳功能,用户可以非常方便地测量系统在运行过程中,处理器处理某些事件所消耗的时间,以方便用户对系统进行针对性的优化。
自定义钩子函数:µC/OS-III 提供了一些在内核执行操作之前、之后或过程中的钩子函数,这样可以方便用户扩展 µC/OS-III 的功能。
防死锁:µC/OS-III 允许任务在等待某些内核对象前,设置一个等待的最大超时时间,这样可以有效地防止死锁的发生。
软件定时器:在 µC/OS-III 中,用户可以创建任意数量的“单次”和“周期”软件定时器,并且每个软件定时器都可以有独立的超时回调函数
任务内嵌信号量:µC/OS-III 提供了任务的内嵌信号量功能,这使得任务可以直接获取来自其他任务或中断的信号,而不需要任何的中间内核对象,大大地提高了系统的运行效率。
任务内嵌消息队列:µC/OS-III 提供了任务的内嵌消息队列,这使得任务可以直接接收来自其他任务或中断的消息,而不需要任何的中间内核对象,大大地提高了系统的运行效率。

获取源码

在官网获取 µC/OS-III、µC/CPU 和 µC/LIB 源代码,这是移植 µC/OS-III 所需的全部源代码。

µC/OS-III 文件

Ports 文件夹包含的是与硬件相关的移植文件

Source 文件夹中包含了与 µC/OS-III 内核任务软件定时器事件标志相关的源码文件。

µC/CPU 文件

ARM-Cortex-M 文件夹中包含了与 ARM Cortex-M 内核的 CPU 相关的移植文件。

µC/LIB 文件

ports 文件夹此文件夹中包含了 µC/LIB 与硬件相关的移植文件,µC/LIB 组件仅支持了 ARM 和 AVR 部分架构的处理器,因此 µC/LIB组件是移植 µC/OS-III 时非必须的,µC/LIB 主要是提供了 ASCII 字符操作、数学、内存管理、字符串操作的库,方便开发。

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值