- uC/OS-III的几个重要特性:
- 可剥夺多任务管理:
- 总是执行当前就绪的最高优先级任务;
- 同优先级任务的时间片轮转调度:
- 即允许一个任务优先级被被多个任务使用,
- 当这个优先级处于最高就绪态的时候,
- uC/OS-iii就会轮流调度处于这个优先级的所有任务,
- 让每个任务运行一段用户指定的时间长度,叫做时间片;
- 极短的关中断时间:
- uC/OS-III可以采用锁定内核调度的方式而不是关中断的方式来保护临界段代码
- 这样可以将关中断的时间降到最低,能非常快速的响应中断请求
- 任务数目不受限制:
- uC/OS-III本身没有任务数目限制的,
- 受限于处理器所用的存储空间
- 优先级数量不受限制:
- 支持无限多的任务优先级
- 内核对象数目不受限制:
- uC/OS-III允许定义任意数目的内核对象
- 内核对象包含:任务、信号量、互斥信号量、事件标志组、消息队列、定时器、存储块等
- 软件定时器
- 用户可以任意定义“单次”和“周期”型定时器,
- 定时器是一个递减计数器,
- 递减到零就会执行预定义好的操作,
- 周期型定时器在递减到零时会执行指定操作,并自动重置计数器值
- 同时等待多个内核对象
- uC/OS允许一个任务同时等待多个事件,
- 一个任务能够挂起在多个信号量或消息队列上
- 当其中任何一个等待的事件发生时,等待任务就会被唤醒,
- 直接向任务发送信号:
- 允许中断或任务直接给另一个任务发送信号,
- 避免创建和使用诸如信号量或事件标志等内核对象作为其他任务发送信号的中介,
- 该特性有效地提高了系统性能
- 直接向任务发送信息:
- 允许中断或任务直接给另一个任务发送消息
- 避免创建和使用消息队列作为中介
- 任务寄存器:
- 每个任务都可以设定若干个“任务寄存器”,任务寄存器和CPU硬件寄存器是不同的,
- 主要用来保存各个任务的错误信息,ID识别消息、中断关闭时间的测量结果等
- 任务级时钟节拍处理:
- 时钟节拍是通过一个专门任务完成的,
- 定时中断仅触发该任务,
- 将延迟处理和超时判断放在任务级代码完成,能极大地减少中断延迟时间;
- 防止死锁
- 所有uC/OS-III的“等待”功能都了超时检测机制,有效地避免了死锁;
- 时间戳:
- 时基计数器来实现时间测量功能
- systick
- uC/OS不同版本差异:
- 可剥夺多任务管理:
- 参考资料:
- 正点原子《STM32F767 UCOS开发手册》
- 野火《uC/OS-III内核应用与开发》
- 《嵌入式实时操作系统 uC/OS-III原理及应用(第二版)》
- 硬件平台:
- 正点原子阿波罗F767
- 软件平台:
- MDK5.2.5
- 库版本:
- TM32Cube_FW_F7_V1.4.0
- uC/OS-III版本
- UCOSIII 3.04
【0】uC/OS-III应用开发————>uC/OS-III的几个重要特性
最新推荐文章于 2024-09-26 15:26:45 发布