OSAL中task,event,message区别

霍伟彦
2023-12-01

OSAL(Operating System Abstraction Layer 操作系统抽象层)(以上为个人见解)在OSAL中,提出了任务,事件,消息三个概念。它们之间的关系如下:

  1. event: 事件是当前系统中被触发的动作,例如有按键按下,接收到其他节点发送过来的消息等等。
  2. message: 消息是收到的事件和事件内容的一个封装,比如发生了一个事件(收到别的节点发的消息),这时就会把这个事件所对应的事件号及收到的数据封装成消息,放入消息队列中,供事件处理函数进行处理。
  3. task: 任务是处理事件的一个功能集合,一般由一个事件处理函数(ProcessEvents)实现。协议栈是由各个层组成的,每一层都要处理各种事件,所以就为每一层定义了一个事件处理函数,我们可以把这个处理函数理解为任务,任务从消息队列中提取消息,从消息中提取所发生的具体事件,调用相应的具体事件处理函数,比如按键处理函数等等。

总结一下就是:

流程:事件发生后–>被打包为消息–>存放到消息队列–>事件处理函数取出消息并进行相应操作。
消息是数据和各层指令的封装
任务是所要做的事即是做的这个事的具体细节

 类似资料: