原创 zigbee学习--osalInitTasks

2014-9-27 12:21 2017 14 14 分类: MCU/ 嵌入式

http://85kaifa.taobao.com

[学习 记录中....随时更改]

zigbee学习--osalInitTasks  (OSAL_SampleApp.c)

/*********************************************************************
 * @fn      osalInitTasks
 *
 * @brief   This function invokes the initialization function for each task.
 *
 * @param   void
 *
 * @return  none
 */

void osalInitTasks( void )
{
  uint8 taskID = 0;

//osal_mem_alloc为OS内存分配函数,tasksCnt为预先定义好了的任务个数,任务列表tasksArr中列出当前的任务,tasksEvents系统所有任务的事件指针头,并将每个任务的事件清零
  tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
  osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));

//初始化任务ID和对应的任务函数(tasksArr序列),mac_taskID=0
  macTaskInit( taskID++ ); //对用任务 macEventLoop    MAC层任务
  nwk_init( taskID++ );    //对应任务nwk_event_loop   网络层任务
  Hal_Init( taskID++ );    //对应任务Hal_ProcessEvent 初始化硬件
#if defined( MT_TASK )
  MT_TaskInit( taskID++ );
//对应任务MT_ProcessEvent,MT_TASK在工程配置中已定义
                           //MT层任务:实现通过串口可控制各层,并与各层进行直接交互

#endif
  APS_Init( taskID++ );//对应任务APS_event_loop 应用层由三个部分组成,APS 子层,ZDO(包含 ZDO 管理平台) 和制造商定义的应用对象
                           //APS:提供NWK层和APL层之间的接口,又名应用支持子层

#if defined ( ZIGBEE_FRAGMENTATION )
  APSF_Init( taskID++ )
;//对应任务APSF_ProcessEvent
#endif
  ZDApp_Init( taskID++ );//对应任务ZDApp_event_loop
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
  ZDNwkMgr_Init( taskID++ )
;//对应任务ZDNwkMgr_event_loop 初始化网络管理任务
#endif
  SampleApp_Init( taskID );//对应任务SampleApp_ProcessEvent  自定义任务初始化
}

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条