事件控制块
事件控制块(ECB)用于管理具体事件。包含指向消息或消息队列的指针、等待任务列表、计数器、等待任务组等。
等待任务列表
该列表包含两个变量OSEventGrp和OSEventTbl[]。在Grp中,任务按优先级分组,每组对应8格个任务。与OSRdyGrp和OSRdyTbl类似。当某组有任务处于等待该事件的状态时,对应位置置为1。
同样使用OSUnMapTbl来查找最高优先级任务。
ECB由空闲链表和双向链表管理。
同步与互斥
使用临界区开关中断
信号量
μC/OS使用信号量实现互斥访问和任务同步。
Pend:有阻塞等待信号量
Post:释放信号量
Accept:无阻塞等待信号量