|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式软件基础知识 > 嵌入式软件体系结构 >
|
考试要求:掌握
相关知识点:2个
|
|
|
|
在嵌入式系统的发展初期,由于硬件的配置比较低,而且系统的应用范围也比较有限,主要集中在控制领域,对于是否有系统软件的支持,要求还不是很强烈。所以在那个阶段,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统,软件的规模也较小,基本上属于硬件的附属品。
|
|
|
在具体实现上,无操作系统的嵌入式软件主要有两种实现方式:循环轮转和前后台系统。
|
|
|
|
如下图所示,循环轮转方式的基本思路是:把系统的功能分解为若干个不同的任务,然后把它们包含在一个循环语句当中,按照顺序逐一执行。当执行完一轮循环后,又回到循环体的开头重新执行。
|
|
|
|
|
循环轮转方式的优点是简单、直观、开销小、可预测。软件的开发就是一个典型的基于过程的程序设计问题,可以按照自顶向下、逐步求精的方式,将系统要完成的功能逐级划分成若干个小的功能模块,像搭积木一样搭起来。由于整个系统只有一条执行流程和一个地址空间,不需要任务之间的调度和切换,因此系统的管理开销很少。
|
|
|
循环轮转方式的缺点是过于简单,所有的代码都必须按部就班地顺序执行,无法处理异步事件,缺乏并发处理的能力。另外,这种方案没有硬件上的时间控制机制,无法实现定时功能。
|
|
|
|
前后台系统就是在循环轮转方式的基础上,增加了中断处理功能,如下图所示。
|
|
|
|
|
上图中的中断服务程序负责处理异步事件,这部分可以看成是前台程序。而后台程序一般是一个无限的循环,负责掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。在系统运行时,后台程序会检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。而对于实时性要求特别严格的操作通常由中断来完成。为了提高系统性能,大多数的中断服务程序只做一些最基本的操作,例如,把来自于外设的数据拷贝到缓冲区、标记中断事件的发生等,其余的事情会延迟到后台程序去完成。
|
|
|
实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,而且任务的执行又是通过先进先出的队列排队,因而对那些实时性要求很高的任务不能立刻得到处理。但由于这类系统的结构比较简单,几乎不需要额外开销,因而在一些简单的嵌入式应用中被广泛地使用,如微波炉、电话机、电子玩具等。
|
|
|