UCOS-III 任务消息队列

任务消息队列

只有所属任务才可以获取(接收)这个任务消息队列的消息,其他任务只能给这个任务消息队列发送消息,却不能获取

发布任务消息到任务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 运行到这,判断是否等待到消息,做出相应回应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值