嵌入式是在设备硬件中嵌入了软件,专用于某个应用领域,可以是一个独立系统也可以是一个大系统中的一个单元,主要由以下3个部分组成。
● 硬件平台。
● 系统软件层:用于管理和支撑应用软件。
● 应用软件层:用于执行多任务,以实现产品所提供的具体功能。
硬件平台主要由中央处理器(Central Processing Unit,CPU)、内存、物理芯片或交换芯片、通用设备接口和 I/O 接口组成。简而言之,嵌入式硬件核心模块=CPU+电源电路+时钟电路+内存+其他功能模块,这里CPU是核心,内存包括缓存、主存和辅存。
系统软件层由操作系统、文件系统、图形用户界面(Graphical User Interface,GUI)、网络系统和通用组件模块组成,这些通常被视为底层,可以提供应用层接口。
应用软件层由各类应用程序组成,大多以二进制应用+支撑库文件的方式存放在设备上。
这种嵌入式的体系结构是嵌入式设备的一种软件抽象,通过开发的层次化思想来划分嵌入式操作系统的结构是理清嵌入式设备结构的一种常用方法,即将整个系统的功能模块进行划分,分布到不同层次中,各层保持独立性,并给其他层提供访问接口,这样系统本身就成为一个多层次的框架。据此,嵌入式软件系统可再细分为硬件驱动接口层、系统内核层、软件平台层、应用程序层。嵌入式操作系统层次结构如图1-1所示。
图1-1 嵌入式操作系统层次结构
硬件驱动接口层:用来和嵌入式硬件进行通信和交互,是抽象硬件平台的接口,主要由设备驱动程序组成,对上层提供接口封装。
系统内核层:是运行系统所需功能集合的最小子集,可在多种嵌入式 CPU 上运行。针对应用提供最基本的服务,包括系统时钟、电源管理、程序装载与运行、进程调度和内存管理等。同时提供实时系统运行的基本要素,如实现多任务、优先级驱动的紧急优先调度方法、快速现场切换等机制,并且可访问硬件资源,如CPU的间接访问。
软件平台层:一般可视为操作系统的一部分,提供面向对象/面向过程的系统资源管理功能,如内存管理、文件管理、设备管理、网络协议管理和数据存储等,并提供标准的系统服务应用程序接口(Application Programming Interface,API)给上层应用程序,有利于系统功能的扩展,内核的编程接口也属于这个层次。这样系统上层软件不需要关注底层硬件的具体情况,可以直接使用提供的接口开发软件。软件平台层和系统内核层可归纳为系统软件层。
应用程序层:对应应用软件层,通过提供基于系统功能的、面向应用的系统服务接口来实现设备的特定功能,以用于特定领域。
图1-1中的每个层次都只能和上层或下层通信,不能越层,依赖关系是从上到下,即上层依赖下层,下层不依赖上层。