9.4.3 嵌入式软件
一个典型的嵌入式计算机系统由硬件层、中间层、系统软件层和应用软件层组成,其中除了硬件层外,其他都属于嵌入式软件的范畴。
1.中间层
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无须关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有硬件相关性和操作系统相关性两大特点。
BSP包括了系统中大部分与硬件联系紧密的软件模块。一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化和硬件相关的设备驱动。
2.系统软件层
系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。
嵌入式操作系统(Embedded Operation System,EOS)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化及应用的专用性等方面具有较为突出的特点。比较著名的嵌入式操作系统有Ready System公司的VRTX、ISI(Integrated System Incorporation)的PSOS和IMG的VxWorks、QNX公司的QNX、Palm OS、WinCE、嵌入式Linux、Lynx、Nucleux等。这两年随着移动互联网的发展,Google的Android系统异军突起,成为消费类电子领域应用较为广泛的操作系统之一。
3.应用软件层
由于要求系统尽量精简,因此相当一部分嵌入式设备的应用软件和操作系统都是紧密结合的,没有系统软件和应用软件的明显区分。然而随着芯片技术的发展,以及应用需求的逐步复杂化,逐渐地,有部分嵌入式设备开始有应用软件,并且可以允许用户随意安装和卸载应用软件,这在消费类电子产品领域尤为常见。