ZStack OSAL中文说明

ZStack OSAL中文说明

ID:38583985

大小:206.00 KB

页数:9页

时间:2019-06-15

ZStack OSAL中文说明_第1页
ZStack OSAL中文说明_第2页
ZStack OSAL中文说明_第3页
ZStack OSAL中文说明_第4页
ZStack OSAL中文说明_第5页
资源描述:

《ZStack OSAL中文说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.概述OSAL(OperatingSystemAbstractionLayer),翻译为“操作系统抽象层”。  在基于ZigBee协议的应用开发中,应用程序框架中包含了最多240个应用程序对象。如果我们把一个应用程序对象看做为一个任务的话,那么应用程序框架将包含一个支持多任务的资源分配机制。于是OSAL便有了存在的必要性,它正是Z-Stack为了实现这样一个机制而存在的。  OSAL就是以实现多任务为核心的系统资源管理机制。所以OSAL与标准的操作系统还是有很大的区别的。简单而言,OSAL实现了类似操作系统的某些功能,但并不能称

2、之为真正意义上的操作系统。2.OSAL的API接口函数名称功能描述voidosal_nv_init()初始化FLASH存储器uint8osal_init_system()初始化操作系统voidosal_mem_init()初始化内存分配系统voidosalTimerInit()初始化定时器voidosalInitTasks()初始化系统任务voidosal_start_system()进入操作系统voidosal_run_system()运行操作系统voidosalTimeUpdate()操作系统时间更新voidHal_Proce

3、ssPoll()硬件层检查2.1消息管理功能(1)uint8*osal_msg_allocate(uint16len):申请一个指定长度的消息缓存区,该函数调用void*osal_mem_alloc(uint16size)函数实现,从堆中申请存储空间。(2)uint8osal_msg_deallocate(uint8*msg_ptr):接收到消息的任务处理完成后释放消息的缓存空间。(3)uint8osal_msg_send(uint8destination_task,uint8*msg_ptr):发送消息到指定任务,将消息放入队列

4、,并把任务的相应事件标志置位。(4)uint8*osal_msg_receive(uint8task_id):接收发送到某个消息的任务,在任务处理完消息后,必修释放消息的存储空间。该函数查找消息队列,如果消息队列中有多个发送给该任务的消息,保持事件标志位。(5)osal_event_hdr_t*osal_msg_find(uint8task_id,uint8event):寻找发送给具有某个事件的任务的消息。2.2任务同步功能(1)uint8osal_set_event(uint8task_id,uint16event_flag):

5、设置某个任务的某个事件标志。event_flag为16位,只有一个系统事件SYS_EVENT_MSG,其余的事件都是用户定义的事件。2.3时间管理功能时间管理的API既可以被Z-stack协议栈中的任务使用,也可以被应用级任务使用。粒度为1ms。(1)uint8osal_start_timerEx(uint8taskID,uint16event_id,uint16timeout_value):为某个任务设置一个定时器,taskID为任务ID,event_id为用户指定的事件标志位,timeout_value为超时时间,以ms为单位

6、。(2)uint8osal_start_reload_timer(uint8taskID,uint16event_id,uint16timeout_value):设置定时器,与上一个函数不同的是该函数设置的定时器超时后被重新装载。(3)uint8osal_stop_timerEx(uint8task_id,uint16event_id):停止一个已经开始的定时器。(4)uint32osal_GetSystemClock(void):获取系统时间,返回值以ms为单位。2.4中断管理功能(1)uint8osal_int_enable(

7、uint8interrupt_id):使能某个中断(2)uint8osal_int_disable(uint8interrupt_id):禁止某个中断2.5任务管理功能constpTaskEventHandlerFntasksArr[]={macEventLoop,nwk_event_loop,Hal_ProcessEvent,MT_ProcessEvent,APS_event_loop,APSF_ProcessEvent,ZDApp_event_loop,ZDNwkMgr_event_loop,GenericApp_Proces

8、sEvent};constuint8tasksCnt=sizeof(tasksArr)/sizeof(tasksArr[0]);数组tasksArr定义了各个任务的事件回调函数,如果有用户自己定义的任务,必须将其事件回调函数加入到该数组中。void

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

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

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