ZigBee协议栈OSAL层API函数(译)_第1页
ZigBee协议栈OSAL层API函数(译)_第2页
ZigBee协议栈OSAL层API函数(译)_第3页
ZigBee协议栈OSAL层API函数(译)_第4页
ZigBee协议栈OSAL层API函数(译)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——ZigBee协议栈OSAL层API函数(译)3.信息管理API

3.1概述

这部分API提供了任务或处理单元与不同的处理环境之间的数据交换。这部分API函数能够为任务分派和收回消息缓冲区,发送命令消息给以外一个任务并且接收应答。

3.2osal_msg_allocate()

概述:

当一个任务调用这个函数时,将为消息分派缓冲区,函数会将消息参与缓冲区,并调用osal_msg_send()将消息发送到另一个任务。原型:

byte*osal_msg_allocate(uint16len)

参数:

len:消息的长度返回值:

指向消息缓冲区的指针,当分派失败时返回NULL

3.3osal_msg_deallocate()概述:

用于收回缓冲区原型:

byteosal_msg_deallocate(byte*msg_ptr)参数:

Msg_ptr:指向将要收回的缓冲区的指针返回值:RETURNVALUEDESCRIPTION

ZSUCCESS回收成功INVALID_MSG_POINTER错误的指针MSG_BUFFER_NOT_AVAIL缓冲区在队列中

3.4osal_msg_send()概述:

任务调用这个函数以实现发送指令或数据给另一个任务或处理单元。目标任务的标识必需是一个有效的系统任务,当调用osal_create_task()启动一个任务时,将会分派任务标识。osal_msg_send()也将在目标任务的事件列表中设置SYS_EVENT_MSG原型:

byteosal_msg_send(bytedestination_task,byte*msg_ptr)

参数:

destination_task:目标任务的标识msg_ptr:指向消息缓冲区的指针返回值:

ZSUCCESS消息发送成功

INVALID_MSG_POINTER无效指针INVALID_TASK目标任务无效

3.5osal_msg_receive()概述:

任务调用这个函数来接收消息。消息处理完毕后,发送消息的任务必需调用osal_msg_deallocate()收回缓冲区。原型:

byte*osal_msg_receive(bytetask_id)参数:

task_id:消息发送者的任务标识返回值:

指向消息所存放的缓冲区指针,假使没有收到消息将返回NULL。

4.任务同步API

4.1概述

这个API使能一个任务等待一个事件的发生和返回控制而不是一直等待。在这个API中的函数可以用来为任务设置事件,立刻通知任务有事件被设置。

4.2osal_set_event()概述:

函数用来设置一个任务的事件标志原型:

byteosal_set_event(bytetask_id,UINT16event_flag)参数:

task_id:任务标识

event_flag:2个字节,每个位特指一个事件。只有一个系统事件,其他事件在接收

任务中定义。

返回值:

ZSUCCESS成功设置

INVALID_TASK无效任务

5.定时器管理API5.1概述

这个API允许内部任务(Z-Stack)以及应用层任务使用定时器。函数提供了启动和中止定时器的功能,定时器最小增量为1MS。

5.2osal_start_timer()概述:

启动定时器函数。当定时器到点时,thegiveneventbitwillbeset。事件将在任务中设置,要指明具体任务,调用osal_start_timerEx()原型:

byteosal_start_timer(UINT16event_id,UINT16timeout_value);参数:

event_id:用户定义的eventbit.当定时器到点时,事件将通知任务。timeout_value:定时值(ms)返回值:

ZSUCCESSTimer成功开启

NO_TIMER_AVAILABLE无法开启

5.3osal_start_timerEx()概述:

功能与osal_start_timer()相近,这个函数允许调用者为另一个任务启动定时器原型:

byteosal_start_timerEx(bytetaskID,UINT16event_id,UINT16timeout_value);参数:略返回值:

ZSUCCESSTimer成功开启

NO_TIMER_AVAILABLE无法开启

5.4osal_stop_timer()概述:

中止正在运行的定时器,中止外部事件调用osal_stop_timerEx()原型:

byteosal_stop_timer(UINT16event_id);参数:

event_id:将要终止的目标事件(该事件是启动定时器的事件)返回值:

ZSUCCESSTimer成功中止

INVALID_EVENT_ID无效事件

5.5osal_stop_timerEx()概述:

终止外部事件的定时器原型:

byteosal_stop_timerEx(bytetask_id,UINT16event_id);参数:略返回值

ZSUCCESSTimer成功中止

INVALID_EVENT_ID无效事件

5.6osal_GetSystemClock()概述:

读取系统时间原型:

uint32osal_GetSystemClock(void);参数:无返回值:

系统时间(ms)

6.中断管理API

6.1概述:

这个API实现任务与外部中断的接口,函数允许任务关联每一个具体的中断程序,可以开关中断。在中断服务程序内,其他任务可以设置事件。

6.2osal_int_enable()概述:

函数用于使能中断。原型:

byteosal_int_enable(byteinterrupt_id)参数:

interrupt_id:目标中断返回值:

ZSUCCESSInterrupt成功使能

INVALID_INTERRUPT_ID无效中断

6.3osal_int_disable()概述:关闭中断原型:

byteosal_int_disable(byteinterrupt_id)参数:略返回值:

ZSUCCESSInterrupt成功关闭

INVALID_INTERRUPT_ID无效中断

7.任务管理API

7.1概述

这个API用于在OSAL中增加和管理任务。每一个任务由任务初始化函数和时间处理函数组成。OSALcallsosalInitTasks()[app

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论