嵌入式系统与软件全解析
1. 嵌入式系统与实时系统概述
计算机的出现将人类带入了数字时代,而后 PC 时代的到来让嵌入式产品这一概念逐渐走进人们的视野。如今,越来越多复杂的软硬件系统被嵌入到医疗、汽车、工业控制、交通、通信、航空航天以及现代武器装备等领域。例如,美国国家航空航天局(NASA)的机载系统代码行数接近 50 万行,还不包括地面控制和处理的 35 万行代码;美国电信领域的支持软件源代码总数超过 1 亿行。
1990 年,电气与电子工程师协会(IEEE)对嵌入式系统给出了定义:嵌入式计算机系统是一个更大系统的一部分,用于执行该系统的某些特定需求,像飞机快速运输系统中使用的计算机系统。通常,用于控制、监控或辅助机器和设备的装置被称为嵌入式系统。嵌入式系统一般包含一系列软硬件设施,嵌入式软件则是嵌入式系统的软件部分,如航天器控制系统、飞机航空电子系统、基于安卓或 iOS 等系统的手机、机顶盒、汽车电子系统以及通信系统路由器等。从广义上讲,由微控制器(如 STM32)、片上系统(SOC)等硬件组成的控制系统也可称为嵌入式系统。这些嵌入式软件往往具有实时特性,因此也被称为实时嵌入式系统。
实时系统是一种专用计算机系统,必须在外部环境规定的时间约束内完成计算和输入/输出(I/O)操作。POSIX 标准 1003.1 将实时系统定义为“操作系统能够在有限的响应时间范围内提供满足需求的服务”。在实时计算中,外部环境可视为一组约束条件,通常是时间约束(也称为时间限制)。时间限制的存在是实时计算与非实时计算的本质区别。实时系统与非实时系统的差异在于,实时系统必须提供某种机制来确保时间限制不被打破。对于非实时系统,系统的正确性仅取决于指令的正确执行,表现为指令是否按逻辑顺序执行,而与指令的开