图1 消息队列是用于将内容传递给任务的内核对象
如图1所示, 消息队列是一个核心对象(即数据结构) , 通过这个对象, 消息从中断服务例程(ISR)或任务发送到另一个任务。...应用程序可以有任意数量的消息队列, 每一个都有自己的目的和用途。 例如, 消息队列可以用来将从通信接口 ISR 接收到的数据包传递给一个任务, 而 ISR 则负责处理数据包。...消息队列的另一个重要方面是, 消息本身需要保持从发送到处理的时间范围。 这意味着不能将指针传递给栈变量等等。 为了将消息保持在作用域中, 通常会填充一个结构, 并从这些消息池中获取, 如图2所示。...消息队列通常用于从 ISR 发送消息或将任务发送到另一个任务, 如前面所讨论的那样
5.但是, 如果消息符合指针的大小, 则不必发送实际消息及分配存储区域。...例如, 如果一个32位指针, 那么可以将模拟转换器(ADC)从一个12位 ADC 读取到一个指针, 并通过消息队列发送,只要接收这知道将值返回整数即可, 这是完全合法的
6-7 一个任务如果知道这些消息将不会发送给它的