本文介绍常见的嵌入式软件体系结构。
在嵌入式开发过程中,尤其是MCU为主控的项目开发中,实时性是需要考虑的重要因素,本文介绍常见的2种嵌入式软件体系结构,并对其优缺点作简要分析,另外,还对它们的软件层次结构做了简要介绍。
1.无操作系统
无操作系统形式包含轮询系统和前后台系统。
1)轮询系统
将系统功能分解称若干个不同的任务,将其放置在一个无限循环中,按顺序循环执行。其伪代码如下。
int main(void)
{
Hardware_Init();
Task_Init();
while (1)
{
Task1();
Task2();
Task3();
}
return 0;
}
优点:
结构简单。
缺点:
实时性差。任务需延迟一个轮询周期才被执行,若其他任务耗时比较长,则任务无法及时处理某些事件。
开发建议:
可配合状态机和消息队列提高系统实时性
2)前后台系统
在轮询系统基础上增加了中断。其中前台为中断服务程序,后台为无限循环中的任务。为了避免中断占用过多时间而影响到其他中断(不复杂的也可以直接在中断中处理),一般在中断服务程序中置位相应标志位,而在无限循环任务中查询标志位再进行处理。其伪代码如下。
int main(void)
{