摘要:
一、概述 内核提供了一个模拟定时器的机制,类似于任务,但是占用资源少,只能做一些简单的定时控制,如可以定时的喂狗、控灯。在软件定时器,不能添加时间管理函数、阻塞等待函数(等待互斥锁/信号量/事件标志组/消息队列)。 1.创建软件定时器 void OSTmrCreate (OS_TMR *p_tmr, 阅读全文
摘要:
一、概述 前面讲述了UCOSIII的信号量、互斥信号量,它们都可以完成任务的同步。但是有时候一个任务可能需要和多个事件同步,这个时候就需要使用事件标志组。事件标志组与任务之间有两种同步机制: “或”同步:等待多个事件时,任何一个事件发生 ,任务都被同步,这个就称为“或”同步; “与”同步:当所有的事 阅读全文
摘要:
一、时间管理 UCOSIII提供了一系列的时间管理函数,延时以时钟节拍(例如1000个节拍,就是进行1000个计数就是1秒时间的到达)为基准。 1.时钟节拍 时钟节拍可谓是实时操作系统的心脏,它若不跳动,整个系统都将会瘫痪。时钟节拍就是操作系统的时基,操作系统要实现时间上的管理,必须依赖于时基(时间 阅读全文
摘要:
一、概述 代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许执行被打断。 大多数系统为确保临界段代码的执行不被中断,在进入临界段之前必须关中断,而临界段代码执行完后,要立即开中断。常见案例为喂狗、FLASH的写入、获取当前时钟节拍计数器等保护操作。 在UCOSIII中 阅读全文
摘要:
一、概述 “消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。 消息队列常用于数据的传输,等待消息队列成功后,得到的是消息内容指针。 阅读全文