欢迎来到天天文库
浏览记录
ID:37714136
大小:26.67 KB
页数:17页
时间:2019-05-29
《ZigBee协议栈初始化网络启动流程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ZigBee协议栈初始化网络启动流程ZigBee的基本流程:由协调器的组网(创建PANID),终端设备和路由设备发现网络以及加入网络。基本流程:main()->osal_init_system()->osalInitTasks()->ZDApp_Init(),进协议栈初始化函数ZDApp_Init()。1.1进入程序入口main()。ZMain.c中C++Codeintmain(void) { //Turnoffinterrupts osal_int_disable(INTS_ALL);
2、 //InitializationforboardrelatedstuffsuchasLEDs HAL_BOARD_INIT(); //Makesuresupplyvoltageishighenoughtorun zmain_vdd_check(); //InitializeboardI/O InitBoard(OB_COLD); //InitialzeHALdrivers
3、 HalDriverInit(); //InitializeNVSystem osal_nv_init(NULL); //InitializetheMAC ZMacInit(); //Determinetheextendedaddress zmain_ext_addr(); //InitializebasicNVitems zg
4、Init(); #ifndefNONWK //SincetheAFisn'tatask,callit'sinitializationroutine afInit(); #endif //Initializetheoperatingsystem osal_init_system(); //Allowinterrupts osal_int_ena
5、ble(INTS_ALL); //Finalboardinitialization InitBoard(OB_READY); //Displayinformationaboutthisdevice zmain_dev_info(); /*DisplaythedeviceinfoontheLCD*/ #ifdefLCD_SUPPORTED zmain_lcd_init();
6、 #endif #ifdefWDT_IN_PM1 /*IfWDTisused,thisisagoodplacetoenableit.*/ WatchDogEnable(WDTIMX); #endif osal_start_system();//NoReturnfromhere return0;//Shouldn'tgethere. }//main()1.2给
7、任务添加IDsapi.c中C++CodevoidosalInitTasks(void)//为各自进程添加ID用于任务的查找 { uint8taskID=0; tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16)*tasksCnt); osal_memset(tasksEvents,0,(sizeof(uint16)*tasksCnt));
此文档下载收益归作者所有