I
第 6 章 任务之间的通讯与同步......................................................................................1
6.0 事件控制块 ECB.................................................................................................2
6.1 初始化一个 ECB 块,OSEVENTWAITLISTINIT()..............................................6
6.2 使一个任务进入就绪状态,OSEVENTTASKRDY()...........................................7
6.3 使一个任务进入等待状态, OSEVENTTASKWAIT()...........................................9
6.4 由于等待超时将一个任务置为就绪状态, OSEVENTTO()................................9
6.5 信号量..............................................................................................................10
6.5.1 建立一个信号量, OSSemCreate().......................................................11
6.5.2 等待一个信号量, OSSemPend()...........................................................12
6.5.3 发送一个信号量, OSSemPost()...........................................................14
6.5.4 无等待地请求一个信号量, OSSemAccept().......................................16
6.5.5 查询一个信号量的当前状态, OSSemQuery().....................................17
6.6 邮箱..................................................................................................................18
6.6.1 建立一个邮箱,OSMboxCreate().........................................................19
6.6.2 等待一个邮箱中的消息,OSMboxPend().............................................20
6.6.3 发送一个消息到邮箱中,OSMboxPost().............................................22
6.6.4 无等待地从邮箱中得到一个消息, OSMboxAccept().........................24
6.6.5 查询一个邮箱的状态, OSMboxQuery()...............................................25
6.6.6 使用邮箱作为二值信号量.....................................................................26
6.6.7 使用邮箱实现延时,而不使用 OSTimeDly()......................................27
6.7 消息队列..........................................................................................................28
6.7.1 建立一个消息队列,OSQCreate().......................................................31
6.7.2 等待一个消息队列中的消息,OSQPend()...........................................33
6.7.3 向消息队列发送一个消息(FIFO),OSQPost()...............................35
6.7.4 向消息队列发送一个消息(LIFO),OSQPostFront().....................37
6.7.5 无等待地从一个消息队列中取得消息, OSQAccept().......................39
6.7.6 清空一个消息队列, OSQFlush().........................................................40
6.7.7 查询一个消息队列的状态,OSQQuery().............................................41
6.7.8 使用消息队列读取模拟量的值.............................................................42
6.7.9 使用一个消息队列作为计数信号量.....................................................43