前言
嵌入式系统(Embedded System)是为了特定应用而专门构建且将信息处理过程和物理过程紧密结合为一体的专用计算机系统。它对功能、可靠性、成本、体积、功耗、环境等综合性能要求严格。
嵌入式软件是指可运行在嵌入式系统中的程序代码和帮助这些软件开发所用的工具或环境软件的总称。
嵌入式系统的组成
- 嵌入式处理器
- 相关支撑硬件
- 嵌入式操作系统
- 支撑软件
- 应用软件
嵌入式系统的特点
- 专用性强,面向特定应用需求。
- 技术融合。
- 软硬一体,软件为主。
- 比通用计算机资源少。由于嵌入式系统通常只完成少数几个任务,设计时考虑到其经济性,不能使用通用CPU,这就意味着管理资源少,成本低,结构更简单。
- 程序代码固化在非易失存储器中。为了提高执行速度和系统可靠性,嵌入式系统的软件一般都固化在存储器芯片或单片机本身中,而不是存在磁盘中。
- 需专门开发工具和环境。嵌入式系统本身不具备开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
- 体积小、价格低、工艺先进、功能性价比高、系统配置要求低、实时性强。
- 对安全性和可靠性的要求较高。
嵌入式系统的分类
根据不同用途可将嵌入式系统划分为:
- 嵌入式实时系统
- 强实时(Hard Real-Time)系统(死限内必须完成)
- 非强实时(WeakReal-Time)系统
- 嵌入式非实时系统
从安全性要求,嵌入式可分为:
- 安全攸关系统(Safety-Critical 或 Life-Critical)
- 非安全攸关系统
嵌入式软件组成
嵌入式系统软件组成架构采用层次化结构,并且具备可配置、可裁剪能力。从现代嵌入式系统观看,把嵌入式系统分为硬件层、抽象层、操作系统层、中间件层和应用层。
- 硬件层:主要是为嵌入式系统提供运行支撑的硬件环境,其核心是微处理器、存储器(ROM、SDRAM、Flash等)、I/O接口(A/D、D/A、I/O等)和通用设备以及总线、电源、时钟等。
- 抽象层:在硬件层和软件层之间,主要实现对硬件层的硬件进行抽象(HAL),为上层应用(操作系统)提供虚拟的硬件资源;扳级支持包(BSP)是一种硬件驱动软件,它是面向硬件层的硬件芯片或电路进行驱动,为上层操作系统提供对硬件进行管理的支持。
- 操作系统层:主要由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成。
- 中间件层:如 JAVA、数据库(DB)、虚拟机、Hadoop等。
- 应用层:如 工业控制应用、物联网应用、移动设备应用等。
嵌入式软件的主要特点
- 可裁剪性:嵌入式软件能够根据系统功能需求、通过工具进行适应性功能的加或减,删除系统不需要的软件模块,使得系统更加紧凑。
- 可配置性:嵌入式软件需要具备根据系统运行功能或性能需要而被配置的能力,使得嵌入式软件能够根据系统的不同状态、不同容量和不同流程,对软件工作状况进行能力的扩展、变更和增量服务。
- 强实时性:嵌入式系统中的大多数都属于强实时性系统,要求任务必须在规定的时限(Deadline)内处理完成,因此,嵌入式软件采用的算法优劣是影响实时性的主要原因。
- 安全性(Safety):指系统在规定的条件下和规定的时间内不发生事故的能力。
- 可靠性:指系统在规定的条件下和规定的时间周期内程序执行所要求的功能的能力。
- 高确定性:预先设计规划好的,其行为不能随时间、状态的变迁而变化。