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