新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 改进型时间触发嵌入式系统编程模式

改进型时间触发嵌入式系统编程模式

作者:时间:2012-07-18来源:网络收藏

由于任务⑧执行一次要几秒钟的,整个超级循环执行一次至少大于任务⑧需要的,也就是说这个超级循环循环一次要几秒钟,将满足不了各任务响应时间的要求。
要解决这个问题,只有把任务⑧拆分成很多个子任务,将每个子任务的耗时压缩到10 ms左右,并定义好各个子任务完成后的状态,在超级大循环中每次根据状态只执行一个子任务,程序结构如下:
while(1){
任务①;
任务②;
……
switch(子任务状态){
case 子任务状态①:
子任务①;
break;
……
case 子任务状态②:
子任务②;
break;
……
case 子任务状态c.JPG
子任务c.JPG
break;
}
}
这样,就需要把一个耗时几秒的FFT运算任务拆分成几百个耗时10 ms左有的子任务,这显然是不可接受的。除此之外,超级大循环结构隐含的一个缺点就是随着任务的增加,循环体的执行时间是线性增加的,在实际设计中即使没有像任务⑧那样的高耗时任务,当功能增加时要保证响应的及时性也是一个不小的挑战。
1.2 使用“时间”进行
“时间”的核心是建立一个基丁时间的合作式的任务调度器,在中尽量减少事件触发(减少中断的使用),系统通过任务调度器完成各任务的调度执行,下面是“时间触发编程”的典型程序结构:
d.JPG
linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭