改进型时间触发嵌入式系统编程模式
2012-09-25华志斌李勇王建伟刘兰辉陈武
单片机与嵌入式系统应用 2012年6期
华志斌,李勇,王建伟,刘兰辉,陈武
(东方英达康自动化技术有限公司 研发部,烟台 264001)
引 言
目前,RTOS特别是抢先式RTOS在嵌入式系统中的应用越来越广泛,但是还有很大一部分产品使用是小型单片机。这些系统由于成本的限制,通常资源非常有限,比如ROM往往小于32KB,RAM小于2KB,由于RTOS对每个任务都要开辟单独内存区域,存放任务的上下文和各任务独立的堆栈,所以在这种系统中使用RTOS非常勉强。对于这些低成本资源受限系统通常采用“前后台”(或者叫“超级循环”)结构进行编程,这实际上是一种事件触发的编程模式,当中断数目较多且系统完成的功能相对复杂时,就会使系统的程序编写变得非常复杂并使系统运行的可预测性迅速下降。
针对这个问题,Michael J.Pont提出了一种“基于时间触发的编程模式”[1],这种方法有助于降低CPU的负荷并减少存储器的使用量,提高系统行为的可预测性,并使程序的结构变得简洁。但是在实际使用中,当系统中不同的任务对时间要求差异较大时,“基于时间触发的编程模式”难以给出简单有效的解决方案。为此,对“基于时间触发的编程模式”进行了改进,使之适应性更强,可以为成本和资源受限的小型嵌入式系统提供统一且有效的编程模式。
1 传统编程结构的局限性
当不使用RTOS时,嵌入式软件通常采用两种传统的编程结构进行编程,一种叫“前后台方式”或者叫“超级循环结构”,本质上是事件触发的编程方式;另一种叫时间触发编程模式,Michael J.Pont的“基于时间触发的编程模式”即属于此。……
登录APP查看全文
