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

嵌入式系统 时间: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
1 2 3 4

关键词: 编程 模式 系统 嵌入式 时间 触发 改进型

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版