1 / 9
文档名称:

Zigbee协议栈OSAL层API函数.doc

格式:doc   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Zigbee协议栈OSAL层API函数.doc

上传人:yjjg0025 2015/9/20 文件大小:0 KB

下载得到文件列表

Zigbee协议栈OSAL层API函数.doc

相关文档

文档介绍

文档介绍:Zigbee协议栈OSAL层API函数(2010-11-19 21:18)
分类: ZigBee 技术学习
OSAL层提供了很多的API来对整个的协议栈进行管理。主要有下面的几类:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。看到这些管理是不是感觉越来越像一个操作系统了。
1. 信息管理API
信息管理为任务间的信息交换或者外部处理事件(例如:中断服务程序或一个控制循环内的函数调用)提供一种管理机制。包括允许任务分配或不分配信息缓存、发送命令信息到其他任务、接受应答信息等API函数。
(1)osal_msg_allocate ( )
功能描述:
为信息分配缓存空间、任务调用或函数被调用的时候,该空间被信息填充或调用发送信息函数osal_msg_send()发送缓存空间的信息到其他任务。
原型:
byte *osal_msg_allocate( uint16 len )
参数:
len :消息的长度
返回值:
指向消息缓冲区的指针,当分配失败时返回NULL
注意:不能与函数osal_mem_alloc()混淆,osal_mem_alloc()函数被用于为在任务间发送信息分配缓冲区,用该函数也可以分配一个存储区。
(2)osal_msg_deallocate( )
功能描述:
用于收回缓冲区
原型:
byte osal_msg_deallocate( byte *msg_ptr )
参数:
Msg_ptr : 指向将要收回的缓冲区的指针
返回值:
ESS 回收成功
INVALID_MSG_POINTER 错误的指针
MSG_BUFFER_NOT_AVAIL 缓冲区在队列中
(3) osal_msg_send( )
功能描述:
任务调用这个函数以实现发送指令或数据给另一个任务或处理单元。目标任务的标识必须是一个有效的系统任务,当调用osal_create_task ( )启动一个任务时,将会分配任务标识。
osal_msg_send()也将在目标任务的事件列表中设置SYS_EVENT_MSG
原型:
byte osal_msg_send( byte destination_task, byte *msg_ptr )
参数:
destination_task :目标任务的标识
msg_ptr : 指向消息缓冲区的指针,必须是osal_msg_allocate ( )函数分配的有效的数据缓存
返回值:
返回一个字节,指示操作的结果.
ESS 消息发送成功
INVALID_MSG_POINTER 无效指针
INVALID_TASK 目标任务无效
(4) osal_msg_receive( )
功能描述:
任务调用这个函数来接收消息。消息处理完毕后,发送消息的任务必须调用osal_msg_deallocate()收回缓冲区。一个任务接收一个命令信息是,调用该函数
原型:
byte *osal_msg_receive( byte task_id )
参数:
task_id :消息发送者的任务标识
返回值:
指向消息所存放的缓冲区指针,如果没有收到消息将返回NULL。
2 同步任务API
这个API使能一个任务等待一个事件的