嵌入式软件
嵌入在硬件中的操作系统和开发工具软件
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。
定义
嵌入式软件与嵌入式系统是密不可分的,嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,是嵌入式系统的重要组成部分。
发展
第一阶段:早期的嵌入式系统设计方法,通常是采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现。然后,在此硬件平台之上,再进行软件设计。因而很难达到充分利用硬件软件资源,取得最佳性能的效果。同时,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程将重新进行,对成本和设计周期的影响很大。这种传统的设计方法只能改善硬件/软件各自的性能,在有限的设计空间不可能对系统做出较好的性能综合优化,在很大程度上依赖于设计者的经验和反复实验。
第二阶段:90年代以来随着电子系统功能的日益强大和微型化,系统设计所涉及的问题越来越多,难度也越来越大。同时硬件软件也不再是截然分开的两个概念,而是紧密结合、相互影响的。因而出现了软硬件协同(codesign)设计方法,即使用统一的方法和工具对软硬件,协同设计硬件体系结构,以最大限度地挖掘系统软硬件能力,避免由于独立设计软硬件体系结构而带来的种种弊病,得到高性能低代价的优化设计方案。
特征
嵌入式软件具有以下的特点:
独特的实用性
嵌入式软件是为嵌入式系统服务的,这就要求它与外部硬件和设备联系紧密。嵌入式系统以应用为中心,嵌入式软件是应用系统,根据应用需求定向开发,面向产业、面向市场,需要特定的行业经验。每种嵌入式软件都有自己独特的应用环境和实用价值。
灵活的适用性
嵌入式软件通常可以认为是一种模块化软件,它应该能非常方便灵活地运用到各种嵌入式系统中,而不能破坏或更改原有的系统特性和功能。嵌入式软件要使用灵活,应尽量优化配置,减小对系统的整体继承性,升级更换灵活方便。
程序代码精简
由于嵌入式系统本身的应用有小体积、小存储空间、低成本、低功耗等要求,嵌入式软件和大型机上的软件相比,具有代码精简、执行效率高等特点。
可靠性、稳定性高
嵌入式系统应用要求一般较为苛刻,特别是在涉及安全相关的领域,如汽车电子、工业控制、航空航天等,这些领域的嵌入式系统不仅要求硬件可靠,还对嵌入式软件提出了更高的要求。嵌入式软件需要运行可靠、稳定,具有错误处理及故障恢复等功能。
分类
按照通常的分类方法,嵌入式软件可以分为系统软件、应用软件和支撑软件三大类。
系统软件
系统软件控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统、嵌入式中间件等。
应用软件
应用软件是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互。应用软件是嵌入式系统功能的体现,如飞行控制软件、手机软件、MP3播放软件、电子地图软件等,一般面向特定的应用领域。
支撑软件
支撑软件是指辅助软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器源程序模拟器和配置管理工具等。
在嵌入式系统当中,系统软件和应用软件运行在目标平台上(即嵌入式设备上),而对于各种软件开发工具来说,它们大部分都运行在开发平台(PC机)上,运行Windows或 Linux操作系统。
开发
不同于通用计算机和工作站上的软件开发工程,一个嵌入式软件的开发过程具有很多特点和不确定性。其中最重要的一点是软件跟硬件的紧密耦合特性。由于嵌入式系统的灵活性和多样性,这样就给软件设计人员带来了极大地困难:第一,在软件设计过程中过多地考虑硬件,给开发和调试都带来了很多不便;第二,如果所有的软件工作都需要在硬件平台就绪之后进行,自然就延长了整个的系统开发周期。这些都是应该从方法上加以改进和避免的问题。为了解决这个问题,我们可以在特定的EDA工具环境下面进行开发,通过后再进行移植到硬件平台的工作。这样既可以保证程序逻辑设计的正确性,同时使得软件开发可平行甚至超前于硬件开发进程。
硬件系统
嵌入式系统的硬件必须根据具体的应用任务,以功耗,成本,体积, 可靠性,处理能力等为指标来选择。
业务收入
2022年1月至8月,中国嵌入式系统软件收入5328亿元。
参考资料
最新修订时间:2023-09-14 18:45
目录
概述
定义
发展
参考资料