嵌入式软件设计(第2版)
上QQ阅读APP看书,第一时间看更新

1.1.2 嵌入式系统的特点

嵌入式系统是一种针对特定任务、特殊环境而进行特殊设计的定制产品,与传统的计算机系统相比,主要有以下特征。

1. 面向应用,专用性强

无论是软硬件的设计,还是系统规模、开发过程等都与应用领域密切相关。嵌入式系统的设计、软件的开发、操作系统的裁剪都以满足特定的应用要求为目标,针对特定的应用量体裁衣、去除冗余,进行高效设计,力争在同样的硅片面积上达到更高的性能。

2. 资源约束

有限的CPU、内存、电源、显示窗口、按钮或键盘等对嵌入式系统的设计提出了更苛刻的要求。

3. 不可垄断的高度多样化的计算机处理系统

从某种意义上来说,通用计算机行业的技术是垄断的。而嵌入式系统领域充满了竞争、机遇与创新,没有哪个系列的处理器和操作系统能够垄断整个市场。虽然在体系结构方面存在着主流,但不同的应用领域决定了不可能由少数公司、少数产品垄断整个嵌入式系统市场。

4. 操作系统内核小,资源少

由于嵌入式系统主要应用在一些对成本、资源、占用空间有严格要求的环境下,因此系统资源以在满足实际应用的前提下尽可能少为目标。故嵌入式操作系统内核要比传统操作系统小得多,如FreeRTOS的内核只有10KB,Windows内核是无法与之相比的。

5. 系统稳定持久

由于嵌入式系统更追求稳定性、可靠性,因此与通用计算机系统不同,嵌入式系统很少发生突然性的跳跃,嵌入式系统中的软件也更强调可继承性和技术衔接性,发展比较稳定。嵌入式处理器的发展也具有稳定性,一个体系一般要存在8~10年的时间。一个体系结构及其相关的片上外设、开发工具、库函数、嵌入式应用产品是一套复杂的知识系统,因此用户和半导体厂商都不会轻易地放弃一种处理器。

6. 软硬件结合紧密

在嵌入式系统中,软硬件的结合尤为紧密,通常要针对不同的硬件平台进行系统的移植。即使同一品牌、同一系列的产品,也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译、下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。在编写应用软件的过程中,要考虑到硬件资源的管理与使用。这一点尤为重要,它决定了软件的质量与效率。

7. 需要专门的环境和开发工具

嵌入式系统的开发与传统PC上的开发存在较大的差别。嵌入式系统本身不具备自主开发功能,系统设计开发完成后,用户通常是不能对其中的程序功能进行修改的。开发过程主要包括由通用计算机上的软硬件设备模拟开发、通过调试工具仿真调试,最终在目标设备上运行三个阶段。用于程序开发的通用计算机称为宿主机,最终执行程序的目标设备称为目标机。

8. 软件要求固态化存储

为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机上,而不是存储于磁盘等载体中。

9. 实时性要求较高

多数嵌入式系统的应用对响应时间都有明确限制,否则极可能产生灾难性的损失或引起系统的崩溃。如激光制导武器中的目标锁定系统,延迟0.001s就有可能失去一次进攻的机会,甚至有可能被对方摧毁。