小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

z-stack代碼分析--osalInitTasks函數(shù)

 xingwangjy 2014-12-24

//任務初始化函數(shù)
/*********************************************************************
* @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為當前OSAL中各任務分配存儲空間,函數(shù)返回指向任務緩沖區(qū)的指針
//因此tasksEvents 指向該任務數(shù)組
tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);

//把開辟的內(nèi)存全部設置為0;sizeof( uint16 )為4個字節(jié),即一個任務的長度,乘以任務數(shù)量tasksCnt,為全部內(nèi)存空間
osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));

//初始化MAC層任務,mac_taskID=0
macTaskInit( taskID++ );

//初始化網(wǎng)絡層任務,nwk_taskID=1
nwk_init( taskID++ );

//初始化硬件任務,hal_taskID=2
Hal_Init( taskID++ );

//初始化MT層任務
//MT層:實現(xiàn)通過串口可控制各層,并與各層進行直接交互
#if defined( MT_TASK )
MT_TaskInit( taskID++ );
#endif

//初始化APS層任務
//應用層由三個部分組成,APS 子層,ZDO(包含 ZDO 管理平臺) 和制造商定義的應用對象
//APS:提供NWK層和APL層之間的接口,又名應用支持子層
APS_Init( taskID++ );

//是否已定義分包傳輸
//初始化化APSF層任務
//APSF層是啥東西,還不明白??
#if defined ( ZIGBEE_FRAGMENTATION )
APSF_Init( taskID++ );
#endif

//初始化ZDO應用層任務
ZDApp_Init( taskID++ );

//初始化網(wǎng)絡管理任務
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
ZDNwkMgr_Init( taskID++ );
#endif

//自定義任務初始化
SampleApp_Init( taskID );
}

說明:
1、任務初始化,就是為系統(tǒng)的各個任務分配存儲空間,當然,這個空間初始化時為全0(NULL),然后為各任務分配taskID;這里的順序要注意.
系統(tǒng)主循環(huán)函數(shù)里tasksEvents[ idx]和tasksArr[ idx]的idx與這里taskID是一一對應關系。
2、指針數(shù)組tasksEvents[ ]里面最終分別指向的是各任務存儲空間
指針數(shù)組tasksArr[ ]里面最終分別指向的是各任務事件處理函數(shù)
這兩個指針數(shù)組里面各元素的順序要一一對應,因為后面需要相應任務調(diào)用相應事件處理函數(shù).


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多