软件测试与调试课件

上传人:29 文档编号:241657734 上传时间:2024-07-13 格式:PPT 页数:75 大小:1.22MB
返回 下载 相关 举报
软件测试与调试课件_第1页
第1页 / 共75页
软件测试与调试课件_第2页
第2页 / 共75页
软件测试与调试课件_第3页
第3页 / 共75页
点击查看更多>>
资源描述
第二章第二章 嵌入式系统基本设计方法嵌入式系统基本设计方法1第二章 嵌入式系统基本设计方法1第二章第二章 嵌入式系统基本设计方法嵌入式系统基本设计方法 l本章的主要内容本章的主要内容l2.1 嵌入式系统设计概述l2.2 嵌入式系统软硬件协同设计概述l2.3 需求分析和概要设计l2.4 详细设计l2.5 实现阶段l2.6 测试阶段2第二章 嵌入式系统基本设计方法 本章的主要内容22.1.1 嵌入式系统设计的内容嵌入式系统设计的内容l嵌入式系统的硬件和软件都必须高效率地设计,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。上实现更高的性能。l嵌入式系统的设计技术主要包括嵌入式系统的设计技术主要包括:硬件设计技术硬件设计技术软件设计技术软件设计技术 32.1.1 嵌入式系统设计的内容嵌入式系统的硬件和软件都必须2.1.1 嵌入式系统设计的内容嵌入式系统设计的内容l1.硬件设计的技术包括硬件设计的技术包括:芯片级设计技术和电芯片级设计技术和电路板级设计技术路板级设计技术芯片级设计技术:核心是编译芯片级设计技术:核心是编译/综合、库综合、库/IP、测、测试试/验证。验证。l编译编译/综合技术使设计者用抽象的方式描述所需的功能,综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。并自动分析和插入实现细节。l库库/IP技术将预先设计好的低抽象级实现用于高级。技术将预先设计好的低抽象级实现用于高级。l测试测试/验证技术确保每级功能正确,减少各级之间反复设验证技术确保每级功能正确,减少各级之间反复设计的成本。计的成本。电路板级设计技术:完成电路板的规划,电路设电路板级设计技术:完成电路板的规划,电路设计,在印制板上布局,布线,最终构成系统。计,在印制板上布局,布线,最终构成系统。42.1.1 嵌入式系统设计的内容1.硬件设计的技术包括:芯2.1.1 嵌入式系统设计的内容嵌入式系统设计的内容l2.软件设计技术:软件语言软件设计技术:软件语言软件语言经历了从低级语言(机器语言、汇编语言)软件语言经历了从低级语言(机器语言、汇编语言)到高级语言(如结构化设计语言、面向对象设计语到高级语言(如结构化设计语言、面向对象设计语言)的发展历程,推动其发展的是汇编技术、分析言)的发展历程,推动其发展的是汇编技术、分析技术、编译技术、编译/解释技术等诸多相关技术。解释技术等诸多相关技术。52.1.1 嵌入式系统设计的内容2.软件设计技术:软件语言2.1.2 嵌入式系统设计的技术背景嵌入式系统设计的技术背景lIT技术的发展推动嵌入式系统设计方法技术的发展推动嵌入式系统设计方法的演变,这些技术包括:的演变,这些技术包括:1.微电子技术:微电子技术:l大规模集成电路:微电子技术的发展,带来大规大规模集成电路:微电子技术的发展,带来大规模集成电路的集成度和工艺水平不断提高,生产模集成电路的集成度和工艺水平不断提高,生产出了大批量的低成本、高可靠性和高精度的微电出了大批量的低成本、高可靠性和高精度的微电子结构模块子结构模块l器件可编程:在此基础上发展起来的器件可编程器件可编程:在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实思想和微处理(器)技术可以用软件来改变和实现硬件的功能,实现了微处理器和各种可编程大现硬件的功能,实现了微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用。规模集成专用电路、半定制器件的大量应用。62.1.2 嵌入式系统设计的技术背景IT技术的发展推动嵌入式2.高性能的高性能的EDA(电子设计自动化)(电子设计自动化)综合开发工具:综合开发工具:l高性能的高性能的EDA综合开发工具为复杂的嵌综合开发工具为复杂的嵌入式系统设计提供了易于学习和方便使入式系统设计提供了易于学习和方便使用的集成开发环境用的集成开发环境 2.1.2 嵌入式系统设计的技术背景嵌入式系统设计的技术背景72.高性能的EDA(电子设计自动化)综合开发工具:2.1.2.1.2 嵌入式系统设计的技术背景嵌入式系统设计的技术背景3.硬件描述语言硬件描述语言HDL(Hardware Description Language)l硬件描述语言的发展为复杂电子系统设硬件描述语言的发展为复杂电子系统设计提供了建立各种硬件模型的工作语言。计提供了建立各种硬件模型的工作语言。82.1.2 嵌入式系统设计的技术背景3.硬件描述语言HDL4.EOS技术:技术:l软件技术的进步,特别是嵌入式操作系软件技术的进步,特别是嵌入式操作系统统EOS(Embedded Operation System)的推出,为开发复杂嵌入式系统的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发应用软件提供了底层支持和高效率开发平台。平台。94.EOS技术:92.1.2 嵌入式系统设计的技术背景嵌入式系统设计的技术背景l名词解释:名词解释:IP(Intellectual Property Core,知识产权,知识产权核核)l是一种预先设计好的甚至已经过验证的具有某种是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。确定功能的集成电路、器件或部件。l该模块有行为(该模块有行为(behavior)、结构()、结构(structure)和物理(和物理(physical)3级不同程度的设计,对应有级不同程度的设计,对应有主要描述功能行为的主要描述功能行为的“软软IP内核内核(soft IP core)”、完成结构描述的完成结构描述的“固固IP内核内核(firm IP core)”和基和基于物理描述并经过工艺验证的于物理描述并经过工艺验证的“硬硬IP内核内核(hard IP core)”3个层次。个层次。102.1.2 嵌入式系统设计的技术背景名词解释:102.1.3 嵌入式系统设计方法的分类嵌入式系统设计方法的分类l嵌入式系统设计分为三个不同的发展层次嵌入式系统设计分为三个不同的发展层次1.以以CAD软件和软件和ICE(In Circuit Emulator)为主要工具的设计方法为主要工具的设计方法这是过去直至现在我国单片机应用系统设计人员一这是过去直至现在我国单片机应用系统设计人员一直沿用的方法,其步骤是先抽象后具体。直沿用的方法,其步骤是先抽象后具体。112.1.3 嵌入式系统设计方法的分类嵌入式系统设计分为三个不抽象设计抽象设计主要是根据嵌入式应用系统要实现的功能要求,对主要是根据嵌入式应用系统要实现的功能要求,对系统功能细化,分成若干功能模块,画出系统功能系统功能细化,分成若干功能模块,画出系统功能框图,再对功能模块进行硬件和软件功能实现的划框图,再对功能模块进行硬件和软件功能实现的划分。分。12抽象设计主要是根据嵌入式应用系统要实现的功能要求,对系统功能具体设计具体设计具体设计具体设计:包括硬件设计和软件设计。包括硬件设计和软件设计。硬件设计主要是根据性能参数要求对各功能模块所需要使硬件设计主要是根据性能参数要求对各功能模块所需要使用的元器件进行选择和组合。用的元器件进行选择和组合。软件设计主要包括任务分析、资源分配、模块划分、流程软件设计主要包括任务分析、资源分配、模块划分、流程设计和细化、编码调试等。设计和细化、编码调试等。13具体设计具体设计:包括硬件设计和软件设计。132.1.3 嵌入式系统设计方法的分类嵌入式系统设计方法的分类l嵌入式系统设计分为三个不同的发展层次嵌入式系统设计分为三个不同的发展层次2.以以EDA工具软件和工具软件和EOS为开发平台的设计方法为开发平台的设计方法随着微电子工艺技术的发展,各种通用的可编程半定制逻辑随着微电子工艺技术的发展,各种通用的可编程半定制逻辑器件应运而生。器件应运而生。硬件设计人员从过去选择和使用标准通用集成电路器件,逐硬件设计人员从过去选择和使用标准通用集成电路器件,逐步转向自己设计和制作部分专用的集成电路器件,而这些技步转向自己设计和制作部分专用的集成电路器件,而这些技术是由各种术是由各种EDA工具软件提供支持的工具软件提供支持的。142.1.3 嵌入式系统设计方法的分类嵌入式系统设计分为三个不EDA工具软件工具软件设计人员可以利用各种设计人员可以利用各种EDA工具和标准的复杂可编工具和标准的复杂可编程逻辑器件程逻辑器件CPLD和现场可编程门阵列和现场可编程门阵列FPGA等,等,设计和自制用户专用的大规模集成电路。设计和自制用户专用的大规模集成电路。然后再通过自下而上的设计方法,把用半定制器件然后再通过自下而上的设计方法,把用半定制器件设计自制的集成电路、可编程外围器件、所选择的设计自制的集成电路、可编程外围器件、所选择的ASIC与嵌入式微处理器或微控制器在印制板上布与嵌入式微处理器或微控制器在印制板上布局、布线构成系统。局、布线构成系统。15EDA工具软件设计人员可以利用各种EDA工具和标准的复杂可编2.1.3 嵌入式系统设计方法的分类嵌入式系统设计方法的分类l嵌入式系统设计分为三个不同的发展层次嵌入式系统设计分为三个不同的发展层次3.以以IP内核库为设计基础,采用软硬件协同设计技术内核库为设计基础,采用软硬件协同设计技术的设计方法的设计方法20世纪世纪90年代后,进一步开始了从年代后,进一步开始了从“集成电路集成电路”级设计不断转向级设计不断转向“集成系统集成系统”级设计。目前已进入级设计。目前已进入片上系统片上系统SOC(System on a Chip)设计阶段。)设计阶段。162.1.3 嵌入式系统设计方法的分类嵌入式系统设计分为三个不SOC单片系统设计要从整个系统性能要求出发,把微处单片系统设计要从整个系统性能要求出发,把微处理器、模型算法、芯片结构、外围器件各层次电路理器、模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在全新直至器件的设计紧密结合起来,并通过建立在全新理念上的系统软件和硬件的协同设计,在单个芯片理念上的系统软件和硬件的协同设计,在单个芯片上完成整个系统的功能。上完成整个系统的功能。有时也可能把系统做在几个芯片上。有时也可能把系统做在几个芯片上。17SOC单片系统设计要从整个系统性能要求出发,把微处理器、模型2.1.3 嵌入式系统设计方法的分类嵌入式系统设计方法的分类l三个发展层次的应用范围三个发展层次的应用范围从应用开发角度看,在相当长的一段时间内,都从应用开发角度看,在相当长的一段时间内,都是采用前两种方法。是采用前两种方法。第第3层次设计方法对一般具体应用人员来说,只层次设计方法对一般具体应用人员来说,只能用来设计简单的单片系统。能用来设计简单的单片系统。复杂的单片系统则是某些大的半导体厂商才能设复杂的单片系统则是某些大的半导体厂商才能设计和实现的,并且用这种方法实现的单片系统,计和实现的,并且用这种方法实现的单片系统,只可能是那些广泛使用、具有一定规模的应用系只可能是那些广泛使用、具有一定规模的应用系统才值得投入研制。统才值得投入研制。182.1.3 嵌入式系统设计方法的分类三个发展层次的应用范围1l3个层次的设计方法会并存。个层次的设计方法会并存。初级应用设计人员会以第初级应用设计人员会以第1种方法为主;种方法为主;富有经验的设计人员会以第富有经验的设计人员会以第2种方法为主;种方法为主;很专业的设计人员会用第很专业的设计人员会用第3种方法进行简单单片系种方法进行简单单片系统的设计和应用。统的设计和应用。但所有的设计人员都可以应用半导体大厂商推出的但所有的设计人员都可以应用半导体大厂商推出的用第用第3种方法设计的专用单片系统。种方法设计的专用单片系统。193个层次的设计方法会并存。192.1.4 嵌入式开发环境嵌入式开发环境l嵌入式开发环境,是以开发嵌入式系统为目的的嵌入式开发环境,是以开发嵌入式系统为目的的工程开发环境。包括办公环境支持、软件支持、工程开发环境。包括办公环境支持、软件支持、硬件设备支持。硬件设备支持。软件支持:指集成开发环境与软件模拟器等。软件支持:指集成开发环境与软件模拟器等。硬件支持:指仿真器、目标板、示波器、烧录器等。硬件支持:指仿真器、目标板、示波器、烧录器等。202.1.4 嵌入式开发环境嵌入式开发环境,是以开发嵌入式系统Platform Builder21Platform Builder21PB 模拟器模拟器22PB 模拟器22开发板开发板23开发板23仿真环境仿真环境24仿真环境242.1.4 嵌入式开发环境嵌入式开发环境l嵌入式开发环境如图嵌入式开发环境如图 252.1.4 嵌入式开发环境嵌入式开发环境如图 252.1.4 嵌入式开发环境嵌入式开发环境l集成开发系统集成开发系统l嵌入式开发较多采用集成开发系统,一般包括编辑器、嵌入式开发较多采用集成开发系统,一般包括编辑器、编译器、连接器、调试器、工程管理器和底层调试接编译器、连接器、调试器、工程管理器和底层调试接口设备(口设备(BDM/JTAG仿真器)等。仿真器)等。262.1.4 嵌入式开发环境集成开发系统262.1.5 32位嵌入式开发的新挑战位嵌入式开发的新挑战l32位嵌入式开发引发的嵌入式技术发展趋势位嵌入式开发引发的嵌入式技术发展趋势l(1)高度集成化的)高度集成化的SOC趋势趋势l(2)软核与硬核同步发展的)软核与硬核同步发展的SOPC技术技术 l(3)与)与DSP技术融合技术融合l(4)开发和调试手段不断完善)开发和调试手段不断完善l(5)软件工程思想融入嵌入式软件)软件工程思想融入嵌入式软件 272.1.5 32位嵌入式开发的新挑战32位嵌入式开发引发的嵌2.2嵌入式系统软硬件协同设计概述嵌入式系统软硬件协同设计概述2.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展背景与过程2.2.2软硬件协同设计流程软硬件协同设计流程282.2嵌入式系统软硬件协同设计概述2.2.1软硬件协同设计的2.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展背景与过程l软硬件协同设计的背景软硬件协同设计的背景 l系统级芯片设计的发展要求广泛采用软硬件协同设计系统级芯片设计的发展要求广泛采用软硬件协同设计方法方法l系统级芯片设计是一种高层次的电子设计方法,设计系统级芯片设计是一种高层次的电子设计方法,设计人员针对设计目标进行系统功能描述,定义系统的行人员针对设计目标进行系统功能描述,定义系统的行为特性,生成系统级的规格描述。为特性,生成系统级的规格描述。292.2.1软硬件协同设计的发展背景与过程软硬件协同设计的背景2.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展背景与过程l软硬件协同设计的背景软硬件协同设计的背景l系统级芯片设计主要有系统级芯片设计主要有3个关键的支撑技术:个关键的支撑技术:(1)软、硬件的协同设计技术。)软、硬件的协同设计技术。(2)IP模块复用技术。模块复用技术。(3)模块以及模块界面间的综合分析和验证技术。)模块以及模块界面间的综合分析和验证技术。302.2.1软硬件协同设计的发展背景与过程软硬件协同设计的背景2.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展背景与过程l软硬件协同设计的发展过程软硬件协同设计的发展过程1.嵌入式系统设计早期,主要有两种方式嵌入式系统设计早期,主要有两种方式(1)针对一个特定的硬件进行软件开发,是一个软件开发问题。针对一个特定的硬件进行软件开发,是一个软件开发问题。(2)根据一个已有的软件实现其具体的硬件结构根据一个已有的软件实现其具体的硬件结构,是一个软,是一个软件固化的问题。件固化的问题。312.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展2.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展背景与过程l软硬件协同设计的发展过程软硬件协同设计的发展过程早期两种方式的缺陷早期两种方式的缺陷没有统一的软硬件协同表示方法,从而不能自动地进行不同没有统一的软硬件协同表示方法,从而不能自动地进行不同的软硬件划分,并对不同的划分进行评估。的软硬件划分,并对不同的划分进行评估。不能从系统级进行验证,不容易发现软硬件边界的兼容问题。不能从系统级进行验证,不容易发现软硬件边界的兼容问题。322.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展2.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展背景与过程l软硬件协同设计的发展过程软硬件协同设计的发展过程2.软硬件协同设计:软硬件协同设计:采用软硬件协同设计后,从系统功能描述开始,将软硬件完采用软硬件协同设计后,从系统功能描述开始,将软硬件完成的功能作全盘考虑并进行均衡;成的功能作全盘考虑并进行均衡;在设计空间搜索技术的支持下,设计出不同的软硬件体系结在设计空间搜索技术的支持下,设计出不同的软硬件体系结构并进行评估,最终找到较理想的目标系统的软硬件体系结构并进行评估,最终找到较理想的目标系统的软硬件体系结构;构;然后使用软硬件划分理论进行软硬件划分并设计实现。然后使用软硬件划分理论进行软硬件划分并设计实现。可以从根本解决了早期嵌入式系统设计的缺陷和不足。可以从根本解决了早期嵌入式系统设计的缺陷和不足。332.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展2.2.2软硬件协同设计流程软硬件协同设计流程l软硬件协同设计,包括以下嵌入式系统的开发软硬件协同设计,包括以下嵌入式系统的开发过程过程(1)嵌入式系统的需求获取与需求分析;)嵌入式系统的需求获取与需求分析;(2)软硬件功能划分,设计系统的体系结构:选择处理器和)软硬件功能划分,设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;体系统集成;(3)硬件的结构设计、软件的系统设计;)硬件的结构设计、软件的系统设计;(4)软硬件详细设计;)软硬件详细设计;(5)软件代码开发,软件测试与调试;)软件代码开发,软件测试与调试;(6)软硬件的联调和系统集成;)软硬件的联调和系统集成;(7)系统的仿真验证和测试;)系统的仿真验证和测试;(8)实现最终系统。)实现最终系统。342.2.2软硬件协同设计流程软硬件协同设计,包括以下嵌入式系2.2.2软硬件协同设计流程软硬件协同设计流程352.2.2软硬件协同设计流程352.3需求分析和概要设计需求分析和概要设计 l2.3.1用户需求分析和确定项目约束条件用户需求分析和确定项目约束条件l2.3.2系统硬件和软件功能划分系统硬件和软件功能划分l2.3.3概要设计概要设计362.3需求分析和概要设计 2.3.1用户需求分析和确定项目约2.3.1用户需求分析和确定项目约束条件用户需求分析和确定项目约束条件l用户需求分为以下几个方面用户需求分为以下几个方面业务需求:从根本上体现了客户和产品开发商的根业务需求:从根本上体现了客户和产品开发商的根本利益,规定了客户或组织机构对产品高层次的目本利益,规定了客户或组织机构对产品高层次的目标要求。标要求。用户需求:规定了用户使用产品必须完成的任务。用户需求:规定了用户使用产品必须完成的任务。功能需求:规定了提供给用户使用的产品所具有的功能需求:规定了提供给用户使用的产品所具有的基本功能,以满足用户的业务需要。对于嵌入式产基本功能,以满足用户的业务需要。对于嵌入式产品而言,通过硬件功能、软件功能的规定来体现系品而言,通过硬件功能、软件功能的规定来体现系统整体将要完成的功能。统整体将要完成的功能。非功能需求:规定了产品面向用户所展现的外部或非功能需求:规定了产品面向用户所展现的外部或内部的属性,以及执行的操作等。内部的属性,以及执行的操作等。372.3.1用户需求分析和确定项目约束条件用户需求分为以下几个2.3.1用户需求分析和确定项目约束条件用户需求分析和确定项目约束条件l收集用户需求的过程中可能遇到的问题收集用户需求的过程中可能遇到的问题用户提出不符合实际的要求。用户提出不符合实际的要求。用户不能将隐含的用户需求提供给开发人员。用户不能将隐含的用户需求提供给开发人员。l如何解决这些问题如何解决这些问题对于那些客户提出的不切实际的要求,开发人员应该及时的对于那些客户提出的不切实际的要求,开发人员应该及时的指出。指出。要求有系统开发经验的开发人员尽可能多的提炼出用户隐含要求有系统开发经验的开发人员尽可能多的提炼出用户隐含的需求,并且以书面的方式提交用户检查,同意后双方签字的需求,并且以书面的方式提交用户检查,同意后双方签字表示认同。表示认同。382.3.1用户需求分析和确定项目约束条件收集用户需求的过程中2.3.1用户需求分析和确定项目约束条件用户需求分析和确定项目约束条件l对于嵌入式设备,比较关心的项目约束条件:对于嵌入式设备,比较关心的项目约束条件:性能:具体表现为系统的实时性,安全性,稳定性。性能:具体表现为系统的实时性,安全性,稳定性。体积和重量体积和重量成本成本能耗能耗其他:包括系统的完成时间、用户界面等。其他:包括系统的完成时间、用户界面等。392.3.1用户需求分析和确定项目约束条件对于嵌入式设备,比较2.3.2系统硬件和软件功能划分系统硬件和软件功能划分l软硬件功能的划分目的:就是确定系统功能哪软硬件功能的划分目的:就是确定系统功能哪一部分由硬件实现,那一部分由软件实现。一部分由硬件实现,那一部分由软件实现。l通常一项基本的功能用软件可以实现,用硬件通常一项基本的功能用软件可以实现,用硬件设计的方法同样可以实现。设计的方法同样可以实现。硬件实现可以较好的保证系统实时的处理能力,但硬件实现可以较好的保证系统实时的处理能力,但是成本相对较高。是成本相对较高。而软件为系统功能的实现提供了灵活的方式,并且而软件为系统功能的实现提供了灵活的方式,并且成本较低,但是系统响应时间不能得以保证。成本较低,但是系统响应时间不能得以保证。402.3.2系统硬件和软件功能划分软硬件功能的划分目的:就是确2.3.2系统硬件和软件功能划分系统硬件和软件功能划分l在进行系统软硬件功能划分时,应该协调的考虑系统在进行系统软硬件功能划分时,应该协调的考虑系统的性能,成本以及开发时间等要素,得到一个较合理的性能,成本以及开发时间等要素,得到一个较合理的划分方案。的划分方案。l在硬件和软件的划分阶段,通过逐步细化设计,可以在硬件和软件的划分阶段,通过逐步细化设计,可以将软硬件体系结构逐步将软硬件体系结构逐步模块化模块化。采用软硬件协同设计。采用软硬件协同设计的方式,定义软件和硬件模块间的接口,实现软硬件的方式,定义软件和硬件模块间的接口,实现软硬件模块间的相互通信。模块间的相互通信。412.3.2系统硬件和软件功能划分在进行系统软硬件功能划分时,2.3.3概要设计概要设计l概要设计需要完成的任务概要设计需要完成的任务总体设计。总体设计。接口设计。接口设计。数据结构设计。数据结构设计。运行设计。运行设计。出错设计。出错设计。l概要设计应该遵循以下的设计理念概要设计应该遵循以下的设计理念 逐步细化,定性和定量相结合,分解和协调以及系统逐步细化,定性和定量相结合,分解和协调以及系统模型化。模型化。422.3.3概要设计概要设计需要完成的任务422.4详细设计详细设计2.4.1确定系统体系结构确定系统体系结构2.4.2硬件与软件的选型硬件与软件的选型2.4.3微处理器选型和外围接口电路设计微处理器选型和外围接口电路设计2.4.4嵌入式操作系统的选择嵌入式操作系统的选择432.4详细设计2.4.1确定系统体系结构432.4.1确定系统体系结构确定系统体系结构l确定系统的体系结构,可以为整个系统构架提供基本确定系统的体系结构,可以为整个系统构架提供基本的计划,为以后设计出系统软硬件的各项构件做充分的计划,为以后设计出系统软硬件的各项构件做充分的准备。的准备。l系统体系结构的设计应该着眼于系统功能的实现,同系统体系结构的设计应该着眼于系统功能的实现,同时不应该过多地拘泥于具体的系统设计细节。时不应该过多地拘泥于具体的系统设计细节。442.4.1确定系统体系结构确定系统的体系结构,可以为整个系统2.4.1确定系统体系结构确定系统体系结构l嵌入式设备而言,系统包含两种体系结构:嵌入式设备而言,系统包含两种体系结构:硬件体系结构硬件体系结构软件体系结构。软件体系结构。l进行系统体系结构设计时应该考虑因素进行系统体系结构设计时应该考虑因素完整性以及软件和硬件间的对应完整性以及软件和硬件间的对应 系统的体系结构的设计是否能够满足用户需求系统的体系结构的设计是否能够满足用户需求 452.4.1确定系统体系结构嵌入式设备而言,系统包含两种体系结2.4.1确定系统体系结构确定系统体系结构l举例:银行自动排队机系统举例:银行自动排队机系统l用户交互功能表现为用户交互界面用户交互功能表现为用户交互界面l系统打印功能表现为打印输出系统打印功能表现为打印输出462.4.1确定系统体系结构举例:银行自动排队机系统462.4.2硬件与软件的选型硬件与软件的选型l嵌入式系统硬件和软件嵌入式系统硬件和软件l硬件架构上以嵌入式处理器为中心,配置存储器、硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设设备、通信模块等必要的外设 l软件部分以软件开发平台为核心,向上提供应用编程软件部分以软件开发平台为核心,向上提供应用编程接口(接口(API),向下屏蔽具体硬件特性的板级支持包),向下屏蔽具体硬件特性的板级支持包(BSP)472.4.2硬件与软件的选型嵌入式系统硬件和软件472.4.2硬件与软件的选型硬件与软件的选型l硬件平台的选择硬件平台的选择 l芯片的选择:芯片的选择:ARM,MIPS l异常信号的处理能力和功能扩展异常信号的处理能力和功能扩展l以软件替代硬件以软件替代硬件 482.4.2硬件与软件的选型硬件平台的选择 482.4.2硬件与软件的选型硬件与软件的选型l嵌入式操作系统的选择嵌入式操作系统的选择 商用型的实时操作系统功能稳定、可靠,有完善的技商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。术支持和售后服务,但往往价格昂贵。免费型的实时操作系统在价格方面具有优势,目前主免费型的实时操作系统在价格方面具有优势,目前主要有要有Linux和和COS。需要考虑以下几点:需要考虑以下几点:操作系统的硬件支持;操作系统的硬件支持;开发工具的支持程度;开发工具的支持程度;能否满足应用需求。能否满足应用需求。492.4.2硬件与软件的选型嵌入式操作系统的选择 492.4.2硬件与软件的选型硬件与软件的选型l仿真器和调试器的选择仿真器和调试器的选择 嵌入式系统开发调试方法有快速原型仿真法和实时在嵌入式系统开发调试方法有快速原型仿真法和实时在线调试法线调试法。快速原型仿真法用于硬件设备尚未完成时,直接在宿主机上快速原型仿真法用于硬件设备尚未完成时,直接在宿主机上对应用程序运行进行仿真分析。对应用程序运行进行仿真分析。实时在线调试法在具体的目标机平台上调试应用程序。实时在线调试法在具体的目标机平台上调试应用程序。选用的调试器应该支持用户观察或修改嵌入式处理器选用的调试器应该支持用户观察或修改嵌入式处理器的寄存器和存储器配置、数据变量的类型和数值,堆的寄存器和存储器配置、数据变量的类型和数值,堆栈和寄存器的使用,支持程序断点设置,单步、断点栈和寄存器的使用,支持程序断点设置,单步、断点或者全速运行等特性。或者全速运行等特性。502.4.2硬件与软件的选型仿真器和调试器的选择 502.4.3微处理器选型和外围接口电路设计微处理器选型和外围接口电路设计l微处理器选型微处理器选型l确定内核:嵌入式处理器内核主要取决于应用的领域、确定内核:嵌入式处理器内核主要取决于应用的领域、用户的需求、成本问题、开发的难易程度等因素。用户的需求、成本问题、开发的难易程度等因素。l外围设备接口:确定了使用的嵌入式处理器内核以后,外围设备接口:确定了使用的嵌入式处理器内核以后,接着综合实际情况,考虑系统外围设备的需求情况,接着综合实际情况,考虑系统外围设备的需求情况,选择一款合适的处理器。选择一款合适的处理器。l还要考虑处理器的寻址空间,有没有片上的还要考虑处理器的寻址空间,有没有片上的Flash存存储器,处理器是否容易调试,仿真调试工具的成本和储器,处理器是否容易调试,仿真调试工具的成本和易用性等相关的信息。易用性等相关的信息。512.4.3微处理器选型和外围接口电路设计微处理器选型512.4.3微处理器选型和外围接口电路设计微处理器选型和外围接口电路设计l微处理器选型微处理器选型开发人员选择面向具体应用,不同领域的应用市场需开发人员选择面向具体应用,不同领域的应用市场需要不同款式和性能指标的处理器的两个前提条件:要不同款式和性能指标的处理器的两个前提条件:一是深入研究具体的嵌入式系统应用需求。一是深入研究具体的嵌入式系统应用需求。二是分析研究市场上各大厂商提供的各款嵌入式处理器的性二是分析研究市场上各大厂商提供的各款嵌入式处理器的性能指标。能指标。除此之外,还需要考虑开发人员对此系列处理器的熟悉程度。除此之外,还需要考虑开发人员对此系列处理器的熟悉程度。522.4.3微处理器选型和外围接口电路设计微处理器选型522.4.3微处理器选型和外围接口电路设计微处理器选型和外围接口电路设计l系统外围设备的需求系统外围设备的需求(1)总线的需求;)总线的需求;(2)有没有通用串行接口;)有没有通用串行接口;(3)是否需要)是否需要USB总线;总线;(4)有没有以太网接口;)有没有以太网接口;(5)系统内部是否需要)系统内部是否需要IIC总线、总线、SPI总线;总线;(6)音频)音频DA连接的连接的IIS总线;总线;(7)外设接口;)外设接口;(8)系统是否需要)系统是否需要AD或者或者DA转换器;转换器;(9)系统是否需要)系统是否需要IO控制接口。控制接口。532.4.3微处理器选型和外围接口电路设计系统外围设备的需求52.4.3微处理器选型和外围接口电路设计微处理器选型和外围接口电路设计l外围接口电路设计外围接口电路设计 嵌入式外围接口电路设计中,要注意区分处理器芯片引脚的嵌入式外围接口电路设计中,要注意区分处理器芯片引脚的类型,仔细分析研究关键引脚作用。类型,仔细分析研究关键引脚作用。举例:以举例:以ARM内核嵌入式微处理器为中心,具有完全相配接内核嵌入式微处理器为中心,具有完全相配接的的Flash电路、电路、SDRAM电路、电路、JTAG电路、电源电路、晶振电路、电源电路、晶振电路、复位信号电路和系统总线扩展等,保证嵌入式微处理电路、复位信号电路和系统总线扩展等,保证嵌入式微处理器正常运行的系统。其硬件如下:(器正常运行的系统。其硬件如下:(1)微处理器;()微处理器;(2)电)电源电路;(源电路;(3)晶振电路;()晶振电路;(4)Flash存储器;存储器;(5)SDRAM存储器;(存储器;(6)串行接口;()串行接口;(7)JTAG接口;接口;(8)系统总线扩展。)系统总线扩展。542.4.3微处理器选型和外围接口电路设计外围接口电路设计 52.4.4嵌入式操作系统的选择嵌入式操作系统的选择l嵌入式操作系统选型的原则嵌入式操作系统选型的原则 进入市场时间。进入市场时间。可移植性。可移植性。可利用资源。可利用资源。系统定制能力。系统定制能力。成本。成本。中文内核支持。中文内核支持。552.4.4嵌入式操作系统的选择嵌入式操作系统选型的原则 552.4.4嵌入式操作系统的选择嵌入式操作系统的选择l几种代表性嵌入式操作系统几种代表性嵌入式操作系统 Windows CE 嵌入式嵌入式Linux VxWorks C/OS一一 562.4.4嵌入式操作系统的选择几种代表性嵌入式操作系统 562.5实现阶段实现阶段2.5.1软件与硬件系统的实现软件与硬件系统的实现 2.5.2 嵌入式系统的调试嵌入式系统的调试572.5实现阶段2.5.1软件与硬件系统的实现 572.5.1软件与硬件系统的实现软件与硬件系统的实现l嵌入式系统软件的特点及其开发途径嵌入式系统软件的特点及其开发途径 嵌入式系统软件的特点是软件复杂程度的多样性。嵌入式系统软件的特点是软件复杂程度的多样性。简单系统可以用传统方法,从底层用汇编语言编写程序,简单系统可以用传统方法,从底层用汇编语言编写程序,利用在线仿真器利用在线仿真器(ICE)、在线调试器、在线调试器(ICD)等开发工具进行等开发工具进行调试软件。调试软件。复杂的嵌入式系统,需要利用实时操作系统和嵌入式系统复杂的嵌入式系统,需要利用实时操作系统和嵌入式系统开发平台进行开发。开发平台进行开发。开发嵌入式系统软件,需要针对不同的硬件编写实时操作开发嵌入式系统软件,需要针对不同的硬件编写实时操作系统内核移植代码。通过编译、链接、定址将操作系统映系统内核移植代码。通过编译、链接、定址将操作系统映像固化到像固化到EPROM或者或者Flash中。中。582.5.1软件与硬件系统的实现嵌入式系统软件的特点及其开发途2.5.1软件与硬件系统的实现软件与硬件系统的实现l软件编程接口规范和标准化软件编程接口规范和标准化 高级语言和汇编语言模块化:为了使系统具有高的可移植性,高级语言和汇编语言模块化:为了使系统具有高的可移植性,尽量使用尽量使用C或者或者Embedded C+来开发系统软件。来开发系统软件。模块化:将系统功能分成模块。模块设定的合理方法是:根模块化:将系统功能分成模块。模块设定的合理方法是:根据硬件能力,自下而上的综合。据硬件能力,自下而上的综合。提供标准接口:提供了提供标准接口:提供了POSIX 1003.1规范的操作系统就具有规范的操作系统就具有了了UNIX系统的标准接口。符合软件应用编程接口系统的标准接口。符合软件应用编程接口(API)规范,规范,就可以比较容易地移植就可以比较容易地移植UNIX系统的应用软件。系统的应用软件。严格的体系结构层次:按层次划分,依次是应用软件严格的体系结构层次:按层次划分,依次是应用软件操作操作系统系统功能级抽象功能级抽象寄存器级抽象寄存器级抽象硬件。硬件。592.5.1软件与硬件系统的实现软件编程接口规范和标准化 592.5.1软件与硬件系统的实现软件与硬件系统的实现l应用开发应用开发 嵌入式开发过程中有宿主机和目标机的角色之分嵌入式开发过程中有宿主机和目标机的角色之分宿主机是执行编译、链接、定址过程的计算机;宿主机是执行编译、链接、定址过程的计算机;目标机指运行嵌入式软件的硬件平台。目标机指运行嵌入式软件的硬件平台。首先须把应用程序转换成可以在目标机上运行的二进首先须把应用程序转换成可以在目标机上运行的二进制代码。制代码。其次调试目标机上的应用程序。其次调试目标机上的应用程序。嵌入式调试采用交叉调试器,一般采用宿主机嵌入式调试采用交叉调试器,一般采用宿主机-目标机的调试目标机的调试方式。调试时需将宿主机上的应用程序和操作系统内核下载方式。调试时需将宿主机上的应用程序和操作系统内核下载到目标机的到目标机的RAM中或直接烧录到目标机的中或直接烧录到目标机的ROM或者或者FLASH中中。602.5.1软件与硬件系统的实现应用开发 60宿主机和目标机宿主机和目标机61宿主机和目标机612.5.1软件与硬件系统的实现软件与硬件系统的实现l在在PC机上编写软件机上编写软件,然后进行软件的移植过,然后进行软件的移植过程中应该注意的问题程中应该注意的问题软件的可移植性,选用具有较高移植性的编程语言软件的可移植性,选用具有较高移植性的编程语言(如(如C语言)。语言)。尽量少调用操作系统函数。尽量少调用操作系统函数。注意屏蔽不同硬件平台带来的字节顺序、字节对齐注意屏蔽不同硬件平台带来的字节顺序、字节对齐 等。等。622.5.1软件与硬件系统的实现在PC机上编写软件,然后进行2.5.2 嵌入式系统的调试嵌入式系统的调试l调试方法一般分为软件和硬件调试两个方面调试方法一般分为软件和硬件调试两个方面硬件调试,是指使用某种仿真调试器来协助调试过硬件调试,是指使用某种仿真调试器来协助调试过程。程。软件调试,是指使用特定的软件调试器来调试嵌入软件调试,是指使用特定的软件调试器来调试嵌入式系统。式系统。632.5.2 嵌入式系统的调试调试方法一般分为软件和硬件调试两2.5.2 嵌入式系统的调试嵌入式系统的调试l硬件调试硬件调试 可以获得比软件调试功能优良得多的调试性能,仿真硬件的可以获得比软件调试功能优良得多的调试性能,仿真硬件的真正执行过程。真正执行过程。硬件调试器主要有两大类:硬件调试器主要有两大类:ICE(In-Circuit Emulator):):ICE是完全仿造调试目标是完全仿造调试目标CPU设设计的仪器,它可以真正的运行计的仪器,它可以真正的运行CPU的动作,并且可以在使用的的动作,并且可以在使用的内存上设置非常多的硬中断点,实时察看所需要的数据。内存上设置非常多的硬中断点,实时察看所需要的数据。ICD(In-Circuit Debugger):使用):使用ICD和目标板的调试端口连和目标板的调试端口连接,发送调试命令和接受返回的调试信息可以完成相应的调试接,发送调试命令和接受返回的调试信息可以完成相应的调试功能。功能。642.5.2 嵌入式系统的调试硬件调试 642.5.2 嵌入式系统的调试嵌入式系统的调试l软件调试软件调试 l应用程序的调试:使用本地调试器和远程调试器两种应用程序的调试:使用本地调试器和远程调试器两种方法。将需要的调试器移植到该系统中,在目标板上方法。将需要的调试器移植到该系统中,在目标板上运行调试器调试应用程序运行调试器调试应用程序。l内核调试:调试比较困难,只能使用远程调试方法,内核调试:调试比较困难,只能使用远程调试方法,通过串口和操作系统中内置的调试桩(通过串口和操作系统中内置的调试桩(Stub)进行通)进行通信来完成调试。信来完成调试。652.5.2 嵌入式系统的调试软件调试 652.5.2 嵌入式系统的调试嵌入式系统的调试l按照使用的设备,嵌入式系统的调试方式也可按照使用的设备,嵌入式系统的调试方式也可分为以下几种分为以下几种 仿真器方式仿真器方式 监控器方式监控器方式 源程序模拟方式源程序模拟方式 662.5.2 嵌入式系统的调试按照使用的设备,嵌入式系统的调试2.6测试阶段测试阶段l2.6.1 嵌入式软件测试方法嵌入式软件测试方法l2.6.2 嵌入式软件测试工具嵌入式软件测试工具l2.6.3 嵌入式软件测试过程嵌入式软件测试过程l2.6.4 cross-test测试策略测试策略672.6测试阶段2.6.1 嵌入式软件测试方法672.6.1 嵌入式软件测试方法嵌入式软件测试方法l嵌入式软件测试也可叫做交叉测试,具体的软件测试嵌入式软件测试也可叫做交叉测试,具体的软件测试过程如图过程如图 682.6.1 嵌入式软件测试方法嵌入式软件测试也可叫做交叉测试2.6.1 嵌入式软件测试方法嵌入式软件测试方法l软件测试方法有不同的划分方法。软件测试方法有不同的划分方法。从软件开发过程中测试所处的不同阶段可分为模块从软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试。测试、集成测试和系统测试。根据是否需要运行目标代码分为动态测试和静态测根据是否需要运行目标代码分为动态测试和静态测试。试。根据目标代码的可见性可分为白盒测试(结构测试)根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)。和黑盒测试(功能测试)。692.6.1 嵌入式软件测试方法软件测试方法有不同的划分方法。2.6.1 嵌入式软件测试方法嵌入式软件测试方法l白盒测试与黑盒测试白盒测试与黑盒测试白盒测试或基本代码的测试检查程序的内部设计。根据源代白盒测试或基本代码的测试检查程序的内部设计。根据源代码的组织结构查找软件缺陷,一股要求测试人员对软件的结码的组织结构查找软件缺陷,一股要求测试人员对软件的结构和作用有详细的了解。构和作用有详细的了解。黑盒测试在某些情况下也称为功能测试。这黑盒测试在某些情况下也称为功能测试。这类类测试方法根据测试方法根据软件的用途和外部特征查找软件缺陷,不需要了解程序的内软件的用途和外部特征查找软件缺陷,不需要了解程序的内部结构。部结构。702.6.1 嵌入式软件测试方法白盒测试与黑盒测试702.6.1 嵌入式软件测试方法嵌入式软件测试方法l目标环境测试和宿主环境测试目标环境测试和宿主环境测试 在嵌入式软件测试中,常常要在基于目标的测试和基于宿主的在嵌入式软件测试中,常常要在基于目标的测试和基于宿主的测试之间作出折衷。基于目标的测试消耗较多的经费和时间,测试之间作出折衷。基于目标的测试消耗较多的经费和时间,而基于宿主的测试代价较小。而基于宿主的测试代价较小。在宿主环境中,可以进行逻辑界面的测试、与硬件无关的测试。在宿主环境中,可以进行逻辑界面的测试、与硬件无关的测试。在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工具可以更快地完成调试和测试任务。具可以更快地完成调试和测试任务。与定时问题有关的白盒测试、中断测试、硬件接口测试只能在与定时问题有关的白盒测试、中断测试、硬件接口测试只能在目标环境中进行。目标环境中进行。712.6.1 嵌入式软件测试方法目标环境测试和宿主环境测试 72.6.2 嵌入式软件测试工具嵌入式软件测试工具l比较有用的有关嵌入式软件测试工具比较有用的有关嵌入式软件测试工具 内存分析工具:用来处理在动态内存分配中存在的缺陷。内存分析工具:用来处理在动态内存分配中存在的缺陷。性能分析工具:会提供有关的数据,说明执行时间是如何消耗性能分析工具:会提供有关的数据,说明执行时间是如何消耗的,是什么时候消耗的,以及每个例程所用的时间。的,是什么时候消耗的,以及每个例程所用的时间。GUI测试工具:可以作为脚本工具在开发环境中运行测试用例测试工具:可以作为脚本工具在开发环境中运行测试用例,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。和比较、设置和管理测试过程。覆盖分析工具覆盖分析工具:使用代码覆盖分析工具追踪哪些代码被执行:使用代码覆盖分析工具追踪哪些代码被执行过。过。722.6.2 嵌入式软件测试工具比较有用的有关嵌入式软件测试工2.6.3 嵌入式软件测试过程嵌入式软件测试过程l软件测试分为软件测试分为7个基本阶段个基本阶段单元或模块测试单元或模块测试集成测试集成测试外部功能测试外部功能测试回归测试回归测试系统测试系统测试验收测试验收测试安装测试。安装测试。l嵌入式软件测试主要在嵌入式软件测试主要在4个阶段上进行,即模块测试、个阶段上进行,即模块测试、集成测试、系统测试、硬件集成测试、系统测试、硬件/软件集成测试。软件集成测试。l前前3个阶段适用于任何软件的测试,而硬件个阶段适用于任何软件的测试,而硬件/软件集成软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。软件与其所控制的硬件设备能否正确地交互。732.6.3 嵌入式软件测试过程软件测试分为7个基本阶段732.6.4 cross-test测试策略测试策略l进行进行Cross-test测试时应该注意的策略测试时应该注意的策略(1)使用测试工具的插装功能(主机环境)执行静)使用测试工具的插装功能(主机环境)执行静 态测态测试分析,并且为动态覆盖测试准备好一插装好的软件代码。试分析,并且为动态覆盖测试准备好一插装好的软件代码。(2)使用源码在主机环境执行功能测试,修正软件的错误)使用源码在主机环境执行功能测试,修正软件的错误和测试脚本中的错误。和测试脚本中的错误。(3)使用插装后的软件代码执行覆盖率测试,添加测试用)使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。例或修正软件的错误,保证达到所要求的覆盖率目标。(4)在目标环境下重复,确认软件在目标环境中执行测试)在目标环境下重复,确认软件在目标环境中执行测试的正确性。的正确性。(5)若测试需要达到极端的完整性,最好在目标系统上重)若测试需要达到极端的完整性,最好在目标系统上重复(复(3),确定软件的覆盖率没有改变。),确定软件的覆盖率没有改变。742.6.4 cross-test测试策略进行Cross-teEnd of Unit 275End of Unit 275
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!