MCU_ZigBee之TI_Z-stack软件架构

/*****************************************************************************************************************************************

*Author:JYW

*Time:2019_02_28

*Describe:学而记之进而习之

*****************************************************/

TI_Z-stack软件架构

 TI Z-stack 是基于一个轮转查询式操作系统的。

最简单的操作系统

   小王是一个单身的年轻妈妈,独自喂养者自己的宝宝和自己年迈的母亲,需要自己努力工作进而获取必要的社会生存资料,为了照顾好宝宝和父母,她请求老板批准在家工作即SOHO的生活方式,她每天要做的事就是:

      1,宝宝的事情

      2,父母的事

      3,自己的事

小王的大脑是命令机构,可以当作是“操作系统”,她的身体是执行机构,可以看作是电脑的“CPU”,我们把她每天要做的事叫做“任务”,小王每天要做的事就相当于操作系统安排CPU执行,在操作系统中,这种安排任务的过程可以称作“调度

因此,一个最简单的操作系统就是这么一段程序代码,它的作用就是对几项不同的任务进行调度,使其协调有序的在CPU上运行。

轮转查询式操作系统的应用

按照上面的叙述,可以编写一个操作系统,来支配小王的身体这个CPU,就是说对其进行“调度”。

上面的操作系统是个无休止的循环,每个任务轮转执行;

Z-Stack软件架构

上文以小王的例子讲述了一个最基本的轮转查询式操作系统,实际上,TI的Z-stack协议栈就是基于这么一个操作系统的。

协议栈的main函数总体来说就做了两个工作,一个是系统的初始化,还有一个就是开始操作系统实体。

     系统初始化

初始化分为初始化系统时钟,检测芯片工作电压,初始化堆栈等

     操作系统的执行

启动代码为操作系统的执行做好准备工作后,就开始执行操作系统的入口程序,并且彻底将控制权移交给操作系统;

操作系统实体其实只有一行代码:

这句代码有注释,意思是本函数不会返回,也就是说它是一个死循环,它所做的就是不断的查询每个任务中是否有事件发生,如果发生就会执行相应的函数。

osal_start_system()具体分析:

通过上面的循环就得到了有事件待处理的具有最高优先级的任务的序号idx;

猜你喜欢

转载自blog.csdn.net/jiangxiaoweijxw/article/details/88038037