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条评论)
登录后参与讨论