欢迎来到天天文库
浏览记录
ID:37712734
大小:38.00 KB
页数:5页
时间:2019-05-29
《ZigBee学习之31—osal_init_system》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#1楼主:【原创】ZigBee学习之31——osal_init_system文章发表于:2010-02-1217:30//初始化操作系统,主要是堆栈,时钟,电源模式,任务号分配osal_init_system();//通过创建定义在任务表【OSAL_Tasks.h】中的任务来初始化任务系统【OSAL.c】byteosal_init_system(void){//初始化内存分配系统【OSAL_Memory.c】osal_mem_init();//初始化消息队列,其实就是一个指针osal_qHead=NULL;//osal_msg_q_tosal_qHead;//typedefvoi
2、d*osal_msg_q_t;#ifdefined(OSAL_TOTAL_MEM)//如果定义了OSAL_TOTAL_MEM就会跟踪系统的堆栈使用情况并通过LCD显示出来osal_msg_cnt=0;#endif//初始化系统定时器【OSAL_Timers.c】osalTimerInit();voidosalTimerInit(void){//Initializetherollovermodulotmr_count=TICK_TIME;//【OnBoard.h】//#defineTICK_TIME1000//每次时钟滴答的时间(毫秒)tmr_decr_time=TIMER_DEC
3、R_TIME;//#defineTIMER_DECR_TIME1osal_timer_activate(false);//初始化系统定时器,实际上是停止了时钟定时器【OSAL_Timers.c】voidosal_timer_activate(byteturn_on){osal_timer_hw_setup(turn_on);//设置时钟硬件【OSAL_Timers.c】voidosal_timer_hw_setup(byteturn_on){if(turn_on){HalTimerStart(OSAL_TIMER,tmr_count);//启动时钟}else{HalTimerSt
4、op(OSAL_TIMER);}}timerActive=turn_on;}timerActive=false;osal_systemClock=0;}//初始化电源管理系统osal_pwrmgr_init();//配置器件使用的电源模式【OSAL_PwrMgr.c】voidosal_pwrmgr_init(void){pwrmgr_attribute.pwrmgr_device=PWRMGR_ALWAYS_ON;//默认不打开节能模式//【OSAL_PwrMgr.h】//#definePWRMGR_ALWAYS_ON0//不使用节能模式//#definePWRMGR_BATTE
5、RY1//使用电池供电,允许进入休眠模式//pwrmgr_attribute_tpwrmgr_attribute;typedefstruct{uint16pwrmgr_task_state;uint16pwrmgr_next_timeout;uint16accumulated_sleep_time;uint8pwrmgr_device;}pwrmgr_attribute_t;pwrmgr_attribute.pwrmgr_task_state=0;//Cleared.Allsettoconserve}//初始化系统任务,为每个任务调用初始化函数osalInitTasks();//
6、【sapi.c】voidosalInitTasks(void){uint8taskID=0;tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16)*tasksCnt);osal_memset(tasksEvents,0,(sizeof(uint16)*tasksCnt));//uint16*tasksEvents;//constuint8tasksCnt=sizeof(tasksArr)/sizeof(tasksArr[0]);//任务队列中其实是一个个的事件处理函数,这里分配了任务要用的内存空间。然后为每个任务分配一个不同的任务ID
7、,ID递增,按照初始化的顺序排列在tasksArr队列中macTaskInit(taskID++);nwk_init(taskID++);Hal_Init(taskID++);#ifdefined(MT_TASK)MT_TaskInit(taskID++);#endifAPS_Init(taskID++);ZDApp_Init(taskID++);SAPI_Init(taskID);}//Setupefficientsearchforthefirstfreeblockofheap
此文档下载收益归作者所有