|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2015-4-27 13:15:15
|
显示全部楼层
本帖最后由 Andrewz 于 2015-4-27 17:34 编辑
这些天用了下CC2530.
WeBee的板子.
接触到一种 类操作系统 TI Z Stack里面用的OSAL.
通过设置标志位控制系统走向的一种操作系统.
初看很简单.不断查询任务标志位数组,有非零的就表示有该标号任务有时间待处理,然后处理.
处理完之后清除该事件标志位,若改任务中所有事件都清零了.则该任务完成.
细想这个系统的实时性可能会稍微差一点.
在执行某个稍长的任务时候,如果有中断,中断里面设置了事件标志位.
系统要等到这个稍长的任务处理完之后,再重新查表.
如果这个表里面有优先级更高一点的任务,就会继续执行高优先级任务,执行完,
才会来处理 这个中断设置了标志位的 事件.
基于8051内核.IAR开发环境.
发现很多单片机开发环境无法实现 函数的折叠.
另外,这个Zigbee工程的例子的coordinate,device,router选项,似乎已经超过了单片机编程的范围了.
目前只知道在样板的目录下修改项目.
无法自己独立创建新项目.
另外,用MinGW弄了一下gcc,使用UE的界面,感觉尚可.
gcc -c -v -I -L -o
cre .link
e:&&cd "%p"&&cd ..&&gcc xxxx
有阵子没画原理图了..
Z Stack通信起来还是挺有意思.
*每个硬件要先设定到一个 任务去响应.比如,将 所有按键有关的标志 设置到一个app任务,只有这个任务里面的标志位会被按键置位.
*串口接收到一个数据,会引发事件标志,还可以收到一个msg包.根据msg包判断内容.
*OTA 天线收到一个聚聚,也会引发事件标志,同样也有一个msg包,根据msg包判断其他内容.
。。。 |
|