ucos-iii学习之消息传递

有些情况下任务或 ISR 与另一个任务间进行通信,这种信息交换叫做作业间的通信。可以有两种方法实现这种通信:全局变量、发送消息。
1.消息
消息中包含一个指向数据的指针、该数据的大小、时间戳变量。
消息的内容(即数据)通常保留在其作用域中因为发送的是数的地址而不是数据。
2.消息队列
消息队列是先入先出模式(FIFO)。然而,uC/OS-III 也可以将其设置为后入先出模式(LIFO)。
3.任务的消息队列
很少会见到多个任务同时在一个消息队列中等待。因为这样,uC/OS-III 在任务中内建了一个消息队列。用户可以直接发送消息给任务而不通过外部消息队列。
4.双向通信
两个任务可以通过两个消息队列同步,这叫做双向通信,这两个任务间可能互相发送消息给对方。
5.流量控制
添加流量控制可以解决任务间的通信相互等待的问题。
6.保持数据在作用域
消息通常指向结构体、变量、数组等。然而,数据必须被保持在其作用域(结构体、变量、数组)中直到接收者完成对这些数据的操作。
7.使用消息队列
这里写图片描述
这里写图片描述
8.客户端和服务器端
9.消息队列的组成
消息由四个变量组成:指向下一条消息的指针、用于表明该消息所指向数据的大小的变量、存放消息最后一次被提交的时间戳的变 量、消息中包含一个指向实际数据的指针。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值