ZigBee学习之31—osal_init_system

ZigBee学习之31—osal_init_system

ID:37712734

大小:38.00 KB

页数:5页

时间:2019-05-29

ZigBee学习之31—osal_init_system_第1页
ZigBee学习之31—osal_init_system_第2页
ZigBee学习之31—osal_init_system_第3页
ZigBee学习之31—osal_init_system_第4页
ZigBee学习之31—osal_init_system_第5页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。