本文目录一览

1,求助关于CC2530在osal调度下PM2模式休眠和工作时间问题

OSAL调度系统的休眠时间并不是自己随便可以设置的,而是osal调度系统每次都是以最近一次要发生事件的timeout作为本次的休眠时间,如果你的系统有一个最小的30ms事件的周期性的发生,那么你的休眠时间只能是30ms了。

求助关于CC2530在osal调度下PM2模式休眠和工作时间问题

2,为什么要osal调用此函数来推送uarttimer

osal_msg_receive()返回一个Byte型的指针,再把该指针转化成afIncomingMSGPacket_t,赋值给MSGpkt。。。万恶的zigbee啊。。。。
虽然我很聪明,但这么说真的难到我了

为什么要osal调用此函数来推送uarttimer

3,OSAL与TinyOS的区别

基于我的理解,osal是chipcon公司自己写的操作系统模拟库,说是模拟,因为还不能完全称得上操作系统,因为功能太简单了,你可以看他任务的调度机制。而tinyos是一个完善的嵌入式操作系统,我没用过,只是表面上的理解,仅供参考。
不知道,呵呵

OSAL与TinyOS的区别

4,如何使用OSAL的事件

OSAL通过一个16位宽度的数组来管理事件,意味着OSAL最多可以支持16个事件,其中最高位(0x08000,SYS_EVENT_MSG)系统保留,用户可以使用的事件有15个。事件的使用很简单:1)需要找个地方定义事件的ID,实际上是指定该事件占用事件数组的哪个位。如#define MY_EVENT 0x02,占用bit1。2)在需要触发事件的地方调用osal_set_event( ) ,这个函数有两个参数,一个是接收事件任务的ID,另一个参数指定事件ID。3)在相应任务的处理函数,检查该事件执行相应代码即可。4)清除事件标识。(不知道能否自动清除事件标识,还有待研究代码)

5,我用的是zigbee CC2530在osalstartsystem函数中有

是有osalTimeUpdate()和Hal_ProcessPoll()这两个函数。cc2530中OSALAPI接口函数:信息管理APIosal_msg_allocate( )函数原型:任务是分配一个信息缓冲区,当任务调用或函数被调用时,该空间被信息填充或调用信息发送函数osal_msg_send() 发送缓冲空间的信息到其他任务,若该缓冲空间不能被分配,则设置msg_ptr=NULL空;uint8 *osal_msg_allocate( uint16 len ),返回的是指针,若返回为空,则该信息缓存空间分配失败。 注:该函数不能与osal_mem_alloc()混淆,osal_mem_alloc()函数是用于为在任务间发送信息分配缓冲区。该函数可以分配一个存储空间。
期待看到有用的回答!

6,zigbee任务定时函数osalstarttimerEX定时不准确差别太大

有限制的 最大定时的时间 你可以继续看看
是有osaltimeupdate()和hal_processpoll()这两个函数。cc2530中osalapi接口函数:信息管理apiosal_msg_allocate( )函数原型:任务是分配一个信息缓冲区,当任务调用或函数被调用时,该空间被信息填充或调用信息发送函数osal_msg_send() 发送缓冲空间的信息到其他任务,若该缓冲空间不能被分配,则设置msg_ptr=null空;uint8 *osal_msg_allocate( uint16 len ),返回的是指针,若返回为空,则该信息缓存空间分配失败。 注:该函数不能与osal_mem_alloc()混淆,osal_mem_alloc()函数是用于为在任务间发送信息分配缓冲区。该函数可以分配一个存储空间。

文章TAG:osal  求助关于CC2530在osal调度下PM2模式休眠和工作时间问题  
下一篇