1、第二章 嵌入式系统开发过程2.1设计2.2流程2.3硬件选择2.4软件流程2.5调试2.6BSP嵌入式系统的架构应用程序内存处 理 器操作系统驱动程序flash 外 设GUI硬件系统软件应用软件C库在不同的应用场合,嵌入式系统呈现出的外观和形式各不相同。但通过对其内部结构进行分析,可以发现,一个嵌入式系统一般都由嵌入式微处理器系统和被控对象组成,如下图所示。其中嵌入式微处理器系统是整个系统的核心,由硬件层、中间层、软件层和功能层组成。被控对象可以是各种传感器、电机等,可以接受嵌入式微处理器系统发出的控制命令,执行所规定的操作或任务。 硬件层由嵌入式微处理器、外围电路和外设组成。在一片嵌入式微处
2、理器基础上增加电源电路、复位电路、调试接口和存储器电路,就构成一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在 ROM或者 Flash中。为方便使用,有的模块在此基础上增加了 LCD、键盘、 USB接口,以及其他一些功能的扩展电路。嵌入式系统的硬件层是以嵌入式处理器为核心的,最初的嵌入式处理器都是为通用目的而设计的。后来随着微电子技术的发展出现了 ASIC( Application specific integrated circuit,专用的集成电路), ASIC是一种为具体任务而特殊设计的专用集成电路。由于 ASIC在设计过程中进行了专门优化,其性能、性价比都非常高。采用 ASI
3、C可以减少系统软硬件设计的复杂度,降低系统成本。有的嵌入式微处理器利用 ASIC来实现,但 ASIC的前期设计费用非常高,而且 ASIC一旦设计完成,就无法升级和扩展,一般只有在一些产量非常大的产品设计中才考虑使用 ASIC。近年来,各种 PLD( Programmable Logic Device,可编程逻辑器件)的出现,改变了硬件设计方法,出现了 “可重构计算 ”的概念。通过改写 PLD,允许在不改变硬件结构的情况下,实现不同的接口和功能。 20世纪 80年代中期以后出现了FPGA( Field-programmable gate array,现场可编程门阵列)器件,这是是一种大规模可编程
4、逻辑器件,具有保密性好、体积小、重量轻、可靠性高等一系列ASIC的优点。 FPGA的出现使得一个电子系统可以仅仅由三种标准模块构成,即微处理器、存储器和可编程逻辑器件。前两种模块都已标准化,系统中大量的控制逻辑由 FPGA实现。这使得硬件的设计更具有灵活性和扩展性,并降低了后续产品开发的成本。 硬件层与软件层之间为中间层,也称为 BSP( Board Support Package,板级支持包),将系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据的输入 /输出操作和硬件设备的配置等功能。 BSP是主板硬件环境和操作系统的中间接口,是软件平台中具
5、有硬件依赖性的那一部分,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板上。纯粹的 BSP所包含的内容一般说来是与系统有关的驱动程序,如网络驱动程序和系统中的网络协议有关,串口驱动程序和系统的下载调试有关,等等。离开这些驱动程序系统就不能正常工作。软件层主要是操作系统,有的还包括文件系统、图形用户接口和网络系统等。操作系统是嵌入式应用软件的基础和开发平台,实际上是一段程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在操作系统之上。操作系统是一个标准的内核,将中断、 I/O、定时器等资源都封装起来,以方便用户使用。操作系统的引入大大提高了嵌入式系统的功能,方便了应用
6、软件的设计,但同时也占用了宝贵的嵌入式系统资源。一般在大型的或需要多任务的应用场合才考虑使用嵌入式操作系统。功能层由基于操作系统开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控对象和用户的,为了方便用户操作,往往需要具有友好的人机界面。对于一些复杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统的功能,然后将系统的功能映射到整个系统的硬件、软件和执行装置的设计过程中,这个过程称为系统的功能实现。 2.1嵌入式系统设计1需求分析阶段在需求分析阶段需要分析系统的需求,系统的需求一般分功能需求和非功能需求两方面。根据系统的需求,确定设计任务和设计目标,并提炼出设计规格
7、说明书,作为正式指导设计和验收的标准。 2体系结构设计需求分析完成后,根据提炼出的设计规格说明书,进行体系结构的设计。系统的体系结构描述了系统如何实现所述的功能和非功能需求,包括对硬件、软件的功能划分,以及系统的软件、硬件和操作系统的选型等。3硬件 /软件设计基于体系结构,对系统的软、硬件进行详细设计。对于一个完整的嵌入式应用系统的开发,应用系统的程序设计是嵌入式系统设计一个非常重要的方面,程序的质量直接影响整个系统功能的实现,好的程序设计可以克服系统硬件设计的不足,提高应用系统的性能,反之,会使整个应用系统无法正常工作。4系统集成把系统中的软件、硬件集成在一起,进行调试,发现并改进单元设计过
8、程中的错误。5代码固化嵌入式软件开发完成以后,大多数要在目标环境的非易失性存储器中运行,程序写入到 Flash中固化,保证每次运行后下一次运行无误,所以嵌入式软件开发与普通软件开发相比,增加了固化阶段。 2.2嵌入式系统开发流程选择嵌入式操作系统软件平台选择嵌入式处理器硬件平台开发嵌入式应用软件系统测试(固化代码)开发结束测试通过YN硬件平台和软件平台选择 处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件 处理器最重要,操作系统和编程语言非常关键 处理器的选择会限制操作系统的选择,操作系统的选择会限制开发工具的选择。2.3硬件平台选择 处理器的选择 嵌入式系统的核心部件是各种类型的嵌入式处理器 ARM是近年来在嵌入式系统有影响力的微处理器架构, ARM的设计非常适用于小的供电系统。 ARM微处理器 有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对 ARM芯片做一些对比研究是十分必要的。 ARM微处理器的应用选型 以下从应用的角度出发,对在选择 ARM微处理器时所应考虑的主要问题做一些简要的探讨。