




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章嵌入式系统的设计方法第2章嵌入式系统的设计方法12.1嵌入式系统的一般设计流程一、单片机系统图2.1单片机系统的开发流程单片机系统主要用于实现相对简单的控制,因此系统核心部件集成在一块芯片——单片机上,再在单片机的外围加入一些接口电路即可。单片机系统设计相对比较简单,软件部分不需要嵌入式操作系统的支持,只需采用汇编语言编写针对特定应用的程序即可。
2.1嵌入式系统的一般设计流程一、单片机系统图2.12二、嵌入式处理器系统图2.2嵌入式处理器系统开发流程嵌入式处理器系统往往包含CPU、内存和丰富的外部接口,其开发过程类似在PC机上开发应用程序。开发流程的第一步是选择嵌入式处理器和硬件平台。软件部分一般包含操作系统,开发人员基于此编写相应的应用程序即可,这可大大地简化开发过程,提高系统的稳定性。
二、嵌入式处理器系统图2.2嵌入式处理器系统开发流程嵌入3二、嵌入式处理器系统开发方式嵌入式处理器系统的开发过程一般包括以下几个步骤:源代码编写:编写源C/C++及汇编程序;程序编译:通过专用编译器编译程序;软件仿真调试:在SDK中仿真软件运行情况;程序下载:通过JTAG/USB/UART等方式下载到目标机;软硬件测试、调试:通过JTAG等方式联合调试程序;下载固化:程序无误,下载到目标板。二、嵌入式处理器系统开发方式嵌入式处理器系统的开发过程一般包4二、嵌入式处理器系统嵌入式处理器系统设计的关键问题
(1)嵌入式处理器的选型
够用适用成本功耗软件开发工具是否内置调试工具是否提供评估板处理器的选型直接影响存储器、外设的选择。一般从以下几个因素考虑:二、嵌入式处理器系统嵌入式处理器系统设计的关键问题(1)嵌入5(2)操作系统的选择
操作系统的移植操作系统的内存要求操作系统的实时性支持的开发工具操作系统的可裁剪性开发人员是否熟悉此操作系统及其提供的API操作系统是否提供硬件的驱动程序,如网卡等从八十年代起,国际上就有一些IT组织、公司,开始致力于嵌入式操作系统的研发,现已涌现了一批优秀的操作系统。如何从众多的嵌入式操作系统中选取合适的操作系统?可以考查以下几个方面:(2)操作系统的选择操作系统的移植从八十年代6人们在选择编程语言时往往具有很大的随意性。对价格、获取方便性等因素考虑较多,而对语言本身的技术因素考虑较少。在此就目前应用广泛几种高级语言:Ada、C/C++、Modula-2和JAVA等进行简单的分析比较。
Ada语言定义严格,易读易懂,有较丰富的库程序支持,由于它和运行环境联系较少,因此其运行特性比较出色。C语言具有广泛的库程序支持,现在是嵌入式系统设计中应用最广泛的语言。C++是一种面向对象的编程语言,应用也很多,但与C语言相比,C++编写的程序目标代码往往比较庞大和复杂。Modula-2定义清楚,支持丰富,具备较好的模块化结构,在教学科研方面有较广泛的应用。Java语言相对年轻,但有很强的跨平台特性,现在发展势头较为强劲。(3)编程语言的选取
人们在选择编程语言时往往具有很大的随意性。对价72.2传统的嵌入式系统设计方法图2.4传统的嵌入式系统设计方法2.2传统的嵌入式系统设计方法图2.4传统的嵌入式系统设8传统设计方法存在的缺陷传统的嵌入式系统设计方法虽然简单,但存在一些不可避免的缺陷:1)设计方法缺乏统一的软硬件协同表示方法,软硬件划分完全由设计者凭经验完成,无法从系统级验证划分的合理性,且不易发现软硬件之间存在的接口问题。2)在实际的设计过程中,通常采用“硬件优先的原则”,因此软件的测试必须在硬件全部完成之后才能进行,这样设计周期可能很长。3)由于硬件设计在粗略估计软件任务需求的情况下进行,缺乏对软件构架和实现机制的清晰了解,硬件设计工作带有一定的盲目性。4)整个系统的优化由于受设计空间的限制,只能改善硬件和软件各自的性能,不可能对系统做出较好的综合优化,难以适应现代复杂的、大规模的系统设计需要。传统设计方法存在的缺陷传统的嵌入式系统设计方法虽9图2.5嵌入式系统的软硬件协同设计流程2.3嵌入式系统的软硬件协同设计方法图2.5嵌入式系统的软硬件协同设计流程2.3嵌入式系统的10嵌入式系统软硬件协同设计流程设计流程总体上可分为系统描述、软硬件划分、协同综合、协同仿真与验证、系统集成几个过程。(1)系统描述系统描述是采用一种或多种系统级描述语言对所需设计的嵌入式系统的功能和性能进行全面的描述,是建立系统软硬件模型的过程。系统建模可以由设计者用非正式语言,甚至是自然语言手工完成,但手工完成容易导致系统描述不准确,而选用合适的建模语言将对设计起到事半功倍的效果。UML(UnifiedModelingLanguage)语言是一种功能强大的可视化建模语言。它将模型中的信息用标准图形元素直观地显示,使具有不同技术背景的开发人员和设计师可以较好地交流。嵌入式系统软硬件协同设计流程设计流程总体上可11(2)软硬件划分软硬件功能划分就是要确定哪些系统功能由硬件实现,哪些功能由软件实现。从理论上讲,每个应用系统都存在一个适合于该软硬件功能的最佳组合,但如何从系统需求出发,依据一定的指导原则和分配算法对硬件/软件功能进行合理划分,从而使系统的整体性能达到最佳,是软硬件划分的目标所在。(3)协同综合软硬件协同综合是根据系统描述和软硬件划分的结果,在已有的设计规则和既定的设计目标前提下,决定系统中软件和硬件部分以及其接口的具体实现方法,并将其集成。
(2)软硬件划分12(4)协同仿真与验证协同仿真验证是检验系统设计正确性的过程。它对设计结果的正确性进行评估,以避免在系统实现过程中发现问题再进行反复修改。由于系统仿真验证的过程中,模拟的工作环境与实际使用环境相差甚远,软硬件之间的相互作用方式及作用效果也就不同,这就难以保证系统在真实环境下工作的可靠性,因此系统仿真的有效性是有限的。目前,软硬件协同设计领域的研究十分活跃,Berkeley,Princeton等著名大学有专门的研究小组进行相关研究,电子设计领域权威的学术会议DAC上每年都有相当篇幅的论文涉及软硬件协同设计,每年ACM还召开软硬件协同设计的专门会议CODES。主要EDA厂家(Cadence,Synopsys)目前己经推出部分支持软硬件协同设计的工具,并将软硬件协同设计作为下一代的系统级EDA工具的关键技术。(4)协同仿真与验证目前,软硬件协同设计领域的研13软硬件协同设计的特点(1)软硬件协同设计采用统一的工具描述,可合理划分系统软硬件,分配系统功能,在性能、成本、功耗等方面进行权衡折衷,获取更优化的设计。(2)软硬件协同设计方法采用并行设计和协同设计的思想,提高了设计效率,缩短了设计周期。(3)在系统级设计中,对软硬件部分使用统一描述语言和工具进行集成开发,具有跨越软硬件界限进行系统优化的能力。(4)支持多领域专家的协同开发。它的核心思想是沟通软件设计和硬件设计,避免系统中关系密切的两部分设计过早独立。同传统设计方法相比,软硬件协同设计提高了设计抽象的层次,拓展了设计的覆盖范围,采用软硬件协同设计技术可以使嵌入式系统设计更好和更快。软硬件协同设计的特点(1)软硬件协同设计采用统一的工具描述142.4嵌入式系统的测试技术嵌入式系统测试也叫交叉测试(cross-test),它与PC机的软件测试有相似之处。目前,在嵌入式系统设计中软件正越来越多地取代硬件,以降低系统成本,获得更大的灵活性,这就需要使用更好的测试方法和工具进行嵌入式实时软件的测试。2.4嵌入式系统的测试技术嵌入式系统测试也叫15一、嵌入式软件的测试方法(1)白盒测试与黑盒测试白盒测试检查程序的内部设计,它要求根据源代码的组织结构查找软件缺陷。由于嵌入式系统高可靠性的要求,嵌入式软件测试与普通软件测试相比,通常要求有更高的代码覆盖率。
黑盒测试根据软件的用途和外部特征查找软件缺陷。嵌入式软件的黑盒测试要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。为了保证正确地测试,还须要检验软硬件之间的接口。
一、嵌入式软件的测试方法(1)白盒测试与黑盒测试16(2)目标环境测试和宿主环境测试在嵌入式软件测试中,常常要在基于目标的测试和基于宿主的测试之间作出折衷。基于目标的测试消耗较多的经费和时间,而基于宿主的测试代价较小,目前的趋势是把更多的测试转移到宿主环境中进行。在宿主环境中,可以进行逻辑或界面的测试、以及与硬件无关的测试。在目标环境中,则进行与定时问题有关的白盒测试、中断测试、硬件接口测试。(2)目标环境测试和宿主环境测试在嵌入式软件测17二、嵌入式软件的测试工具(1)内存分析工具内存分析工具用来处理在动态内存分配中存在的缺陷。目前有两类内存分析工具——软件和硬件的。基于软件的内存分析工具可能会对代码的性能造成很大影响,从而严重影响实时操作;基于硬件的内存分析工具价格昂贵,而且只能在工具所限定的运行环境中使用。(2)性能分析工具性能分析工具会提供有关的数据,说明执行时间是如何消耗的,是什么时候消耗的,以及每个例程所用的时间。二、嵌入式软件的测试工具(1)内存分析工具内存18(3)GUI测试工具GUI测试工具可以作为脚本工具在开发环境中运行测试用例,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。有些嵌入式设备没有GUI,但常常可以对该设备进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是节省了功能测试和回归测试的时间。(4)覆盖分析工具在进行白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过。覆盖分析工具一般会提供有关功能覆盖、分支覆盖、条件覆盖的信息。(3)GUI测试工具GUI测试工具可以作为脚本19三、嵌入式系统的测试策略嵌入式软件测试的各个阶段有着通用的策略:(1)单元测试所有单元级测试都可以在主机环境上进行,除非特别指定单元测试直接在目标环境进行。
(2)集成测试软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在目标环境上重复测试是有必要的,在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误。(3)系统测试和确认测试所有的系统测试和确认测试必须在目标环境下执行。三、嵌入式系统的测试策略嵌入式软件测试的各个阶20第2章嵌入式系统的设计方法第2章嵌入式系统的设计方法212.1嵌入式系统的一般设计流程一、单片机系统图2.1单片机系统的开发流程单片机系统主要用于实现相对简单的控制,因此系统核心部件集成在一块芯片——单片机上,再在单片机的外围加入一些接口电路即可。单片机系统设计相对比较简单,软件部分不需要嵌入式操作系统的支持,只需采用汇编语言编写针对特定应用的程序即可。
2.1嵌入式系统的一般设计流程一、单片机系统图2.122二、嵌入式处理器系统图2.2嵌入式处理器系统开发流程嵌入式处理器系统往往包含CPU、内存和丰富的外部接口,其开发过程类似在PC机上开发应用程序。开发流程的第一步是选择嵌入式处理器和硬件平台。软件部分一般包含操作系统,开发人员基于此编写相应的应用程序即可,这可大大地简化开发过程,提高系统的稳定性。
二、嵌入式处理器系统图2.2嵌入式处理器系统开发流程嵌入23二、嵌入式处理器系统开发方式嵌入式处理器系统的开发过程一般包括以下几个步骤:源代码编写:编写源C/C++及汇编程序;程序编译:通过专用编译器编译程序;软件仿真调试:在SDK中仿真软件运行情况;程序下载:通过JTAG/USB/UART等方式下载到目标机;软硬件测试、调试:通过JTAG等方式联合调试程序;下载固化:程序无误,下载到目标板。二、嵌入式处理器系统开发方式嵌入式处理器系统的开发过程一般包24二、嵌入式处理器系统嵌入式处理器系统设计的关键问题
(1)嵌入式处理器的选型
够用适用成本功耗软件开发工具是否内置调试工具是否提供评估板处理器的选型直接影响存储器、外设的选择。一般从以下几个因素考虑:二、嵌入式处理器系统嵌入式处理器系统设计的关键问题(1)嵌入25(2)操作系统的选择
操作系统的移植操作系统的内存要求操作系统的实时性支持的开发工具操作系统的可裁剪性开发人员是否熟悉此操作系统及其提供的API操作系统是否提供硬件的驱动程序,如网卡等从八十年代起,国际上就有一些IT组织、公司,开始致力于嵌入式操作系统的研发,现已涌现了一批优秀的操作系统。如何从众多的嵌入式操作系统中选取合适的操作系统?可以考查以下几个方面:(2)操作系统的选择操作系统的移植从八十年代26人们在选择编程语言时往往具有很大的随意性。对价格、获取方便性等因素考虑较多,而对语言本身的技术因素考虑较少。在此就目前应用广泛几种高级语言:Ada、C/C++、Modula-2和JAVA等进行简单的分析比较。
Ada语言定义严格,易读易懂,有较丰富的库程序支持,由于它和运行环境联系较少,因此其运行特性比较出色。C语言具有广泛的库程序支持,现在是嵌入式系统设计中应用最广泛的语言。C++是一种面向对象的编程语言,应用也很多,但与C语言相比,C++编写的程序目标代码往往比较庞大和复杂。Modula-2定义清楚,支持丰富,具备较好的模块化结构,在教学科研方面有较广泛的应用。Java语言相对年轻,但有很强的跨平台特性,现在发展势头较为强劲。(3)编程语言的选取
人们在选择编程语言时往往具有很大的随意性。对价272.2传统的嵌入式系统设计方法图2.4传统的嵌入式系统设计方法2.2传统的嵌入式系统设计方法图2.4传统的嵌入式系统设28传统设计方法存在的缺陷传统的嵌入式系统设计方法虽然简单,但存在一些不可避免的缺陷:1)设计方法缺乏统一的软硬件协同表示方法,软硬件划分完全由设计者凭经验完成,无法从系统级验证划分的合理性,且不易发现软硬件之间存在的接口问题。2)在实际的设计过程中,通常采用“硬件优先的原则”,因此软件的测试必须在硬件全部完成之后才能进行,这样设计周期可能很长。3)由于硬件设计在粗略估计软件任务需求的情况下进行,缺乏对软件构架和实现机制的清晰了解,硬件设计工作带有一定的盲目性。4)整个系统的优化由于受设计空间的限制,只能改善硬件和软件各自的性能,不可能对系统做出较好的综合优化,难以适应现代复杂的、大规模的系统设计需要。传统设计方法存在的缺陷传统的嵌入式系统设计方法虽29图2.5嵌入式系统的软硬件协同设计流程2.3嵌入式系统的软硬件协同设计方法图2.5嵌入式系统的软硬件协同设计流程2.3嵌入式系统的30嵌入式系统软硬件协同设计流程设计流程总体上可分为系统描述、软硬件划分、协同综合、协同仿真与验证、系统集成几个过程。(1)系统描述系统描述是采用一种或多种系统级描述语言对所需设计的嵌入式系统的功能和性能进行全面的描述,是建立系统软硬件模型的过程。系统建模可以由设计者用非正式语言,甚至是自然语言手工完成,但手工完成容易导致系统描述不准确,而选用合适的建模语言将对设计起到事半功倍的效果。UML(UnifiedModelingLanguage)语言是一种功能强大的可视化建模语言。它将模型中的信息用标准图形元素直观地显示,使具有不同技术背景的开发人员和设计师可以较好地交流。嵌入式系统软硬件协同设计流程设计流程总体上可31(2)软硬件划分软硬件功能划分就是要确定哪些系统功能由硬件实现,哪些功能由软件实现。从理论上讲,每个应用系统都存在一个适合于该软硬件功能的最佳组合,但如何从系统需求出发,依据一定的指导原则和分配算法对硬件/软件功能进行合理划分,从而使系统的整体性能达到最佳,是软硬件划分的目标所在。(3)协同综合软硬件协同综合是根据系统描述和软硬件划分的结果,在已有的设计规则和既定的设计目标前提下,决定系统中软件和硬件部分以及其接口的具体实现方法,并将其集成。
(2)软硬件划分32(4)协同仿真与验证协同仿真验证是检验系统设计正确性的过程。它对设计结果的正确性进行评估,以避免在系统实现过程中发现问题再进行反复修改。由于系统仿真验证的过程中,模拟的工作环境与实际使用环境相差甚远,软硬件之间的相互作用方式及作用效果也就不同,这就难以保证系统在真实环境下工作的可靠性,因此系统仿真的有效性是有限的。目前,软硬件协同设计领域的研究十分活跃,Berkeley,Princeton等著名大学有专门的研究小组进行相关研究,电子设计领域权威的学术会议DAC上每年都有相当篇幅的论文涉及软硬件协同设计,每年ACM还召开软硬件协同设计的专门会议CODES。主要EDA厂家(Cadence,Synopsys)目前己经推出部分支持软硬件协同设计的工具,并将软硬件协同设计作为下一代的系统级EDA工具的关键技术。(4)协同仿真与验证目前,软硬件协同设计领域的研33软硬件协同设计的特点(1)软硬件协同设计采用统一的工具描述,可合理划分系统软硬件,分配系统功能,在性能、成本、功耗等方面进行权衡折衷,获取更优化的设计。(2)软硬件协同设计方法采用并行设计和协同设计的思想,提高了设计效率,缩短了设计周期。(3)在系统级设计中,对软硬件部分使用统一描述语言和工具进行集成开发,具有跨越软硬件界限进行系统优化的能力。(4)支持多领域专家的协同开发。它的核心思想是沟通软件设计和硬件设计,避免系统中关系密切的两部分设计过早独立。同传统设计方法相比,软硬件协同设计提高了设计抽象的层次,拓展了设计的覆盖范围,采用软硬件协同设计技术可以使嵌入式系统设计更好和更快。软硬件协同设计的特点(1)软硬件协同设计采用统一的工具描述342.4嵌入式系统的测试技术嵌入式系统测试也叫交叉测试(cross-test),它与PC机的软件测试有相似之处。目前,在嵌入式系统设计中软件正越来越多地取代硬件,以降低系统成本,获得更大的灵活性,这就需要使用更好的测试方法和工具进行嵌入式实时软件的测试。2.4嵌入式系统的测试技术嵌入式系统测试也叫35一、嵌入式软件的测试方法(1)白盒测试与黑盒测试白盒测试检查程序的内部设计,它要求根据源代码的组织结构查找软件缺陷。由于嵌入式系统高可靠性的要求,嵌入式软件测试与普通软件测试相比,通常要求有更高的代码覆盖率。
黑盒测试根据软件的用途和外部特征查找软件缺陷。嵌入式软件的黑盒测试要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。为了保证正确地测试,还须要检验软硬件之间的接口。
一、嵌入式软件的测试方法(1)白盒测试与黑盒测试36(2)目标环境测试和宿主环境测试在嵌入式软件测试中,常常要在基于目标的测试和基于宿主的测试之间作出折衷。基于目标的测试消耗较多的经费和时间,而基于宿主的测试代价较小,目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024经济形势对投资的影响试题及答案
- 2024人力资源行业热点试题及答案
- 2024部编道德与法治七下第一单元《青春时光》中考真题汇编
- 黑龙江林业职业技术学院《数字营销传播案例解读》2023-2024学年第二学期期末试卷
- 黑龙江省哈尔滨三十二中2025届高三毕业班第十七模英语试题含解析
- 黑龙江省哈尔滨市巴彦县2025年三下数学期末学业质量监测模拟试题含解析
- 黑龙江省尚志中学2025届高三年级五校联考(一)物理试题含解析
- 黑龙江省牡丹江市重点中学2024-2025学年高三适应性月考(六)生物试题含解析
- 黑龙江省虎林市2025年高三二模热身考试历史试题试卷含解析
- 黑龙江省鹤岗市东山区2024-2025学年五年级数学第二学期期末质量跟踪监视试题含答案
- 电力工程线路交叉跨越施工主要工序及特殊工序施工方法
- 反恐防暴应急知识培训
- 2024-2030年版越南投资环境行业投资分析及未来发展规划研究报告
- 罗汉果行业深度研究与市场前景分析报告
- 2024年安防监控系统技术标准与规范
- 春节序曲 课件
- 七年级下学期生物苏教版电子教材
- 8.2-立体图形的直观图公开课教案教学设计课件案例试卷
- 《管理学-原理与方法》历年考试真题试题库(含答案)
- 2024年全国职业院校技能大赛(植物病虫害防治赛项)考试题库-上(单选题)
- 欧洲门窗标准
评论
0/150
提交评论