当前位置:中国高校自动化网 >> RIFI >> 浏览文章

OSAL操作系统抽象层ZigBee_API解读

文章来源:EDN博客 作者:佚名 访问次数:


本文来自佚名的博客,讲述了OSAL操作系统抽象层ZigBee_API解读的原理和应用, 作者博客:http://blog.ednchina.com/佚名

 

 

根据Z-Stack1.4.3-1.2.0中OSAL API_F8W-2003-0002_.pdf文档翻译。

Z-Stack1.4.3及以后的版本中引入了一个OS的概念,把应用层和堆栈层进行了分离,但是这个操作系统并不是时实的操作系统,所以有兴趣的话还可以将其改为时实的操作系统,或者用其他开源的实时操作系统取代,比如USOS,呵呵。我将这个OS的API文档进行了一定的翻译,当然所谓一定,就是说有的地方没有翻译出来罗,要么是我不会的,要么就是我觉得没必要翻译的东西,总之,提供给各位一个参考,最好是对照原文档来阅读拉。

没接触过操作系统,也是第一次搞Zigbee,错误的地方还请各位多多指正。

OSAL(操作系统抽象层) API[OSAL API_F8W-2003-0002_.pdf]

这个层次主要是将Z-Stack软件组件从特殊的处理过程相分离,将其保护起来。一般来说提供如下几个功能:

·                     任务的注册、初始化、开始

·                     任务间的消息交换

·                     任务同步

·                     中断处理

·                     时间管理

·                     内存分配

消息管理API

消息管理API提供任务(或处理单元)间的消息交换(比如中断服务事务,控制循环中的函数调用)。这些API能用来允许任务分配和取消分配的消息缓存,发送对其他任务的命令消息,接受应答消息。

byte *osal_msg_allocate(uint16 len)

分配一个消息缓存,随后调用它的任务/函数将填充消息并调用osal_msg_send()将消息发送给其他任务。

参数:消息长度;

返回值:指向消息缓存的指针,失败则为NULL。

byte osal_msg_deallocate(byte *msg_ptr)

任务接收完消息后用来释放分配的消息缓存。

参数:要释放的消息缓存;

返回值:ZSUCCESS             - 成功

    INVALID_MSG_POINTER     - 无效的消息指针

    MSG_BUFFER_NOT_AVAIL        - 缓存正在队列(queued)

byte osal_msg_send(byte destination_task,byte *msg_ptr)

上一篇:DDS_AWG710B生成宽带调制信号频射要点—相位连续
下一篇:没有了
最近更新