1、 嵌入式系统简介嵌入式系统简介 嵌入式系统的组成嵌入式系统的组成 嵌入式系统开发流程嵌入式系统开发流程1PPT课件 广义上讲,凡是带有广义上讲,凡是带有微处理器微处理器的的专用软硬专用软硬件系统件系统都可称为嵌入式系统。如各类都可称为嵌入式系统。如各类单片单片机和机和DSPDSP系统系统。这些系统在完成较为单一的。这些系统在完成较为单一的专业功能时具有简洁高效的特点。但由于专业功能时具有简洁高效的特点。但由于他们没有操作系统,管理系统硬件和软件他们没有操作系统,管理系统硬件和软件的能力有限,在实现复杂多任务功能时,的能力有限,在实现复杂多任务功能时,往往困难重重,甚至无法实现往往困难重重,甚至
2、无法实现 从狭义上讲,那些使用从狭义上讲,那些使用嵌入式微处理器嵌入式微处理器构构成独立系统,具有自己成独立系统,具有自己操作系统操作系统,具有特,具有特定功能,用于特定场合的专用软硬件系统定功能,用于特定场合的专用软硬件系统称为嵌入式系统。称为嵌入式系统。2PPT课件 1. 1.系统内核小:系统内核小: 由于嵌入式系统一般是应用于小型电子由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。之传统的操作系统要小得多。3PPT课件2.2.专用性强:专用性强: 嵌入式系统的个性化很强,其中的软件嵌入式系统的个性化很强,
3、其中的软件系统和硬件的结合非常紧密,一般要针对系统和硬件的结合非常紧密,一般要针对硬件进行硬件进行系统的移植系统的移植。 即使在同一品牌、同一系列的产品中也即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行需要根据系统硬件的变化和增减不断进行修改修改。 同时针对不同的任务,往往需要对系统同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的相结合,这种修改和通用软件的“升级升级”是完全不同的概念。是完全不同的概念。4PPT课件3.系统精简:系统精简: 嵌入式系统一般没有嵌入式系统一般没有系统软件
4、系统软件和和应应用软件用软件的明显区分,不要求其功能设的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系于控制系统成本,同时也利于实现系统安全。统安全。5PPT课件4.高实时性高实时性OS: 这是嵌入式软件的基本要求,而且这是嵌入式软件的基本要求,而且软件要求软件要求固态存储固态存储,以提高速度。软,以提高速度。软件代码要求高质量和高可靠性、实时件代码要求高质量和高可靠性、实时性。性。6PPT课件5.嵌入式软件开发走向标准化:嵌入式软件开发走向标准化: 嵌入式系统的应用程序可以没有操作系嵌入式系统的应用程序可以没有操作系统
5、统直接在芯片上运行直接在芯片上运行。 为了合理地调度多任务、利用系统资源、为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必系统函数以及和专家库函数接口,用户必须自行选配须自行选配RTOSRTOS(RealRealTime Operating Time Operating SystemSystem)开发平台,这样才能保证程序执)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,行的实时性、可靠性,并减少开发时间,保障软件质量。保障软件质量。7PPT课件6.嵌入式系统需要开发工具和环境:嵌入式系统需要开发工具和环境: 由于其本身不具备自主开发能力,即使由于其本
6、身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套的程序功能进行修改,必须有一套开发工开发工具具和和环境环境才能进行开发。才能进行开发。 这些工具和环境一般是基于通用计算机这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有合信号示波器等。开发时往往有主机主机和和目目标机标机的概念,主机用于程序的开发,目标的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结机作为最后的执行机,开发时需要交替结合进行。合进行。8PPT课件
7、9PPT课件 嵌入式系统由嵌入式系统由嵌入式硬件嵌入式硬件与与嵌入式软件嵌入式软件组成。组成。 嵌入式硬件嵌入式硬件以芯片、模板、组件、控制以芯片、模板、组件、控制器形式埋藏于设备内部。器形式埋藏于设备内部。 嵌入式软件嵌入式软件是实时多任务操作系统和各是实时多任务操作系统和各种专用软件,一般固化在种专用软件,一般固化在ROMROM或闪存或闪存中。中。 嵌入式系统嵌入式系统软硬兼施,融为一体,成为软硬兼施,融为一体,成为产品,但在开发过程中需要一些开发工产品,但在开发过程中需要一些开发工具进行辅助开发。具进行辅助开发。 10PPT课件嵌入式嵌入式微处理器微处理器SDRAMSDRAMROMROM
8、I/OI/OA/DA/DD/AD/A人机交互接口人机交互接口通用接口通用接口实时操作系统(实时操作系统(RTOS)RTOS)图形用户图形用户接口接口BSP/HAL 硬件抽象层/板极支持包BSP/HAL 硬件抽象层/板极支持包任务管理任务管理文件系统文件系统应用程序应用程序嵌入式计算机系统嵌入式计算机系统硬件层硬件层软件层软件层中间层中间层功能层功能层11PPT课件 对对实时多任务实时多任务有很强的支持能力,能完成多有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低部的代码和实时内核的执行时间减少到最低限度
9、限度。 具有功能很强的具有功能很强的存储区保护存储区保护功能。这是由于功能。这是由于嵌入式系统的软件结构已模块化,而为了避嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利要设计强大的存储区保护功能,同时也有利于软件诊断。于软件诊断。12PPT课件 可扩展的可扩展的处理器结构,能迅速地开发出满足处理器结构,能迅速地开发出满足应用需求的产品。应用需求的产品。 嵌入式微处理器必须嵌入式微处理器必须功耗很低功耗很低,尤其是用于,尤其是用于便携式的无线及移动的计算和通信设备中靠便携式的无线及移动的计算
10、和通信设备中靠电池供电的嵌入式系统更是如此,如需要功电池供电的嵌入式系统更是如此,如需要功耗只有耗只有mWmW甚至甚至WW级。级。13PPT课件14PPT课件 嵌入式系统硬件核心是嵌入式处理器。嵌入式系统硬件核心是嵌入式处理器。 嵌入式处理器可以分为四类:嵌入式处理器可以分为四类: 嵌入式微处理器嵌入式微处理器EMPUEMPU (Embedded Microprocessor UnitEmbedded Microprocessor Unit) 嵌入式微控制器嵌入式微控制器EMCUEMCU (Embedded Microcontroller UnitEmbedded Microcontrolle
11、r Unit) 嵌入式数字信号处理器嵌入式数字信号处理器EDSPEDSP (Embedded Digital Signal ProcessorEmbedded Digital Signal Processor) 嵌入式片上系统嵌入式片上系统ESoCESoC (Embedded System on ChipEmbedded System on Chip) 15PPT课件 嵌入式微处理器嵌入式微处理器就是和通用计算机的微处理器对就是和通用计算机的微处理器对应的应的CPU。在应用中,一般是将微处理器装配在在应用中,一般是将微处理器装配在专门设计的电路板上,在母板上只保留和嵌入式专门设计的电路板上,在
12、母板上只保留和嵌入式相关的功能即可,这样可以满足嵌入式系统体积相关的功能即可,这样可以满足嵌入式系统体积小和功耗低的要求。小和功耗低的要求。 嵌入式微处理器制造商:嵌入式微处理器制造商:摩托罗拉、英特尔、摩托罗拉、英特尔、IBM、日立、日立、NEC、东芝、东芝、AMD、国家半导体、国家半导体、Zilog、IDT、富士通、富士通、Atmel、太阳、微系统、夏太阳、微系统、夏普、普、Oki、飞利浦等。飞利浦等。 主要的嵌入式微处理器包括:主要的嵌入式微处理器包括:Motorola PowerPC、Intel Pentium、Motorola 68000、strong ARM、MIPS、AMD X8
13、6系列等等。系列等等。 16PPT课件 嵌入式微控制器嵌入式微控制器又称为又称为单片机单片机,它将,它将CPUCPU、存存储器(少量的储器(少量的RAMRAM、ROMROM或两者都有)和其它外或两者都有)和其它外设设接口接口封装在同一片集成电路里。封装在同一片集成电路里。 嵌入式嵌入式微控制器制造商微控制器制造商:摩托罗拉摩托罗拉、英特尔英特尔、英飞凌科技英飞凌科技、 AtmelAtmel、日立日立、NECNEC、三菱三菱、东东芝芝、松下松下、MicrochipMicrochip、富士富士、飞利浦飞利浦、德州德州仪器仪器、三星三星、三洋三洋、索尼索尼、OkiOki、凌阳科技凌阳科技等。等。 主
14、要的嵌入式微控制器包括:主要的嵌入式微控制器包括:MCS-51MCS-51、MCS-MCS-251251、MCS-96/196/296MCS-96/196/296、P51XAP51XA、C166/167C166/167、68K68K、Z8Z8、C540C540、PICPIC、AVRAVR等系列。等系列。 17PPT课件 嵌入式嵌入式DSPDSP专门用来对离散时间信号进行专门用来对离散时间信号进行极快的处理计算,提高编译效率和执行极快的处理计算,提高编译效率和执行速度。在数字滤波、速度。在数字滤波、FFTFFT、谱分析、图像谱分析、图像处理等领域处理等领域应用广泛应用广泛。 DSPDSP正在大量
15、进入嵌入式市场,目前广泛正在大量进入嵌入式市场,目前广泛应用的是应用的是TITI产品产品TMS320C2000 /TMS320C2000 /C C50005000系系列,另外列,另外IntelIntel和和SiemensSiemens也有相应的产也有相应的产品。品。18PPT课件 ESoCESoC:在一个硅片上实现一个更为复杂的系统。在一个硅片上实现一个更为复杂的系统。 各种通用处理器内核将作为各种通用处理器内核将作为SoCSoC设计公司的标设计公司的标准库,成为准库,成为 VLSIVLSI设计中一种标准的器件,用设计中一种标准的器件,用标准的标准的VHDLVHDL等语言描述。等语言描述。 用
16、户只需定义出整个应用系统,仿真通过后,用户只需定义出整个应用系统,仿真通过后,就可以将设计图交给半导体工厂制作样品。就可以将设计图交给半导体工厂制作样品。 这样除个别无法集成的器件以外,整个这样除个别无法集成的器件以外,整个嵌入式嵌入式系统大部分均可集成到一块或几块芯片中去系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于减小体积应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。和功耗、提高可靠性非常有利。 19PPT课件 嵌入式系统软件核心包括:嵌入式系统软件核心包括: 系统软件系统软件:嵌入式操作系统:嵌入式操作系统 支撑软件支撑软件:嵌入式软件开发
17、平台及工具嵌入式软件开发平台及工具 应用软件应用软件:嵌入式应用软件:嵌入式应用软件 20PPT课件 1 1软件要求固态化存储软件要求固态化存储 为了提高执行速度和系统可靠性,嵌入式系为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮在磁盘中。身中,而不是存贮在磁盘中。 2 2软件代码高质量、高可靠性软件代码高质量、高可靠性 尽管半导体技术的发展使处理器速度不断提尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的
18、,还存在实时性的要中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。以减少程序二进制代码长度、提高执行速度。21PPT课件 3 3操作系统软件具有高实时性操作系统软件具有高实时性 在多任务嵌入式系统中,对各项任务进行统在多任务嵌入式系统中,对各项任务进行统筹兼顾、合理调度是保证系统功能的关键,单纯筹兼顾、合理调度是保证系统功能的关键,单纯提高处理器的速度是无法完成这些要求的,也是提高处理器的速度是无法完成这些要求的,也是没有效率的,这种任务调度只能由优化编写的系没有效率的,这种任
19、务调度只能由优化编写的系统软件来完成,因此操作系统软件的高实时性是统软件来完成,因此操作系统软件的高实时性是基本要求。基本要求。 4 4 嵌入式系统应用语言:嵌入式系统应用语言: 据统计,在嵌入式系统设计中,最受欢迎的据统计,在嵌入式系统设计中,最受欢迎的前前3 3种编程语言分别是种编程语言分别是C C(74.6%)(74.6%)、汇编汇编(69.6%)(69.6%)和和C+C+ (50.1%) (50.1%)。22PPT课件 通用计算机具有完善的操作系统通用计算机具有完善的操作系统,应用程序的应用程序的开发以及完成后的软件都在开发以及完成后的软件都在OSOS平台上面运行,平台上面运行,但一般
20、不是实时的。但一般不是实时的。 嵌入式系统则不同,应用程序用汇编语言和嵌入式系统则不同,应用程序用汇编语言和C C语言来开发,可以没有操作系统直接在芯片上语言来开发,可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统运行;但是为了合理地调度多任务、利用系统资源,用户必须自行资源,用户必须自行选配选配RTOSRTOS开发平台开发平台,这样,这样才能保证程序执行的实时性、可靠性,并减少才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。开发时间,保障软件质量。23PPT课件 一般来说,操作系统内核只提供基本的功能,如建立和一般来说,操作系统内核只提供基本的功能,如建立
21、和管理进程、管理设备等。但是,一些桌面操作系统,如管理进程、管理设备等。但是,一些桌面操作系统,如WindowsWindows等,将许多功能引入内核,操作系统的内核变等,将许多功能引入内核,操作系统的内核变得越来越大。内核变大使得占用的资源增多,得越来越大。内核变大使得占用的资源增多,剪裁起来剪裁起来很麻烦很麻烦。 嵌入式操作系统采用嵌入式操作系统采用微内核结构微内核结构,内核只提供基本的功,内核只提供基本的功能,比如:任务的调度、任务之间的通信与同步、内存能,比如:任务的调度、任务之间的通信与同步、内存管理、时钟管理等。其它的应用组件,比如网络功能、管理、时钟管理等。其它的应用组件,比如网络
22、功能、文件系统等均工作在用户态,以系统进程或函数调用的文件系统等均工作在用户态,以系统进程或函数调用的方式工作。因而系统都是可裁减的,用户可以根据自己方式工作。因而系统都是可裁减的,用户可以根据自己的需要选用相应的组件。的需要选用相应的组件。24PPT课件 任务的调度有三种方式任务的调度有三种方式:可抢占式调度可抢占式调度、不可抢占式调不可抢占式调度度和和时间片轮转调度时间片轮转调度。 不可抢占式调度:不可抢占式调度:一个任务一旦获得一个任务一旦获得CPUCPU就独占就独占CPUCPU运行,运行,除非由于某种原因,它决定放弃除非由于某种原因,它决定放弃CPUCPU的使用权;的使用权; 可抢占式
23、调度:可抢占式调度:基于任务优先级,当前正在运行的任务基于任务优先级,当前正在运行的任务可以随时让位给优先级更高的处于就绪态的其它任务;可以随时让位给优先级更高的处于就绪态的其它任务; 时间片轮转调度:时间片轮转调度:当两个或两个以上任务有当两个或两个以上任务有同样的优先同样的优先级级,不同任务轮转地使用,不同任务轮转地使用CPUCPU,直到系统分配的直到系统分配的CPUCPU时间时间片用完。片用完。 目前,大多数嵌入式操作系统对不同优先级的任务采用目前,大多数嵌入式操作系统对不同优先级的任务采用基于优先级的基于优先级的抢占式调度法抢占式调度法,对相同优先级的任务则采,对相同优先级的任务则采用
24、用时间片轮转调度法时间片轮转调度法。25PPT课件 多数嵌入式系统对时间的要求较高,称之为多数嵌入式系统对时间的要求较高,称之为实时系实时系统统。 有两种类型的实时系统:有两种类型的实时系统:硬实时系统硬实时系统和和软实时系统软实时系统。 软实时系统软实时系统并不要求限定某一任务必须在一定的时并不要求限定某一任务必须在一定的时间内完成,只要求各任务运行得越快越好;间内完成,只要求各任务运行得越快越好; 硬实时系统硬实时系统对系统响应时间有严格要求,一旦系统对系统响应时间有严格要求,一旦系统响应时间不能满足,就可能会引起系统崩溃或致命响应时间不能满足,就可能会引起系统崩溃或致命的错误,一般在工业
25、控制中应用较多。的错误,一般在工业控制中应用较多。26PPT课件 一些桌面操作系统使用了一些桌面操作系统使用了虚拟存储器虚拟存储器的概念。采用的概念。采用段式管理、页式管理、或段页式管理。段式管理、页式管理、或段页式管理。 但是,大多数但是,大多数嵌入式系统不使用虚存技术嵌入式系统不使用虚存技术,对内存,对内存的访问是直接的,使用物理地址;而且,大多数嵌的访问是直接的,使用物理地址;而且,大多数嵌入式操作系统对内存空间没有保护,各个进程共享入式操作系统对内存空间没有保护,各个进程共享同一个运行空间。一个进程在执行前,系统必须为同一个运行空间。一个进程在执行前,系统必须为它分配足够的连续地址空间
26、,然后全部载入主存储它分配足够的连续地址空间,然后全部载入主存储器。器。 由此可见,嵌入式系统的开发人员必须由此可见,嵌入式系统的开发人员必须参与参与系统的系统的内存管理,内存管理,对软件中的一些内存操作必须格外小心对软件中的一些内存操作必须格外小心。27PPT课件 嵌入式操作系统内核可以在嵌入式操作系统内核可以在FlashFlash上直接运行,上直接运行,也可以也可以加载加载到内存中运行。到内存中运行。 FlashFlash的运行方式的运行方式,是把内核的可执行映像烧,是把内核的可执行映像烧写到写到FlashFlash上,系统启动时从上,系统启动时从FlashFlash的某个地址的某个地址开
27、始执行。这种方法实际上是很多嵌入式系统开始执行。这种方法实际上是很多嵌入式系统所采用的方法。所采用的方法。 内核加载方式内核加载方式是把内核的压缩文件存放在是把内核的压缩文件存放在FlashFlash上,系统启动时读取压缩文件在内存里上,系统启动时读取压缩文件在内存里解压,然后开始执行。这种方式相对复杂一些,解压,然后开始执行。这种方式相对复杂一些,但是运行速度可能更快,因为但是运行速度可能更快,因为RAMRAM的存取速率的存取速率要比要比FlashFlash高。高。28PPT课件国内国内RTOS: 女娲女娲Hopen 桑夏桑夏2000 Delta OS 中软中软Linux2.0 Linux
28、HardHat Linux (Monta Vista) Red Flag Linux(红旗红旗Linux) HBOS(“天堂之鸟天堂之鸟”) Suse Red Hat Embedix LynxOS (LynuxWorks) 29PPT课件国外国外RTOS: VX Works (风河系统风河系统) Windows CE (微软微软) VRTX (明导资讯明导资讯) Palm PowerTV AMX (KADAK) C Executive PSX (JMI) VelOSity (Green Hills) OS-9 (Microware Systems) OSE (Enea OSE Systems)
29、 QNX (QNX Software Sys) RTXC (Lineo/Embedded Power Corp) SuperTask! (US Software) ThreadX (Express Logic) TNT/RTX (VenturCom) Windows NT Embedded/XP (微软微软) 30PPT课件 编译器:编译器:GNUGNU编译器编译器 调试工具:调试工具:GNUGNU调试工具调试工具 集成开发环境(集成开发环境(IDEIDE) 绘图入门工具绘图入门工具 算法开发工具:算法开发工具:UML/SDLUML/SDL工具库工具库 网络网络/ /通信协议通信协议 配置管理
30、工具配置管理工具 需求管理工具需求管理工具 DSPDSP开发工具开发工具 器件驱动器开发工具器件驱动器开发工具 软硬件协同验证工具软硬件协同验证工具 JavaJava工具工具 存储器分析工具存储器分析工具 软件仿真软件仿真/ /建模工具建模工具 Win CEWin CE工具工具 测试软件事件跟踪工具测试软件事件跟踪工具 内电路仿真器(内电路仿真器(ICEICE) ROMROM仿真器仿真器 JTAGJTAG仿真器仿真器 逻辑分析器逻辑分析器 示波器示波器31PPT课件321 嵌入式软件开发的特点嵌入式系统与通用计算机系统的差别:嵌入式系统与通用计算机系统的差别:人机交互界面人机交互界面有限的功能
31、有限的功能时间关键性和稳定性时间关键性和稳定性 33PPT课件 嵌入式软件开发的特点:嵌入式软件开发的特点:需要交叉开发环境需要交叉开发环境:交叉开发环境是指实现编:交叉开发环境是指实现编译、链接和调试应用程序代码的环境。与运行应译、链接和调试应用程序代码的环境。与运行应用程序的环境不同,它分散在有通信连接的用程序的环境不同,它分散在有通信连接的宿主宿主机机与与目标机目标机环境之中。环境之中。 宿主机宿主机( (Host)Host)是一台通用计算机,一般是是一台通用计算机,一般是PCPC机。它通过串口或网络连接与目标机通信。机。它通过串口或网络连接与目标机通信。 目标机目标机( (Target
32、)Target) 可以是嵌入式应用软件的可以是嵌入式应用软件的实际运行环境,也可以是能替代实际环境的仿实际运行环境,也可以是能替代实际环境的仿真系统。真系统。34PPT课件 嵌入式软件开发的特点:嵌入式软件开发的特点:引入引入任务任务设计方法设计方法 需要需要固化固化程序程序 软件开发难度大软件开发难度大 嵌入式应用软件对嵌入式应用软件对实时性实时性、稳定性稳定性、可靠可靠性性、抗干扰性抗干扰性等性能的要求都比通用软件的等性能的要求都比通用软件的要求更为严格和苛刻。要求更为严格和苛刻。35PPT课件2.2 嵌入式系统开发的流程 嵌入式软件的开发流程与通用软件的开发流程嵌入式软件的开发流程与通用
33、软件的开发流程大同小异,但开发所使用的设计方法具有嵌入式大同小异,但开发所使用的设计方法具有嵌入式开发的特点。整个开发流程可分为:开发的特点。整个开发流程可分为:需求分析阶段需求分析阶段设计阶段设计阶段生成代码阶段生成代码阶段固化阶段固化阶段36PPT课件v 需求分析阶段需求分析阶段 嵌入式系统应用需求中最为突出的是注重应用的嵌入式系统应用需求中最为突出的是注重应用的时时效性效性,需求分析阶段的,需求分析阶段的主要任务主要任务是:是:(1)(1)对问题的识别和分析对问题的识别和分析 对用户提出的问题进行抽象识别用以产生以下的对用户提出的问题进行抽象识别用以产生以下的需求:功能需求、性能需求、环
34、境需求、可靠性需求、需求:功能需求、性能需求、环境需求、可靠性需求、安全需求、用户界面需求、资源使用需求、软件成本安全需求、用户界面需求、资源使用需求、软件成本与开发进度需求。与开发进度需求。37PPT课件v 需求分析阶段需求分析阶段(2)(2)制订规格说明文档制订规格说明文档 经过对问题的识别,产生了系统各方面的需求。经过对问题的识别,产生了系统各方面的需求。通过对规格的说明,文档得以清晰、准确地描述。通过对规格的说明,文档得以清晰、准确地描述。这些说明文档包括需求规格说明书和初级的用户手这些说明文档包括需求规格说明书和初级的用户手册等。册等。(3)(3)需求评审需求评审 需求评审作为系统进
35、入下一阶段前最后的需求需求评审作为系统进入下一阶段前最后的需求分析复查手段,在需求分析的最后阶段对各项需求分析复查手段,在需求分析的最后阶段对各项需求进行评估,以保证软件需求的质量。需求评审的内进行评估,以保证软件需求的质量。需求评审的内容包括正确性、无歧义性、安全性、可验证性、一容包括正确性、无歧义性、安全性、可验证性、一致性、可理解性、可修改性、可追踪性等多个方面。致性、可理解性、可修改性、可追踪性等多个方面。38PPT课件v 设计阶段设计阶段 系统的设计阶段包括系统设计、任务设计和任务系统的设计阶段包括系统设计、任务设计和任务的详细设计。由于嵌入式系统中任务的并发性,嵌的详细设计。由于嵌
36、入式系统中任务的并发性,嵌入式软件开发中引入了入式软件开发中引入了DARTS(Design Approach for Real-Time System) DARTS设计方法:是结构化分析设计方法:是结构化分析/结构化设计的结构化设计的扩展。它给出划分任务的方法,并提供定义任务扩展。它给出划分任务的方法,并提供定义任务间接口的机制。间接口的机制。 DARTS设计方法的设计步骤如下:设计方法的设计步骤如下:(1)数据流分析数据流分析 (2)划分任务划分任务 (3)定义任务间的接口定义任务间的接口 39PPT课件v 生成代码阶段生成代码阶段 生成代码阶段需要完成的工作包括生成代码阶段需要完成的工作包
37、括代码编程代码编程、交叉编译和链接交叉编译和链接、交叉调试交叉调试和和测试测试等。等。40PPT课件代码编程代码编程v 生成代码阶段生成代码阶段 在嵌入式系统的开发过程中,一般采用的方法在嵌入式系统的开发过程中,一般采用的方法是是先在通用先在通用PCPC上编程上编程,然后通过,然后通过交叉编译链接交叉编译链接,将,将程序做成目标平台上可以运行的二进制代码格式。程序做成目标平台上可以运行的二进制代码格式。最后将程序最后将程序下载到目标平台上下载到目标平台上的特定位置,在目标的特定位置,在目标板上启动运行这段二进制代码。板上启动运行这段二进制代码。 41PPT课件v 生成代码阶段生成代码阶段交叉编
38、译和链接交叉编译和链接 嵌入式软件开发编码完成后,要进行编译和链接以嵌入式软件开发编码完成后,要进行编译和链接以生成可执行代码。但是,在开发过程中设计人员普遍生成可执行代码。但是,在开发过程中设计人员普遍使用使用Intel的的x86系列系列CPU的计算机进行开发的计算机进行开发,而,而目标目标环境的处理芯片却是多种多样的环境的处理芯片却是多种多样的,如,如ARM,DSP,PowerPC,DragonBall系列等,这就要求开发机上的系列等,这就要求开发机上的编译器能支持交叉编译。编译器能支持交叉编译。 嵌入式集成开发环境都支持交叉编译、链接嵌入式集成开发环境都支持交叉编译、链接,如,如Wind
39、River公司的公司的Tornado以及以及GNU套件等。交叉套件等。交叉编译链接生成两种类型的可执行文件:编译链接生成两种类型的可执行文件:调试用的可执调试用的可执行文件行文件和和固化的可执行文件固化的可执行文件。42PPT课件v 生成代码阶段生成代码阶段交叉调试交叉调试交叉调试,又叫远程调试,具有以下特点:交叉调试,又叫远程调试,具有以下特点: 调试器和被调试的程序运行在调试器和被调试的程序运行在不同的机器上不同的机器上。调试器运行在调试器运行在PCPC或工作站上,而被调试程序运行或工作站上,而被调试程序运行在各式的专用目标机上;在各式的专用目标机上; 调试器通过某种通信方式与目标机调试器
40、通过某种通信方式与目标机建立联系建立联系,如串口、并口、网络、如串口、并口、网络、JTAGJTAG或者专用的通信方式;或者专用的通信方式;43PPT课件在目标机上一般具有某种在目标机上一般具有某种调试代理调试代理,这种代理能与调,这种代理能与调试器一起配合完成对目标机上运行程序的调试。这种试器一起配合完成对目标机上运行程序的调试。这种代理可以是某种能支持调试的硬件,也可以是某种软代理可以是某种能支持调试的硬件,也可以是某种软件;件;目标机可以是一种目标机可以是一种仿真机仿真机。通过在宿主机上运行目标。通过在宿主机上运行目标机的仿真软件,仿真一台目标机,使整个调试工作只机的仿真软件,仿真一台目标
41、机,使整个调试工作只在一台计算机上进行。在一台计算机上进行。嵌入式系统开发的测试与通用软件的测试相似,分为嵌入式系统开发的测试与通用软件的测试相似,分为单元测试单元测试和系统和系统集成测试集成测试。v 生成代码阶段生成代码阶段测试测试44PPT课件v 固化阶段固化阶段嵌入式系统的应用软件嵌入式系统的应用软件是针对特定的实际专业领域的,基于相是针对特定的实际专业领域的,基于相应的嵌入式硬件平台,并能完成用户预期任务的应的嵌入式硬件平台,并能完成用户预期任务的计算机软件计算机软件。 嵌入式软件的特点如下:嵌入式软件的特点如下:(1)(1)软件要求固态化存储。软件要求固态化存储。(2)(2)软件代码
42、要求高质量、高可靠性。软件代码要求高质量、高可靠性。(3)(3)系统软件的高实时性是基本要求。系统软件的高实时性是基本要求。(4)(4)多任务实时操作系统成为嵌入式应用软件的必需。多任务实时操作系统成为嵌入式应用软件的必需。 45PPT课件 总结:嵌入式软件开发的要点总结:嵌入式软件开发的要点 嵌入式应用软件高度依赖目标应用的软硬件环嵌入式应用软件高度依赖目标应用的软硬件环境,软件的部分任务功能函数由汇编语言完成,境,软件的部分任务功能函数由汇编语言完成,具有具有高度的不可移植性高度的不可移植性。 为了保证实时性能,使用效率高和速度快的汇为了保证实时性能,使用效率高和速度快的汇编语言是不可避免
43、的。编语言是不可避免的。 尽可能提高嵌入式应用软件的可移植性方法:尽可能提高嵌入式应用软件的可移植性方法: (1) (1)尽量用高级语言开发,少用汇编语言尽量用高级语言开发,少用汇编语言 (2) (2)局域化不可移植部分局域化不可移植部分 (3) (3)提高软件的可重用性提高软件的可重用性46PPT课件2.3 嵌入式系统的调试嵌入式系统的调试过程:嵌入式系统的调试过程:47PPT课件2.3 嵌入式系统的调试嵌入式系统的调试方法:嵌入式系统的调试方法:1 1源程序模拟器方式源程序模拟器方式2 2监控器方式监控器方式3 3仿真器方式仿真器方式48PPT课件v 源程序模拟器方式源程序模拟器方式 源程
44、序模拟器源程序模拟器( (Simulator)Simulator)是在是在PCPC机上,通过机上,通过软件软件手段手段模拟执行为某种嵌入式处理器编写的源程序的模拟执行为某种嵌入式处理器编写的源程序的测试工具。测试工具。 注意注意: :模拟器的功能毕竟是以一种处理器模拟另一模拟器的功能毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响应、定种处理器的运行,在指令执行时间、中断响应、定时器等方面很有可能与实际处理器有相当大的差别。时器等方面很有可能与实际处理器有相当大的差别。另外,它无法仿真嵌入式系统在应用系统中的实际另外,它无法仿真嵌入式系统在应用系统中的实际执行情况。执行情况。
45、比如:比如:ARMARM公司的公司的ARMulatorARMulator模拟器模拟器 49PPT课件v 监控器方式监控器方式 监控器监控器( (Monitor)Monitor)调试方式需要目标机与宿主机协调。调试方式需要目标机与宿主机协调。首先,在宿主机和目标机之间通过串口、以太口等首先,在宿主机和目标机之间通过串口、以太口等建立物理建立物理连接连接,然后在宿主机上运行调试器,目标机运行监控程序和,然后在宿主机上运行调试器,目标机运行监控程序和被调试程序,从而建立宿主机与目标机的被调试程序,从而建立宿主机与目标机的逻辑连接逻辑连接。宿主机。宿主机通过调试器与目标机的监控器建立通信连接,它们相互
46、间的通过调试器与目标机的监控器建立通信连接,它们相互间的通信遵循远程调试协议。比如通信遵循远程调试协议。比如ARMARM公司的公司的AngelAngel。 50PPT课件v 仿真器方式仿真器方式 仿真器调试方式是在微处理器的内部嵌入额外的仿真器调试方式是在微处理器的内部嵌入额外的控制控制模块模块。当特定的触发条件满足时,系统将进入某种特殊状。当特定的触发条件满足时,系统将进入某种特殊状态。在这种状态下,被调试的程序暂时停止运行,宿主机态。在这种状态下,被调试的程序暂时停止运行,宿主机的调试器通过微处理器外部特设的通信口访问各种寄存器、的调试器通过微处理器外部特设的通信口访问各种寄存器、存储器资
47、源,并执行相应的调试指令。存储器资源,并执行相应的调试指令。 在宿主机的通信端口和目标板调试通信接口之间,通在宿主机的通信端口和目标板调试通信接口之间,通信接口的引脚信号可能存在差异,因此在这两者之间往往信接口的引脚信号可能存在差异,因此在这两者之间往往可以通过一块可以通过一块信号转换电路板连接信号转换电路板连接。 一般高档的微处理器都带一般高档的微处理器都带JTAG JTAG (Joint Test Action (Joint Test Action Group,Group,联合测试行动组联合测试行动组) )接口,它是一种边界扫描标准,接口,它是一种边界扫描标准,只需只需5 5根引脚就可以实
48、现在线仿真的功能。根引脚就可以实现在线仿真的功能。 51PPT课件2.4 板级支持包 由于嵌入式系统中采用微处理器微控制器的多样性,嵌入由于嵌入式系统中采用微处理器微控制器的多样性,嵌入式操作系统的可移植性显得更加重要。所以有些嵌入式操作式操作系统的可移植性显得更加重要。所以有些嵌入式操作系统的内核明确分成两层,上层一般称为系统的内核明确分成两层,上层一般称为“内核内核”,而低层,而低层则称为则称为“硬件抽象层硬件抽象层” ,底层的缩写是,底层的缩写是HALHAL,也有的厂商也有的厂商( (如如VxWorksVxWorks的提供者的提供者WindRiverWindRiver公司公司) )把硬件抽象层称为把硬件抽象层称为BSPBSP,即即板级支持包板级支持包( (Board Support Package)Board Support Package)。板级支持包是操板级支持包是操作系统与目标应用硬件环境的中间接口,它是软件包中具有作系统与目标应用硬件环境的中间接口,它是软件包中具有平台依赖性的那一部分。平台依赖性的那一部分。板级支持包的主要功能包括两部分:板级支持包的主要功能包括两部分:在系统启动时,对硬件进行初始化在系统启动时,对硬件进行初始化 为驱动程序提供访问硬件的手段为驱动程序提供访问硬件的手段 52PPT课件