TI中文支持网
TI专业的中文技术问题搜集分享网站

关于Z-Stack分时任务的问题

大家都知道Z-Stack采取时间片轮询任务调度算法,然而Z-Stack2.3.0的时间片长度为320us,也就是说每隔320us协议栈的 OSAL就开始切换Task。废话不刷了,直入正题吧,我的问题是,假如我有一个传感器,每次读取的时间远大于320us假设读取时间为5ms,我该怎么做才能保证读取过程不被打断呢?刚开始想到中断,后来有觉得不妥,因为5ms中有很多个320us了已经被打断很多次了,纠结啊….  有哪位大神弄过这类的问题的啊?坐等OutMan

xiao dong jia:

osal并不具备时间片调度功能,任务都是执行完一个再执行下一个的,只是它的最小轮询时间可以达到320us而已

Lin Vigi:

回复 xiao dong jia:

xiao dong jia,能详细的说一下吗?

Lin Vigi:

回复 xiao dong jia:

在osal_start_system( void )中的for死循环中osalTimeUpdate()函数不是更新时间的吗,产生中断的吗,这个又如何解释呢

xiao dong jia:

回复 Lin Vigi:

osalTimeUpdate()函数是用来更新系统时钟的,而且这里面也不产生中断。你没有仔细看代码吧

Lin Vigi:

回复 xiao dong jia:

你说的没错,刚刚看了下,的确是更新系统时间的,至于OSAL能不能处理多任务并发,我明天做实验试试

赞(0)
未经允许不得转载:TI中文支持网 » 关于Z-Stack分时任务的问题
分享到: 更多 (0)