任务消息队列
只有所属任务才可以获取(接收)这个任务消息队列的消息,其他任务只能给这个任务消息队列发送消息,却不能获取。
发布任务消息到任务OSTaskQPost()
满足发布条件直接调用OS_TaskQPost()发布,例如发送到任务块AppTaskPendTCB。
...1.获取目标任务,为0则是当前任务
...2.目标任务状态
......2.1.非等待状态,调用OS_MsgQPut放入消息队列
......2.2.等待状态,看是否等待任务消息队列
.........2.2.1是,OS_Post()函数把任务消息发送给目标任务
.........2.2.2不是,OS_MsgQPut()函数将消息放入任务消息队列
任务消息队列获取函数OSTaskQPend()
...1.获取当前任务的消息队列,并获得一个消息
......1.1获取成功,返回消息地址
......1.2 获取失败,判断任务类型
.........1.2.1 非堵塞,返回失败
.........1.2.2 堵塞,调用 OS_Pend()函数将当前任务脱离就绪列表,并根据用户指定
的阻塞时间插入到节拍列表,但是不会插入队列等待列表
......1.3 调度
......1.4 运行到这,判断是否等待到消息,做出相应回应。