下载此文档

协议栈OSAL层API函数.pptx


文档分类:IT计算机 | 页数:约41页 举报非法文档有奖
1/41
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/41 下载此文档
文档列表 文档介绍
ZigBee网络原理与应用
李曙英
2015.
协议栈OSAL层API函数
OSAL层提供了很多的API来对整个的协议栈进行管理。主要有下面的几类:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。
信息管理API
信息管理为任务间的信息交换或者外部处理事件(例如:中断服务程序或一个控制循环内的函数调用)提供一种管理机制。包括允许任务分配或不分配信息缓存、发送命令信息到其他任务、接受应答信息等API函数。
osal_msg_allocate ( )
功能描述:
   为信息分配缓存空间、任务调用或函数被调用的时候,该空间被信息填充或调用发送信息函数osal_msg_send()发送缓存空间的信息到其他任务。
原型:byte *osal_msg_allocate( uint16 len )
参数:  len :消息的长度
返回值: 指向消息缓冲区的指针,当分配失败时返回NULL
注意:不能与函数osal_mem_alloc()混淆,osal_mem_alloc()函数被用于为在任务间发送信息分配缓冲区,用该函数也可以分配一个存储区。
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。
同步任务API
这个API使能一个任务等待一个事件的发生和返回控制而不是一直等待。在这个API中的函数可以用来为任务设置事件,立刻通知任务有事件被设置。
osal_set_event( )

协议栈OSAL层API函数 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数41
  • 收藏数0 收藏
  • 顶次数0
  • 上传人s0012230
  • 文件大小114 KB
  • 时间2018-06-19