最近刚学DSP C2000系列,看了很多例程和文档,发现程序架构基本是以下这种结构:
这种结构的好处是什么呢?我觉得用一个super loop不停轮询,不需要定时器也可以啊,这样CPU的使用率还更高
这种结构唯一我能想到的好处是任务执行具有时间确定性,不过这需要计算每个任务的运行时间,合理分配好定时的值,不过感觉有点麻烦。。
除此之外还有其他隐藏的好处吗?
Shine:
C2000的问题请到专门的C2000论坛咨询。
e2echina.ti.com/…/
Ryan BL:
从CPU使用率来看,是轮询更好些,然而也正如你所说,有的任务是有实时要求的,尤其是中断嵌套这种情况。
鉴于你都是定时器任务,确实轮询更合适;
不过如果还要考虑低功耗优化,没事儿干的时候CPU需要IDLE进入低功耗模式,那么就只能定时器中断或其他中断唤醒了。
user5072622:
回复 Ryan BL:
我在C2000论坛也发了这个帖子,感觉有位兄弟说得挺有道理,就是不停轮询虽然能提高CPU使用率 ,但是会浪费时间去轮询一些不是很急切的任务,从而影响急切任务的响应
灰小子:
回复 user5072622:
其实这个问题要结合具体的应用来讲,可能更清楚。不同的程序架构有不同的优缺点,只有适合应用场景的才是最合适的。