导读:
介绍了消息、消息队列、内嵌消息队列
| 任务间通信 |
一个任务或者中断服务程序有时候需要和另一个任务交流信息,这个就是消息传递的过程就叫做任务间通信,任务间的消息传递可以通过2种途径:一是通过全局变量,二是通过发布消息。
使用全局变量的时候每个任务或者中断服务程序都必须保证其对全局变量的独占访问。消息也可以通过消息队列作为中介发布给任务。
| 消息 |
- 什么是消息?
消息包含一下几个部分:指向数据的指针,数据的长度和记录消息发布时刻的时间戳,指针指向的可以是一块数据区域或者甚至是一个函数。 消息的内容必须一直保持可见性,可见性是指代表消息的变量必须在接收消息的任务代码范围内有效。这是因为发布的数据采用的是指针传递,也就是引用传递,并不是值传递。也就是说,发布的消息本身并不产生拷贝,我们可以使用动态内存分配的方式来给消息分配一个内存块,或者,也可以传递一个指向全局变量、全局数据结构、全局数组或者函数的指针。<

UCOSIII中,任务间通信可通过全局变量或消息队列实现。消息包含数据指针、长度和时间戳,强调消息的可见性,通常通过引用传递。消息队列作为内核对象,提供发送、接收和清空消息的功能。
最低0.47元/天 解锁文章
1613

被折叠的 条评论
为什么被折叠?



