原创 原创:ZigBee文章2 OSAL_API的两个重要数组

2010-4-17 12:00 3289 5 5 分类: 软件与OS

在学习TI的ZigBee软件包带的OSAL API时,先要明白两个重要的数组。如下:


第一个数组:这是一个指向函数的指针数组:


const pTaskEventHandlerFn tasksArr[] = {
  macEventLoop,
  nwk_event_loop,
  Hal_ProcessEvent,
#if defined( MT_TASK )
  MT_ProcessEvent,
#endif
  APS_event_loop,
  ZDApp_event_loop,


  SAPI_ProcessEvent
};


这里就是对应任务ID的任务处理函数,如果还要增加任务请在SAPI_ProcessEvent后面增加。


pTaskEventHandlerFn 是一个由typedef定义的类型,请定义如下:


typedef unsigned short (*pTaskEventHandlerFn)( unsigned char task_id, unsigned short event );


第二个重要数组:


const uint8 tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr[0] );
uint16 *tasksEvents;   //这个很重要


如果初看,觉得这只是个指向,其实这是一个指针数组,其数组大小的分配如下:


tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);


在void osalInitTasks( void )函数可以找到。


 


以上就是这两个重要数组。有关任务之间传递消息,还没有弄明白,还待进一步研究。


             April 17,2010

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条