版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 1第2章 嵌入式系统的设计方法2.1 嵌入式系统的层次结构2.2 嵌入式系统的设计流程2.3 嵌入式系统设计流程模型2.4 嵌入式系统的调试与测试练习题第2章 嵌入式系统的设计方法2 2第2章 嵌入式系统的设计方法2.1 嵌入式系统的层次结构嵌入式系统是以应用为中心,以计算机技术为基础,并且软/硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统。嵌入式系统的关键技术包括以应用为中心的硬件平台设计和面向应用的操作系统及软件产品的开发。3 3第2章 嵌入式系统的设计方法在各种不同的应用场合,嵌入式系统的外观和形式可以是独特的、多样化的,但是通过对其内
2、部结构进行分析可以知道,嵌入式系统一般是由嵌入式微处理器系统和被控对象所组成的,如图2-1所示。嵌入式微处理器系统是整个嵌入式系统的核心部分,其总体架构分为四层,即硬件层、中间层、软件层和功能层。被控对象可以接受来自嵌入式微处理器系统发出的控制命令,以执行规定的操作或任务。4 4第2章 嵌入式系统的设计方法图2-1 嵌入式系统的分层架构5 5第2章 嵌入式系统的设计方法2.1.1 硬件层嵌入式系统的硬件层是由嵌入式微处理器、外围电路和外设终端组成的。一个嵌入式核心控制模块就是在一片嵌入式微处理器的基础上增加电源电路、复位电路、调试接口及存储器电路所构成的。操作系统以及应用程序均可固化在ROM或
3、者Flash中。嵌入式硬件平台不同于通用的PC硬件平台,它没有一个固定的、标准的外形,可能是圆形、方形甚至是三角形的,而且大多体积很小。其外设接口被充分利用,没有用到的外设接口在设计硬件平台时被完全删除。 6 6第2章 嵌入式系统的设计方法例如,嵌入式智能控制器不需要图形用户界面和键盘,那么在设计时可去掉其LCD接口和键盘控制器。嵌入式系统硬件层的核心包括嵌入式微处理器和微存储器,用于提供嵌入式操作系统和功能软件的运行环境;外设终端通常都是微小终端,以和嵌入式系统整体体积相匹配。最初的嵌入式微处理器都是为通用目的而设计的,随着微电子技术的发展出现了ASIC(Application Specif
4、ic Integrated Circuit,专用集成电路),它是一种为具体任务而特殊设计的专用集成电路。 7 7第2章 嵌入式系统的设计方法采用ASIC可以减少系统软/硬件设计的复杂度,降低系统成本。一些嵌入式微处理器就是利用ASIC来实现的,但是ASIC前期设计费用很高,而且一旦完成设计就无法升级扩展,因此ASIC可使用在那些产量很大的产品设计中。随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高,集成电路工业已经生产了大量低成本、高可靠性和高精度的微电子结构模块,它推动了一个全新的技术领域和产业的发展。“CPU+PLD+模拟器件”的嵌入式硬件设计模式是目前流行的一种硬
5、件结构。这种结构是由目前集成电路的发展水平和技术现状决定的。 8 8第2章 嵌入式系统的设计方法嵌入式系统以中央处理单元(CPU)为基础和中心,外加可编程逻辑器件(PLD)和模拟器件构成(特别小型的嵌入式设计除外)。CPU主要包括嵌入式微处理器和嵌入式微控制器。各种PLD的出现改变了硬件设计方法,通过改写PLD,允许在不改变硬件结构的情况下实现不同的接口和功能,其主要包括PAL、GAL、EPLD、CPLD、FPGA等。这种设计模式可以大大地简化嵌入式系统的硬件,设计更具有灵活性和可扩展性,嵌入式系统总体设计的难度得以降低,而系统总体设计的水平却得到了提高。9 9第2章 嵌入式系统的设计方法2.
6、1.2 中间层中间层位于嵌入式系统的硬件层和软件层之间,它包含了系统中与硬件相关的大部分功能。通过特定的上层接口与操作系统进行交互,向操作系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作。嵌入式系统由于引入了这个中间层,屏蔽了底层硬件的多样性,操作系统不再直接面对具体的硬件环境,而是面向由这个中间层所代表的、逻辑上的硬件环境。 1010第2章 嵌入式系统的设计方法因此,通常把这个中间层叫做硬件抽象层(Hardware Abstraction Layer,HAL)。在目前的嵌入式领域中通常也把它叫做板级支持包(Board Support Package,BSP)。BSP把系统软件
7、和硬件部分隔离开来,这样就使得系统的设备驱动程序与硬件设备无关,一般应包含相关硬件的初始化、数据的输入/输出操作、硬件设备的配置操作等功能。它的引入大大推动了嵌入式实时操作系统的通用化,从而为嵌入式系统的广泛应用提供了可能。1111第2章 嵌入式系统的设计方法中间层的提出使通用的嵌入式操作系统及高层的嵌入式应用能够有效地运行于特定的、应用相关的硬件环境之上,使操作系统和应用程序能够控制与操作具体的硬件设备,完成特定的功能。因此,在绝大多数的嵌入式系统中,BSP是一个必不可少的层次。由于中间层在系统中的特殊位置,因此其具有以下主要特点:(1) 硬件相关性。因为嵌入式实时系统的硬件环境具有应用相关
8、性,所以作为高层软件与硬件之间的接口,BSP必须为操作系统提供操作和控制具体硬件的方法。1212第2章 嵌入式系统的设计方法(2) 操作系统相关性。不同的操作系统具有各自的软件层次结构,因此不同的操作系统具有特定的硬件接口形式。在实现上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件相关的软件模块;在功能上,BSP包含两部分,即系统初始化及与硬件相关的设备驱动。1313第2章 嵌入式系统的设计方法2.1.3 软件层嵌入式系统的软件层主要是操作系统。为了使嵌入式系统更加具有生命力,需要有专门负责管理存储器分配、中断处理、任务调度等功能的软件模块,这就是嵌入式操作系统。
9、嵌入式操作系统是嵌入式应用软件的基础和开发平台,实际为一段程序,系统复位后首先执行,相当于用户主程序,它是嵌入式系统中重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通信协议、图形用户界面(GUI)等。 1414第2章 嵌入式系统的设计方法嵌入式操作系统根据应用场合可以分为两大类:一类是面向消费电子产品的非实时系统(如WinCE、Linux等),这类设备包括PDA、移动电话等;另一类则是面向控制、通信、测试和医疗等领域的实时操作系统(如VxWorks、RT-Linux等)。操作系统的引入使得嵌入式系统的功能大大提高,方便了应用软件的设计,但同时也占用了嵌入式系统资源。
10、1515第2章 嵌入式系统的设计方法嵌入式操作系统具有以下特点:(1) 可配置性。这是嵌入式系统资源限制的结果。为了全面支持从低容量内存,甚至可能连内存管理单元都没有的低端系统到具有多处理机的高端系统,嵌入式操作系统采用模块化体系结构,即一个实时内核和一堆组件或库。这样根据系统的需求,就可以对嵌入式操作系统进行配置。1616第2章 嵌入式系统的设计方法(2) 易移植性。嵌入式操作系统要求适应各种CPU体系结构,管理多样化外设,容易移植是必需的。嵌入式操作系统的易移植性是通过采用板级支持包技术(BSP)或硬件抽象层技术(HAL)来完成的。板级支持包内含片级初始化和设备驱动程序,它使嵌入式操作系统
11、与嵌入式系统硬件平台相分离。当微处理器和外设不同时,它保护了开发者在应用程序上的开发投入。硬件抽象层也是类似的技术,它抽象一个硬件平台到一定程度,足以使操作系统内核被移植到该平台上。1717第2章 嵌入式系统的设计方法(3) 内核支持多任务,提供丰富的多线程通信机制。一般默认情况下采用基于任务优先级的任务可抢先调度法,确保总是最先执行具有最高优先级的已就绪的任务;在此基础上增加轮转调度法,使同等优先级的已就绪的任务公平占有CPU。1818第2章 嵌入式系统的设计方法2.1.4 功能层嵌入式系统的功能层是由基于操作系统开发的应用程序所组成的,以完成对被控对象的控制功能。为了方便用户的操作,往往需
12、要嵌入式系统具有友好的人机界面。针对特定应用领域,用来达到用户预期目标,这不仅要求准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低成本。对于复杂的系统,在设计初期需要进行系统的需求分析,确定系统功能,然后将这些功能映射到整个嵌入式系统的软/硬件设计过程中,以完成系统的功能实现。1919第2章 嵌入式系统的设计方法2.2 嵌入式系统的设计流程 日常生活中,我们在做一件事情的时候总是要按照一定的步骤(或者流程)一步一步地进行,直至最终完成,嵌入式系统的设计也是如此。一般来说,嵌入式系统的设计流程分为需求分析、规格说明、体系结构设计、软/硬件
13、构件设计和系统集成五个阶段,如图2-2所示。如果设计的流程是从需求分析开始,然后是规格说明,接着是体系结构设计、软/硬件构件设计,最后是系统集成,那么该设计流程就叫做自上而下的设计流程(图中实线部分);反之,就叫做自下而上的设计流程(图中虚线部分)。下面将按照自上而下的设计流程对嵌入式系统的设计过程进行讨论。2020第2章 嵌入式系统的设计方法图2-2 嵌入式系统的设计流程2121第2章 嵌入式系统的设计方法2.2.1 需求分析需求分析是自上而下的嵌入式系统设计的第一个阶段,该阶段的任务是确定用户的要求和目标,主要考虑的是“做什么”,而不是具体“怎么做”。1需求需求通常由用户提出,一般包括功能
14、和非功能两部分。设计者从用户的描述中可以直接获取系统基本功能的有关信息,但只有这些功能信息还不够,还必须得到用户提出的非功能信息,这些非功能信息包括性能、功耗、成本、系统尺寸和重量等。2222第2章 嵌入式系统的设计方法(1) 性能:一般就是指系统的处理速度,它是决定系统实用性与最终成本的主要因素。(2) 功耗:对于靠电池来供电的系统以及一些电器而言,电源是十分重要的一个部分。电源问题通常在需求阶段以电池续航时间的方式提出,因为用户通常不能以瓦为单位准确描述允许的功率。(3) 成本:对于消费者来说,产品的最终成本或者价格是一个敏感的问题,所以它是设计者必须考虑的一个因素。(4) 系统尺寸和重量
15、:产品的物理特性(包括尺寸和重量)会因使用领域的不同而不同,对于嵌入式设备而言,尺寸和重量往往受到严格的限制,因此,这也是值得设计者重视的一个问题。2323第2章 嵌入式系统的设计方法2确认需求确认这一系列的功能与非功能需求不仅仅需要理解什么是用户需要的,而且还需要理解用户是如何表达这些需求的,因此,确认需求与其说是个技术问题,倒不如说是个心理学问题。建模是精简、提炼系统需求的一种好方法,可以有效地精简用户界面。建立模型之后,就可以使用已经收集到的统计数据进行功能模拟,并在个人计算机或工作站上运行,以验证其正确性。需要注意的是,所建立的模型应该让用户了解系统是如何使用的,以及用户如何与其进行交
16、互。至于设备的非功能模型,其主要作用是让用户了解系统的特性,比如系统的尺寸和重量等。2424第2章 嵌入式系统的设计方法3需求分析表格对于设计者而言,分析一个较大规模系统的需求是一项复杂而又费时的工作,因此,若能获得相对少量的格式清晰而又简单的信息将有助于对系统的理解,需求分析表格就是一种简单的获取系统需求的方法,如表2-1所示。 2525第2章 嵌入式系统的设计方法2626第2章 嵌入式系统的设计方法4需求的内部一致性在需求分析的最后,还应该检查各个项目的内部一致性。例如是否忘记为某个功能指定输入/输出;是否考虑了系统运行的所有方式;是否把一些不切实际的要求放了进来。这些都是需要检查的内容。
17、2727第2章 嵌入式系统的设计方法2.2.2 规格说明规格说明是继需求分析之后的第二个阶段。如果说需求分析主要是给用户看的,那么规格说明主要是给设计者看的,规格说明的作用相当于用户和设计者之间的合同,用以促进设计开发方案的制定。因此,规格说明必须小心编写,以便精确反映用户的需求并且将其作为设计时必须遵循的要求。2828第2章 嵌入式系统的设计方法与需求分析相比,规格说明更加明确,它对需求分析中涉及的问题进行了进一步的细化,以便别人可以验证它是否符合系统要求并且完全满足用户的期望。规格说明也不能有歧义,应该使设计者在阅读了规格说明之后就能明白该完成什么工作,否则可能会碰到由于规格说明不明确而引
18、起的种种问题。例如,如果规格说明没有明确在某个特定的状态下有哪些特定行为,那么设计者就可能会实现错误的功能;还有,如果规格说明中某个全局特征是错误的或不完整的,那么按照规格说明设计的整个系统的体系结构可能会不符合用户的需求。2929第2章 嵌入式系统的设计方法此外,规格说明可能也是设计新手在设计时最不重视的阶段,但它实际上却可以使设计者花费最少的精力来创建一个正确的工作系统。对于有些设计者来说,可能在工作刚开始的时候并没有形成一个构造系统的清晰思路,因而,在工作过程的早期会使用不完整的假设结果,在后期实现问题的重新更正,然后重新开始,这样反而花费了更多的时间和精力。3030第2章 嵌入式系统的
19、设计方法2.2.3 体系结构设计需求分析和规格说明都只是明确了系统实现什么功能,并不关心系统如何实现,至于描述如何实现这些功能则是在体系结构设计阶段来完成的。体系结构是系统整体结构的一个计划,而后用于设计搭建整个体系结构的构件。体系结构设计可以从硬件和软件两个方面去考虑。硬件方面需要考虑的问题有CPU的类型、外围电路的选择、存储器的配置、输入/输出接口的设计。3131第2章 嵌入式系统的设计方法软件方面需要考虑的问题有操作系统的选择、驱动程序的设计、应用软件的编写。体系结构设计是通过对规格说明中的内容作进一步的分解,从而建立硬件和软件架构,并确立各个模块、各个子系统之间的关系,定义各子系统和各
20、功能模块之间的接口,规定设计约束,进而给出每个功能模块的功能描述。我们以一个MP3的设计为例,给出其硬件结构(如图2-3所示)和软件结构(如图2-4所示)。3232第2章 嵌入式系统的设计方法图2-3 MP3硬件结构 3333第2章 嵌入式系统的设计方法图2-4 MP3软件结构 3434第2章 嵌入式系统的设计方法2.2.4 软/硬件构件设计在完成了体系结构设计之后,设计者已经对产品有了一个整体的认识,对于系统的主要任务也会有所了解,接下来就应该进入软/硬件构件设计阶段。软/硬件构件设计时遵循的传统原则是硬件优先原则,即先设计硬件,给出系统的硬件平台,然后根据系统的硬件资源来设计软件模块。但是
21、,由于在硬件设计过程中缺乏对软件体系结构和实现机制的了解,这种模式往往需要反复试验和修改,从而导致设计周期延长,成本提高,难以适应现代日益复杂和大规模的嵌入式系统的设计。3535第2章 嵌入式系统的设计方法由于传统的硬件优先原则存在着种种缺点,难以满足当前嵌入式系统设计的需求,因此寻找一种合适的软/硬件构件设计模式已成为当务之急,软/硬件协同设计就是一种很好的解决办法。软/硬件协同设计依据系统目标的要求,综合分析软/硬件功能及资源,挖掘系统软/硬件之间的并发性,协同设计软/硬件体系结构。通过软/硬件划分、性能评估等方法,在系统的早期概念设计阶段实现系统原型的快速开发,然后对原型系统性能和成本估
22、计不断进行反馈和修正,最终以优化的系统结构代替人工分割的软/硬件子系统,降低了系统实现的性能代价成本,因此该设计技术已成为嵌入式领域的一个研究热点。3636第2章 嵌入式系统的设计方法总体而言,软/硬件协同设计过程可分为系统描述、软/硬件划分、调度和性能评估四个阶段。系统描述是用系统描述语言对所要设计的系统的功能和性能进行全面描述,并建立模型。软/硬件划分是要确定系统的哪些功能由硬件实现,哪些功能由软件实现。仍然以MP3为例,对于MP3解码部分,如果在硬件设计时选择了性能较高的通用处理器,其内部不包含MP3解码的固件,在系统的硬件架构中也没有使用专门的解码芯片,那么,在软件设计中,MP3的解码
23、部分必须由软件人员进行编写;反之,如果在硬件设计时选择的处理器内部包含了解码的固件,或者在系统的硬件架构中使用了专门的解码芯片,那么,在软件结构中就不需要编写解码部分的代码了。 3737第2章 嵌入式系统的设计方法调度是在软/硬件划分基础上,将系统的一个或多个进程/线程分配到不同处理器中并发执行,并实现进程/线程之间的交互和硬件资源的优化访问控制。性能评估采用验证或模拟方法测试评价系统实现,找到制约系统性能的瓶颈,进而及时修正调度阶段的偏差,实现系统的优化设计。3838第2章 嵌入式系统的设计方法2.2.5 系统集成软/硬件构件建立以后就要把它们集成在一起以得到一个可以运行的系统,这个阶段就是
24、系统集成阶段,当然,系统集成并不仅仅是简单地将所有的东西连接起来。在系统集成中通常可以发现一些构件设计时的错误,而合理的计划能帮助我们快速定位并解决问题。按阶段搭建系统并且在每个阶段结束后进行测试,就有助于定位这些错误。而如果每次只调试一部分模块,很可能更容易发现简单的错误。只有在设计的早期修正这些简单的错误,才能发现那些在系统高负荷运转时才能确定的比较复杂的错误。必须在体系结构和构件设计阶段尽可能容易地按阶段组装系统和相对独立地测试系统。3939第2章 嵌入式系统的设计方法系统集成时通常会发现问题,因此它有一定的难度。足够详细地观察系统以准确地定位错误通常很难,因为与桌面系统相比,面向嵌入式
25、系统的调试工具很少。因此,确定系统为何不能正确工作以及如何对此进行修复是一种挑战。在设计过程中小心地加入恰当的调试工具能简化系统集成中的问题。4040第2章 嵌入式系统的设计方法以上是对嵌入式系统自上而下的设计流程的五个阶段的介绍,一般来说,所有嵌入式系统设计方法都会不可避免地涉及到这五个阶段,但最重要的还是能找到一种好的设计方法,使设计人员对工作的进度有一个清楚的了解,从而确保不遗漏其中的任何工作。另外,一个好的设计方法还允许设计者开发计算机辅助设计工具,虽然目前还不可能开发出一个能够完成完整嵌入式系统设计流程的工具,但已经可以先将整个过程分成几个可控的步骤,通过辅助工具每次自动或半自动地完
26、成一个步骤。最后,一个好的设计方法还便于设计人员进行相互交流。4141第2章 嵌入式系统的设计方法2.3 嵌入式系统设计流程模型2.2节中,我们曾提到嵌入式系统的设计流程可以是自上而下的,也可以是自下而上的,但在实际设计过程中,这两种方法往往是交叉进行的,从而就会产生不同的设计流程。这些不同的设计流程就称为流程模型。常见的流程模型有瀑布模型、逐步求精模型和螺旋模型等。4242第2章 嵌入式系统的设计方法2.3.1 瀑布模型1模型概述瀑布模型(Water Modle)的整个设计过程是自上而下的,如同瀑布一般,故而得名,其流程如图2-5所示。4343第2章 嵌入式系统的设计方法图2-5 瀑布模型的
27、流程4444第2章 嵌入式系统的设计方法2模型优、缺点瀑布模型的优点是:开发流程简单清楚,可以明确每一个阶段的任务与目标,便于制定开发计划。瀑布模型的缺点是:缺乏灵活性,不能适应用户需求的改变;对开发初期要求比较高,特别是需求分析;返回上一级需要付出高昂的代价;随系统规模和复杂性的增加,产品成功开发的几率下降。4545第2章 嵌入式系统的设计方法3模型使用场合瀑布模型比较适合如下的场合:(1) 系统需求比较明确。比如,系统的功能、功耗、体积、重量都有明确的表达,同时,系统的需求在开发过程中不会发生太大的变化。(2) 对原有产品的简单升级。(3) 采用成熟技术开发不会出现较难解决困难的产品。46
28、46第2章 嵌入式系统的设计方法2.3.2 逐步求精模型1模型概述逐步求精模型(Successive Refinement Model)的特点是开发人员先根据用户的基本需求快速开发出一个原型系统,向用户展示系统的部分功能和性能,以征求用户的意见,然后进一步使需求精确化、完全化。同时,测试人员对这一原型系统进行测试、修改,评价其性能。开发者根据用户和测试人员的反馈意见修改原型系统,如此迭代,不断完善和丰富系统功能,直到最终完成。逐步求精模型的流程如图2-6所示。4747第2章 嵌入式系统的设计方法图2-6 逐步求精模型的流程4848第2章 嵌入式系统的设计方法2模型优、缺点逐步求精模型的优点如下
29、:(1) 便于开发者和用户之间的沟通,从而可以更好地满足用户的需求。(2) 与瀑布模型相比,更符合人们认识事物的过程和规律,更为实际。(3) 开发风险低,一般不会造成产品无法完成或者不符合要求的情况。4949第2章 嵌入式系统的设计方法逐步求精模型的缺点如下:(1) 需要消耗大量资源去建立原型系统,特别是在开发大型产品时。(2) 对原型系统性能的评估比较困难。(3) 因为采用了反复的迭代,所以产品的开发周期较长。5050第2章 嵌入式系统的设计方法3模型使用场合逐步求精模型适用于那些不能预先确定需求的系统的开发。当开发人员对构建系统的应用领域不是很熟悉时,逐步求精模型就比较适用。另外,它也适合
30、那些项目组成人员(包括分析人员、设计人员、程序员)不能很好沟通的情况。5151第2章 嵌入式系统的设计方法2.3.3 螺旋模型1模型概述螺旋模型(Spiral Model)是综合了瀑布模型和逐步求精模型的优点,并加入了两者所忽略的风险分析的一种开发模型。其开发流程沿螺旋顺时针方向,依次经历需求、设计、测试三个阶段。 5252第2章 嵌入式系统的设计方法螺旋模型需要建立系统的多个版本,初始的版本只是一个简单的实验模型,用于帮助设计者和用户建立起对系统的感性认识,随着设计的深入,会创建更加复杂的系统。在螺旋的第一圈可以确定系统的需求分析、详细设计、规格说明等;第二圈产生一个用于开发的原型系统;第三
31、圈产生系统的初始版本,即初始系统;第四圈产生比较完善的新版本,即改进系统;依此类推,经过不断的迭代,产生最终的版本,即最终系统。螺旋模型的基本框架如图2-7所示。5353第2章 嵌入式系统的设计方法图2-7 螺旋模型的基本框架5454第2章 嵌入式系统的设计方法2模型优、缺点螺旋模型的优点如下:(1) 原型系统可看做可执行形式的需求规格说明,易于开发人员和用户共同理解,还可作为继续开发的基础,并为用户参与决策提供方便。(2) 支持用户需求的动态变化,支持软件系统的可维护性,每次维护过程只是沿螺旋模型继续多走一两圈。(3) 为项目管理人员及时调整管理决策提供了方便,进而可以降低开发风险。5555
32、第2章 嵌入式系统的设计方法螺旋模型的缺点如下:(1) 如果每次迭代效率不高,导致迭代次数过多,将会造成开发时间的延长和成本的增加。(2) 对开发队伍的水平要求较高,需要有丰富的风险评估经验和专门的知识。5656第2章 嵌入式系统的设计方法3模型使用场合螺旋模型适用于需求不明确以及大型系统的开发,模型支持面向过程、面向对象等多种开发方法,是一种具有广阔前景的模型。5757第2章 嵌入式系统的设计方法2.3.4 其他模型1快速原型模型快速原型模型(Rapid Prototype Model)等价于产品的一个子集。瀑布模型的缺点是不够直观,而快速原型模型正好解决了这个问题。它可以在很短的时间内满足
33、用户最迫切的需要,完成一个可以演示的产品。这个产品具有实现部分最主要的功能。其最重要的目的就是为了确定用户的真正需求,在得到用户的需求之后,原型将被抛弃。5858第2章 嵌入式系统的设计方法2喷泉模型喷泉模型(Foundation Model)又称面向对象的生存期模型。它是近几年被提出来的软件生存周期模型。它是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型。与传统的结构化生存期相比,喷泉模型具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期,就像水喷上去又可以落下来,可以落在中间,也可以落在底部,故而得名。5959
34、第2章 嵌入式系统的设计方法3智能模型智能模型使用一组工具(如数据查询、数据处理、电子表格、代码生成、报表生成、屏幕定义以及高层图形功能等),每个工具都能使开发人员在该层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种方法需要第四代语言(4GL)的支持。4GL不同于第三代语言,其主要特征是具有非常好的用户界面,即使是没有经过训练的非专业的程序员,也能够使用它来编写程序。4GL是一种交互式、声明式和非过程性的语言,具有高效的程序代码、智能缺省假设、完备的数据库和应用程序生成器。目前,市场上流行的4GL都不同程度地拥有上述特征。4GL主要应用于信息系统的中、小型应用程序的
35、开发。6060第2章 嵌入式系统的设计方法4混合模型 混合模型(Hybrid Model)是一种把几种不同的开发模型混合在一起的模型,允许一个项目沿着最有效的方向发展。实际上,开发人员往往都是使用几种不同的开发方法组成混合的模型进行系统的开发。6161第2章 嵌入式系统的设计方法2.4 嵌入式系统的调试与测试明确了系统的体系架构和开发流程以后,接下来就要进行开发、调试与测试,包括选择适当的开发环境和开发工具,例如编译器、链接器、定位器,或者直接使用集成开发环境(IDE),随后将编译好的程序转为映像(Image),下载到目标平台上,与开发平台连接后进行调试和测试。以下将介绍嵌入式系统的开发辅助工
36、具以及调试与测试时用到的一些方法。6262第2章 嵌入式系统的设计方法2.4.1 嵌入式系统开发的辅助工具1编译器编译器(Compiler)是将一种语言翻译成另一种语言的计算机程序。它将源程序作为输入,产生目标语言。通常,源程序采用高级语言编写,如C/C+,或者是汇编语言。而目标语言则是目标机器的目标代码(Object Code),有时也称为机器代码(Machine Code)。使用编译器可以使我们不必直接编写麻烦的机器代码,而直接使用便于理解的高级语言或插入了助记符的汇编语言,提高了编程的效率。常见的编译器有Visual C+、Borland C+以及Linux下的GCC等。6363第2章
37、嵌入式系统的设计方法2链接器编译完程序后会产生目标代码,但要执行程序还需要对目标代码进行链接,这就要用到链接器。链接器将所有的目标代码文件.o或者.obj以及lib中的数据段区,包括text、data、bss区段的数据进行合并,并且将尚未决定的函数和变量调用对应起来。在嵌入式系统中,要链接出一个可以放到ROM中执行的程序,开发人员还必须对启动代码进行链接,并且制定链接关系地址。6464第2章 嵌入式系统的设计方法3定位器一般的桌面计算机程序的开发都是以链接作为结束的,这样就可以产生可执行的程序,但嵌入式系统开发中,链接不是最终的动作,还需要一个重定位器,经过重定位后,产生映像文件(Image
38、File),下载到ROM中,才可执行。定位器本身不知道硬件和映像文件之间的对应关系,所以必须要制定一个地址对应关系表。这里所有地址都会有一个相对参考地址,依据data、code、const排列方式放置。这部分的数据必须依据每个硬件的不同来做不同的修改,一般厂商都会附上一个范例作为参考,开发人员可以依此来进行修改。另外,定位器通常还会产生一个定位信息的表格,告诉开发人员每个函数的地址,有时候就可以利用该表格进行除错。6565第2章 嵌入式系统的设计方法4集成开发环境集成开发环境(Intergrated Development Enviroment,IDE)是用于程序开发的应用程序,一般包括代码编
39、辑器、编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其他程序并用。最典型的例子就是Visual C+,许多的开发环境都将其作为模板,并得到了广泛的应用。集成开发环境的好处就是可以方便地管理各种工程项目和函数库,特别是当整个系统越来越大的时候,可以省去很多管理和设置上的麻烦,减轻了开发人员的负担。实际上,软件开发环境正是朝着IDE的方向发展。6666第2章 嵌入式系统的设计方法2.4.2 嵌入式系统的调试嵌入式系统通常是一个资源受限的系统,直接在嵌入式系统的目标硬件平台上编写软件是很困难甚至是不可能的,因此,在嵌入式系统的开发中往往用到一个交叉开发环境(Cross Develop
40、ment Environment)。所谓交叉开发,就是在通用计算机(比如PC)上编辑、编译程序,生成可以在目标平台上运行的二进制代码指令,然后再下载到目标平台上进行调试的开发方式。通用计算机一般称为宿主机,目标平台称为目标机。交叉开发环境一般由运行于宿主机上的交叉开发软件和系统仿真器组成。交叉开发软件一般为一个集成开发环境。6767第2章 嵌入式系统的设计方法嵌入式系统的调试是开发过程中的重要环节。调试器是运行于宿主机上的应用程序,被调试程序是运行在目标机上的应用程序,两个程序间需要实时通信。嵌入式系统调试时,宿主机上运行的调试器通过仿真器与目标机相连。仿真器处理宿主机与目标机之间的通信,这个
41、通信口可以是串口、并口、网口及USB口(目前采用USB口较多),仿真器通过JTAG口或其他接口与目标机相连,如图2-8所示。嵌入式系统开发过程的调试方式有很多种,以下列举几种常用的调试方式。6868第2章 嵌入式系统的设计方法图2-8 嵌入式系统交叉开发环境6969第2章 嵌入式系统的设计方法1在线仿真器在线仿真器(In-Circuit Emulator,ICE)是一种模拟CPU的设备,能执行CPU的全部动作。采用该方式调试时,利用仿真头代替目标板上的CPU,可以完全仿真CPU的行为,并且提供了丰富的调试功能,但缺点是结构复杂、价格昂贵,通常用于硬件开发中。7070第2章 嵌入式系统的设计方法
42、2在线调试器在线调试器(In-Circuit Debug,ICD)是将CPU的除错(调试)功能的引脚引出来,让外部的硬件直接连接到这些引脚上去监控整个CPU的动作,这样开发人员就可以很容易地利用比较便宜的除错(调试)工具和CPU的除错(调试)模块进行沟通,一般这些CPU上的除错模块都提供读出写入内存、读出写入CPU寄存器、单步执行、中断以及触发等功能设置。目前,比较流行的是ARM公司开发板上使用的JTAG(Joint Test Action Group)调试端口。简单地说,ICD调试方式就是在硬件的早期设计时将芯片的除错(调试)引脚先拉出来,等到整个系统设计发展完善后再去掉不接。ICD调试方式
43、比ICE便宜得多,因此现在越来越多的开发人员开始采用这种方式。7171第2章 嵌入式系统的设计方法3软件模拟器软件模拟器是一种利用宿主机的软件模拟目标机的环境来执行目标机源程序的模拟调试方法,这样的好处是在目标硬件环境还没有建立的时候就可以使用模拟环境来调试程序。但值得注意的是,模拟器毕竟是以一种处理器来模拟另一种处理器,因此,在指令执行时间、中断响应、定时器等方面很可能与实际处理器有很大的差别,它无法与ICE方式一样仿真系统的实际执行情况。7272第2章 嵌入式系统的设计方法4ROM监控器ROM监控器是一段运行在目标机ROM上的可执行程序,宿主机端调试软件可以通过串口、并口、网口与之交互。使
44、用这种调试方式时,被调试程序首先通过ROM监控器下载到目标机中,然后在ROM监控器的监控下完成调试。目前使用的绝大多数ROM监控器能够完成设置断点、单步执行、查看寄存器、修改内存空间等调试功能。7373第2章 嵌入式系统的设计方法2.4.3 嵌入式系统的测试 1嵌入式系统测试的重要性嵌入式系统由软件和硬件两部分组成,对这两部分都应该进行测试。一方面,硬件是嵌入式系统的基础,其好坏直接关系到系统能否开发成功。如果没有选择到最合适的硬件,甚至所选择的硬件本身就存在着质量问题,那么,最终组成的系统自然是无法正常工作的。因此,在系统开发的各个阶段要对硬件进行测试,及时发现问题,排除故障,确保硬件满足系统设计的要求。7474第2章 嵌入式系统的设计方法另一方面,软件也是嵌入式系统中的重要组成部分。随着计算机硬件技术的进步和元件质量的逐步提高,嵌入式系统设备的硬件性能也得到了相应的提高。同时,通过采用成熟的操作系统,使系统运行在一个高性能、可靠的软件平台之上,以便为实现各种大型的复杂应用打下良好的基础。面对系统复杂性的增加,自然需要功能更加强大、性能更加稳定的软件与之相匹配,随之开发的软件代码量也越来越大。 7575第2章 嵌
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智能农业农药化肥供应及服务合同3篇
- 2025年度年度城市经济适用房购置合同3篇
- 2025年度股东借款及股权激励计划合同3篇
- 2025年农村个人承包土地经营权与农村信息化建设合同3篇
- 二零二五年度农业机械租赁与农业人才培养合作合同3篇
- 二零二五年度医疗耗材研发与创新合作合同3篇
- 二零二五年度合伙经营中式快餐店合同书2篇
- 个人承包城市照明设施维护2025年度合同3篇
- 2025年度绿色生态猪肉直供基地合作协议合同3篇
- 公墓墓位买卖及墓园墓碑售后服务保障协议3篇
- 【个人简历】大学生职业生涯规划书10篇
- 患者满意度调查分析
- YS/T 1149.2-2016锌精矿焙砂化学分析方法第2部分:酸溶锌量的测定Na2EDTA滴定法
- GB/T 11017.1-2002额定电压110kV交联聚乙烯绝缘电力电缆及其附件第1部分:试验方法和要求
- 原料药FDA现场GMP符合性要求与检查实践课件
- 科技创新社团活动教案课程
- 氨碱法纯碱生产工艺概述
- 基础化工行业深度:电解液新型锂盐材料之双氟磺酰亚胺锂(LiFSI)市场潜力可观新型锂盐LiFSI国产化进程加速
- 年产10000吨一次性自然降解环保纸浆模塑餐具自动化生产线技改项目环境影响报告表
- 实战销售培训讲座(共98页).ppt
- 测控电路第7章信号细分与辨向电路
评论
0/150
提交评论