tag 标签: zigbee,osalinittasks

相关博文
  • 热度 14
    2014-9-27 12:21
    2017 次阅读|
    0 个评论
    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  自定义任务初始化 }