1.3.4 按嵌入式系统软件复杂程度分类
1.循环轮询系统
循环轮询系统编程简单,没有中断,不会出现随机问题。便于编程和理解,程序运行良好;但是它不适合有大量输入/输出的服务,程序规模增大后不便于调试。所以应用领域有限,适合于慢速和非常快速的简单系统。
2.前后台系统
前后台系统是中断驱动系统的一种,后台程序是一个无线循环,通过调用函数实现相应操作,又称任务级。前台程序是中断处理程序,用来处理异步时间,又称中断级。当有一前台事件(外部事件)发生时,引起中断,进行前台处理,处理完成后又回到后台(通常又称主程序)。但是,需要考虑的是中断的现场保护和恢复、中断嵌套、中断处理过程与主程序的协调(共享资源)问题。一些不复杂的小系统比较适合采用前后台系统的结构来设计程序。甚至在某些系统中,为了省电,平时让处理器处于停机状态,所有工作都依靠中断服务来完成。它的实时性主要通过中断来保证,一旦主程序介入处理事件,其实时性难以保证。而且中断服务程序与主程序之间的共享、互斥的问题需要自解决。
3.单处理器多任务系统
单处理器多任务系统是由多个任务、多个中断处理过程、实时操作系统组成的有机的整体。每个任务是顺序执行的,并行性通过操作系统来完成,任务间的相互通信和同步也需要操作系统的支持。在单处理器系统中,任务在宏观上看是并发执行的,但在微观上看实际是顺序执行的。
多任务系统是指多个顺序执行的程序并行运行的系统。宏观上看,所有的程序同时运行,每个程序运行在自己独立的CPU上。实际上,不同的程序是共享同一个CPU和其他硬件。因此,需要实时操作系统(Real-Time Operation System,RTOS)来对这些共享的设备和数据进行管理。每个程序都被编制成无限循环的程序,等待特定的输入,执行相应的任务等。这种程序模型将系统分成相对简单的、相互合作的模块。