嵌入式系统开发是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等,一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用 户的应用程序等四个部分组成。下面我们就为大家介绍一下关于嵌入式应用系统的具体设计。
1嵌入式应用系统设计一般原则
嵌入式系统所涉及的应用领域和实现技术非常广泛,但它们又与几十年来计算机技术的发展-.脉相承。嵌入式系统一般由嵌入式处理器、外围硬件设备、嵌入式操作系统以及用户应用程序等四个部分组成,用于实现数据的采集和对其他设备的监视、控制和管理等功能。嵌入式系统一般来说都是专用系统,一旦被开发出来,其用途就被唯一确定下来了。此外,嵌入式系统的软、硬件是高度定制的,定制的目的是提供可以满足需求的最低软、硬件配置,从而节省成本。
当设计开发人员接到一个嵌入式系统开发任务时,一般要依次进行以下工作。
1.1系统需求分析
系统需求需要对所开发的系统要解决的问题进行详细的分析,弄清楚问题的定义,明白所要开发的嵌入式系统到底是用来"做什么"的。需求分析至关重要,它具有决策性和方向性,一-旦需求分析产生了大的偏差,会对后续阶段产生非常不利的影响。
1.2系统设计
通过系统需求分析搞清楚所要开发的嵌入式系统是用来"做什么"之后,接下来的任务就是"怎么做".系统设计阶段是一个把需求转换为表示的过程,形成设计文档。文档包括嵌入式系统的硬件设计文档和软件设计文档。
硬件设计主要包括嵌入式处理器的选择、外围设备需求情况、存储器、开发调试工具和易用性等方面。
软件设计主要包括操作系统选型、操作系统性能指标评估、操作系统组件、设备驱动程序、调试工具、开发工具、许可证应用软件开发技术选型等。
1.3 硬件开发、软件开发设计
文档齐备后,接下来就是嵌入式系统的开发,开发同样包括硬件和软件两部分。
硬件开发主要包括CPU核心板开发。系统板开发,需要考虑的包括存储系统开发、系统接口开发等。
软件开发与传统桌面应用的开发有所不同,嵌入式系统的软件开发往往采用"宿主/目标机"方式,首先需要构建交叉编译环境,然后在宿主机上开发和仿真调试目标机上的软件;接着通过串口。USB口或网线将目标代码下载到目标机上,目标代码在目标机上直接运行,或者是在宿主机上通过交叉调试软件对目标机上的目标代码进行监控运行以进行分析和调试。
1.4软硬件集成测试
将开发的硬件系统软件系统、数据源、用户操作等综合起来,对产品进行全面测试。
1.5 发布与维护
将产品发布给市场或客户,及时获取反馈,以进行嵌入式产品的改进和升级。
嵌入式系统的开发要比普通的桌面应用软件开发复杂,所使用的的技术也更为繁杂,一般一个嵌入式系统不会由一个人单独完成,在公司也常常不是由一个部门单独完成,这就形成了嵌入式系统开发中的不同角色。所以,嵌入式系统的开发人员一般需要明白自己的角色,完成开发中一个环节或一个特定专业领域的任务即可。
2.嵌入式应用系统硬件设
计嵌入式系统硬件设计包含CPU的核心板设计、存储器系统设计和接口开发,在设计过程中通常需要考虑以下因素。
2.1成本
嵌入式产品往往对成本特别敏感,在做硬件选型时常常不是追求最好的性能指标,而是够用就行。
2.2芯片的通用性
无论是处理器、存储器还是各种接口芯片,在成本允许的情况下都尽量选择通用性强、货源充足、技术资料丰富的芯片。
2.3处理器芯片
对操作系统的支持情况处理器应支持所需操作系统的运行,最好有已移植好的对应操作系统版本。
2.4尽可能选用典型接口芯片和典型外围电路
一方面有利于开发成本的降低,另一方面有利于标准化和模块化。在成本和性能指标允许的情况下,尽量使用SoC芯片,以减少芯片数量和外围电路的复杂性,这也有利于提高系统的硬件稳定性和减小系统的硬件体积。
3.嵌入式应用系统软件设计
嵌入式系统的一大特点就是软件开发的特殊性和困难性,一方面它往往需要专用的开发和调试工具,另一方面需要多种软件技术的组合。嵌入式系统软件设计主要包括操作系统选型、移植、驱动开发和应用程序开发。
3.1 操作系统
随着嵌入式系统越来越复杂,操作系统变得越来越重要,操作系统向下管理硬件,向上支撑应用软件。在选择操作系统时一般要考虑以下因素:实时性。可移植性、可利用资源、系统订制能力、实时性、成本和中文支持等。
3.2驱动程序。
是否有能力进行基于操作系统的驱动程序开发或修改能力,或者是否已有现成的驱动程序。
3.3 应用程序
嵌入式应用程序运行在操作系统和驱动程序之上,主要关注的是业务逻辑部分,无论是开发难度还是学习难度相对来说都较低,但嵌入式应用软件开发无论是开发环境、开发过程还是最后的部署都与桌面软件有所不同。
首先,嵌入式软件开发常常是基于"宿主/目标机"模式进行开发,所以需要构建交叉编译环境,不同的操作系统的交叉编译环境构建方式不--样。例如,基于嵌入式Linux的应用软件开发,一--般需要在Windows.上运行Linux虛拟机,虚拟机里安装交叉编译软件,目标机上需要安装BootLoader 、Linux内核、文件系统等。
其次,嵌入式软件是在宿主机上开发,然后通过交叉编译工具下载到目标机上调试和运行,这个过程需要USB线、网线。仿真器等设备的支持。
最后,开发好的程序需要部署到目标机上。一般嵌入式系统上没有硬盘,取而代之的是ROM或Flash,可能需要用到专用的烧写工具。