ucos-iii学习之消息传递
2017-10-01 17:47
1646 查看
有些情况下任务或 ISR 与另一个任务间进行通信,这种信息交换叫做作业间的通信。可以有两种方法实现这种通信:全局变量、发送消息。
1.消息
消息中包含一个指向数据的指针、该数据的大小、时间戳变量。
消息的内容(即数据)通常保留在其作用域中因为发送的是数的地址而不是数据。
2.消息队列
消息队列是先入先出模式(FIFO)。然而,uC/OS-III 也可以将其设置为后入先出模式(LIFO)。
3.任务的消息队列
很少会见到多个任务同时在一个消息队列中等待。因为这样,uC/OS-III 在任务中内建了一个消息队列。用户可以直接发送消息给任务而不通过外部消息队列。
4.双向通信
两个任务可以通过两个消息队列同步,这叫做双向通信,这两个任务间可能互相发送消息给对方。
5.流量控制
添加流量控制可以解决任务间的通信相互等待的问题。
6.保持数据在作用域
消息通常指向结构体、变量、数组等。然而,数据必须被保持在其作用域(结构体、变量、数组)中直到接收者完成对这些数据的操作。
7.使用消息队列
8.客户端和服务器端
9.消息队列的组成
消息由四个变量组成:指向下一条消息的指针、用于表明该消息所指向数据的大小的变量、存放消息最后一次被提交的时间戳的变 量、消息中包含一个指向实际数据的指针。
1.消息
消息中包含一个指向数据的指针、该数据的大小、时间戳变量。
消息的内容(即数据)通常保留在其作用域中因为发送的是数的地址而不是数据。
2.消息队列
消息队列是先入先出模式(FIFO)。然而,uC/OS-III 也可以将其设置为后入先出模式(LIFO)。
3.任务的消息队列
很少会见到多个任务同时在一个消息队列中等待。因为这样,uC/OS-III 在任务中内建了一个消息队列。用户可以直接发送消息给任务而不通过外部消息队列。
4.双向通信
两个任务可以通过两个消息队列同步,这叫做双向通信,这两个任务间可能互相发送消息给对方。
5.流量控制
添加流量控制可以解决任务间的通信相互等待的问题。
6.保持数据在作用域
消息通常指向结构体、变量、数组等。然而,数据必须被保持在其作用域(结构体、变量、数组)中直到接收者完成对这些数据的操作。
7.使用消息队列
8.客户端和服务器端
9.消息队列的组成
消息由四个变量组成:指向下一条消息的指针、用于表明该消息所指向数据的大小的变量、存放消息最后一次被提交的时间戳的变 量、消息中包含一个指向实际数据的指针。
相关文章推荐
- 嵌入式系统学习——STM32之UCOS-III消息传递
- uc/os-iii学习笔记-消息传递
- UCOSIII消息传递(消息队列)(待更)
- ucosIII 消息传递
- ucosIII 消息传递
- μC/OSIII——任务通信(消息传递)
- ucos-iii学习之抢占式调度以及调度点
- UCOSIII学习笔记之任务管理(一)
- 嵌入式系统学习——STM32之UCOS-III中断和时间管理及软件定时器
- ucosIII 学习资料汇总
- UCOSIII-OSTaskQPend 由于任务内建消息队列形参类型错误导致系统卡死现象个人总结
- 《企业集成模式.设计、构建及部署消息传递解决方案》学习笔记
- 【ROS学习】(四)ROS消息传递——std_msgs
- uCOS中的消息邮箱(:task与task之间传递一个数据(数据缓冲区))
- (61)从零开始学习Nodejs[3]——Node TCP服务器&telnet,多客户端消息传递改进
- uCos-iii 学习笔记开篇
- ucos-iii学习之内部任务管理
- ucos-ii学习笔记——消息队列的原理及使用
- ucos实时操作系统学习笔记——任务间通信(消息)
- ucosiii任务内建消息队列