星空网 > 软件开发 > 操作系统

OSAL的消息机制触发事件流程

定时器触发事件一般为程序内部触发,若外部触发事件,可以用系统消息触发,以按键触发为例。

在初始化时候,InitBoard()中,注册了按键回调函数

HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);

该函数中注册按键回调函数到pHalKeyProcessFunction,并启动定时器事件,ID为HAL层ID,事件为按键事件,调用HalKeyPoll(),启动按键轮询,等待按键触发。

halProcessKeyInterrupt()通过HAL_ISR_FUNCTION()注册到OSAL的中断机制中,此部分代码没有公开,可能是底层按键触发中断,然后调用halProcessKeyInterrupt()上报事件,HalKeyPoll()中调用初始化时候注册的按键回调函数(pHalKeyProcessFunction) ()进行处理;

在回调函数中,调用OnBoard_SendKeys()函数发送系统消息,消息结构如下

typedef struct

{

  void   *next;

  uint16 len;

  uint8  dest_id;

} osal_msg_hdr_t;

 

typedef struct

{

  uint8  event;

  uint8  status;

} osal_event_hdr_t;

 

typedef struct

{

  osal_event_hdr_t hdr;

  uint8             state;  

  uint8             keys; 

} keyChange_t;

 

 

回调函数OnBoard_SendKeys()原型如下:

 1 /********************************************************************* 2  3  * @fn   OnBoard_SendKeys 4  5  * 6  7  * @brief  Send "Key Pressed" message to application. 8  9  *10 11  * @param  keys - keys that were pressed12 13  *     state - shifted14 15  *16 17  * @return status18 19  *********************************************************************/20 21 uint8 OnBoard_SendKeys( uint8 keys, uint8 state )22 23 {24 25  keyChange_t *msgPtr;26 27  if ( registeredKeysTaskID != NO_TASK_ID )28 29  {30 31   // Send the address to the task32 33   msgPtr = (keyChange_t *)osal_msg_allocate( sizeof(keyChange_t) );34 35   if ( msgPtr )36 37   {38 39    msgPtr->hdr.event = KEY_CHANGE;40 41    msgPtr->state = state;42 43    msgPtr->keys = keys;44 45 46    osal_msg_send( registeredKeysTaskID, (uint8 *)msgPtr );47 48   }49 50   return ( SUCCESS );51 52  }53 54  else55 56   return ( FAILURE );57 58 }

 

 

 

 

在OnBoard_SendKeys()函数中,调用osal_msg_allocate()函数申请一块内存,

 1 /********************************************************************* 2  3  * @fn   osal_msg_allocate 4  5  * 6  7  * @brief 8  9  *10 11  *  This function is called by a task to allocate a message buffer12 13  *  into which the task will encode the particular message it wishes14 15  *  to send. This common buffer scheme is used to strictly limit the16 17  *  creation of message buffers within the system due to RAM size18 19  *  limitations on the microprocessor.  Note that all message buffers20 21  *  are a fixed size (at least initially). The parameter len is kept22 23  *  in case a message pool with varying fixed message sizes is later24 25  *  created (for example, a pool of message buffers of size LARGE,26 27  *  MEDIUM and SMALL could be maintained and allocated based on request28 29  *  from the tasks).30 31  *32 33  *34 35  * @param  uint8 len - wanted buffer length36 37  *38 39  *40 41  * @return pointer to allocated buffer or NULL if allocation failed.42 43 */44 45 uint8 * osal_msg_allocate( uint16 len )46 47 {48 49  osal_msg_hdr_t *hdr;50 51 52  if ( len == 0 )53 54   return ( NULL );55 56 57 58  hdr = (osal_msg_hdr_t *) osal_mem_alloc( (short)(len + sizeof( osal_msg_hdr_t )) );59 60  if ( hdr )61 62  {63 64   hdr->next = NULL;65 66   hdr->len = len;67 68   hdr->dest_id = TASK_NO_TASK;69 70   return ( (uint8 *) (hdr + 1) );71 72  }73 74  else75 76   return ( NULL );77 78 }

 

 

其内存布局如下:

 

OSAL的消息机制触发事件流程images/loading.gif' data-original="data:image/png;base64,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" />

 

    申请成功后,返回值为keyChange_t部分的首地址,因此在随后的消息检查,填充等操作中会有结构体指针减一的操作。

 

消息创建完成后,调用osal_msg_send()将消息发送出去,该函数调用osal_msg_enqueue_push(),将消息发送至OSAL消息链表,并调用osal_set_event( destination_task, SYS_EVENT_MSG );向目标任务发送一个系统消息事件,在主循环中调用目标任务的回调函数,进入系统消息处理分支接收并解析处理消息。




原标题:OSAL的消息机制触发事件流程

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流