第二章 嵌入式系统的设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统描述
软硬件划分
协同综合
软件综合
接口综合
硬件综合
协同仿真/验证
系统集成与实现
18

设计流程总体上可分为:

系统描述
软硬件划分 协同综合 协同仿真与验证 系统集成
(1)系统描述 采用一种或多种系统级描述语言对所需设计的嵌入式 系统的功能和性能进行全面的描述,是建立系统软硬件模 型的过程。
第二章
本章知识点
嵌入式系统的设计方法
单片机系统
嵌入式处理器系统 传统的嵌入式系统开发方法 嵌入式系统描述与软硬件划分 嵌入式系统协同综合与协同仿真
嵌入式软件的测试方法
嵌入式软件的测试工具 嵌入式系统的测试策略
1 1

本讲导学

嵌入式系统的一般设计流程


传统的嵌入式系统设计方法
嵌入式系统的软硬件协同设计方法
目标机
JTAG仿真器
嵌入式处理器系统的开发方式 JTAG(Joint Test Action Group;联合测试工作组)是一种国际
标准测试协议。标准的JTAG接口是4线:TMS、TCK、TDI、
TDO,分别为模式选择、时钟、数据输入和数据输出线
8
利用宿主机开发目标机软件 通过交叉编译环境生产目标代码和可执行 文件 通过串口/USB/以太网等方式将软件下载到 目标机 利用交叉调试器在监控程序或实时操作系 统支持下进行实时分析和调度 将正确程序下载固化到目标机
2

单片机系统 :

又称单片微控制器,它不是完成某一个逻辑功能的芯片, 而是把一个计算机系统集成到一个芯片上。
由运算器、控制器、存储器、输入输出设备构成,相当 于一台缺少了外围设备微型的计算机(最小系统 一块芯片就成了一台计算机。 体积小、质量轻、价格便宜、为学习、应用和开发提供 了便利条件。 最早被用在工业控制领域。
性,因此系统仿真的有效性是有限的。
23
(1)软硬件协同设计采用统一的工具描述,可合理
划分系统软硬件,分配系统功能,在性能、成本、
功耗等方面进行权衡折衷,获取更优化的设计
(2)软硬件协同设计方法采用并行设计和协同设计
的思想,提高了设计效率,缩短了设计周期
(3)在系统级设计中,对软硬件部分使用统一描述
10
(1)嵌入式处理器的选型
处理器的选型直接影响存储器、外设的选择。一般从以 下几个因素考虑: 够用 适用 成本 功耗 软件开发工具 是否内置调试工具 是否提供评估板
11
(2)操作系统的选择
从八十年代起,国际上就有一些IT组织、公司,开始 致力于嵌入式操作系统的研发,现已涌现了一批优秀的操作 系统。如何从众多的嵌入式操作系统中选取合适的操作系统? 可以考查以下几个方面: 操作系统的移植—硬件平台适应性 操作系统的内存要求—最小内存,最大内存 操作系统的实时性—应用要求硬实时还是软实时(WindowsCE) 支持的开发工具—是否支持第三方开发工具 操作系统的可裁剪性—可减少EOS对存储占用 开发人员是否熟悉此操作系统及其提供的API 操作系统是否提供硬件的驱动程序,如网卡等
(3)协同综合
软硬件协同综合是根据系统描述和软硬件划
分的结果,在已有的设计规则和既定的设计目标
前提下,决定系统中软件和硬件部分以及其接口
的具体实现方法,并将其集成。
明确将采用哪些硬件模块、软件模块、软硬件
模块之间的通信方法及这些模块的具体实现
22
(4)协同仿真与验证
软硬件协同仿真的目的是在硬件生产出来前,通过仿
31
白盒测试的主要方法:

基本路径测试

设计足够多的测试用例,运行所测程序,要覆盖 程序中所有可能的路径。这是最强的覆盖准则

但在路径数目很大时,真正做到完全覆盖是很困 难的,必须把覆盖路径数目压缩到一定限度。
32
(2)黑盒测试

黑盒测试的概念

黑盒测试又称功能测试、数据驱动测试或基于 规格说明书的测试,是一种从用户观点出发的 测试。
25

本讲导学

嵌入式软件的测试方法 嵌入式软件的测试工具 嵌入式系统的测试策略
26
通用系统中的软件测试通常分为:单元/模块
测试,集成测试,外部功能测试,回归测试,系
统测试,验收测试,安装测试。
嵌入式系统测试也叫交叉测试(crosstest),它与PC机的软件测试有相似之处。
目前,在嵌入式系统设计中软件正越来越多

测试通过

开发结束
14
传统设计方法存在的缺陷 传统的嵌入式系统设计方法虽然简单,但存在一
些不可避免的缺陷:
设计方法缺乏统一的软硬件协同表示方法,软硬件
划分完全由设计者凭经验完成,无法从系统级验证划
分的合理性,且不易发现软硬件之间存在的接口问题
实际的设计过程中,常采用“硬件优先的原则”,
因此软件的测试必须在硬件全部完成之后才能进行,



3

单片机系统 :

单片机系统主要用于实现相对简单的控制,因 此系统核心部件集成在一块芯片——单片机上, 再在单片机的外围加入一些接口电路即可。 单片机系统设计相对比较简单,软件部分不需 要嵌入式操作系统的支持,只需采用汇编语言 编写针对特定应用的程序即可。

4
用户需求
选择处理器 设计硬件平台
测试人员把被测程序当作一个黑盒子
33
黑盒测试

黑盒测试主要测试的错误类型有:


①不正确或遗漏的功能;
②接口、界面错误;


③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。
34
黑盒测试

黑盒测试用于回答以下问题:

如何测试功能的有效性? 何种类型的输入会产生好的测试用例? 系统是否对特定的输入值尤其敏感? 如何分隔数据类的边界? 系统能够承受何种数据率和数据量? 特定类型的数据组合会对系统产生何种影响?

6
用户需求
选择嵌入式处理 器及硬件平台
嵌 入 式 处 理 器 系 统 开 发 流 程
选择合适的 嵌入式操作系统
基于操作系统 开发应用程序

应用程序 测试通过 是 整个系统测试 系统开发结束
7
嵌入式处理器系统开发方式
嵌入式处理器系统通常采用“宿主机/目标机”的开发方式。
宿主机
RS232 JTAG
设计需要
16

基本思想:从一个给定的系统任务描述着手,通过 有效地分析系统任务和所需的资源,采用一系列变 换方法并遵循特定的准则自动生成符合系统功能要
求的,符合实现代价约束的硬件和软件架构
上述设计过程中始终将硬件与软件同时考虑,在
硬件和软件中权衡,使系统的整体性能更优。
17
嵌入式系统的软硬件协同设计流程

嵌入式处理器系统的开发过程一般包括以下几个步骤: 源代码编写:编写源C/C++及汇编程序 程序编译:通过专用编译器编译程序 软件仿真调试:在SDK中仿真软件运行情况 程序下载:通过JTAG/USB/UART等方式下载到目标机 软硬件测试、调试:通过JTAG等方式联合调试程序
下载固化:程序无误,下载到目标板
20
(2)软硬件划分 软硬件功能划分就是要确定哪些系统功能由 硬件实现,哪些功能由软件实现。 从理论上讲,每个应用系统都存在一个适合 于该软硬件功能的最佳组合,但如何从系统需求 出发,依据一定的指导原则和分配算法对硬件/软
件功能进行合理划分,从而使系统的整体性能达
到最佳,是软硬件划分的目标所在。
21
地取代硬件,以降低系统成本,获得更大的灵活
性,这就需要使用更好的测试方法和工具进行嵌
入式实时软件的测试。
27
(1)白盒测试

白盒测试也称结构测试或逻辑驱动测试,是一种测试用
例设计方法,它从程序的控制结构导出测试用例

白盒测试使用被测单元内部如何工作的信息,允许测试
人员对程序内部逻辑结构及有关信息来设计和选择测试
29
白盒测试的主要方法: 逻辑驱动测试

语句覆盖:语句覆盖就是设计若干个测试用例,运 行被测试程序,使得每一条可执行语句至少执行一 次; 判定覆盖(也称为分支覆盖):设计若干个测试用 例,运行所测程序,使程序中每个判断的取真分支 和取假分支至少执行一次;


条件覆盖:设计足够多的测试用例,运行所测程序, 使程序中每个判断的每个条件的每个可能取值至少 执行一次;
语言和工具进行集成开发,具有跨越软硬件界限进
行系统优化的能力
24
(4)支持多领域专家的协同开发。它的核心思想
是沟通软件设计和硬件设计,避免系统中关系密
切的两部分设计过早独立
同传统设计方法相比,软硬件协同设计提高了
设计抽象的层次,拓展了设计的覆盖范围,采用
软硬件协同设计技术可以使嵌入式系统设计更好
和更快。
19
(1)系统描述

系统建模可以由设计者用非正式语言,甚至是自 然语言手工完成,但非正式的容易导致系统描述 不准确,而选用合适的建模语言将对设计起到事 半功倍的效果。

UML(Unified Modeling Language)语言是一种 功能强大的可视化建模语言。它将模型中的信息 用标准图形元素直观地显示,使具有不同技术背 景的开发人员和设计师可以较好地交流。
真的手段验证软硬件模块集成方面的问题。 协同仿真验证是检验系统设计正确性的过程。它对设 计结果的正确性进行评估,以避免在系统实现过程中发现 问题再进行反复修改。
由于系统仿真验证的过程中,模拟的工作环境与实际
使用环境相差甚远,软硬件之间的相互作用方式及作用效
果也就不同,这就难以保证系统在真实环境下工作的可靠
单 片 机 系 统 的 开 发 流 程
根据硬件平台 编写软件
存在硬件 问题
否 否

修改硬件平台
测试软件 通过

整个系统测试
系统开发结束
5

嵌入式处理器系统:

嵌入式处理器系统往往包含CPU、内存和丰富的外 部接口,其开发过程类似在PC机上开发应用程序。 开发流程的第一步是选择嵌入式处理器和硬件平台。 软件部分一般包含操作系统,开发人员基于此编写 相应的应用程序即可,这可大大地简化开发过程, 提高系统的稳定性。
用例,对程序的逻辑路径进行测试。

基于一个应用代码的内部逻辑知识,测试是基于覆盖全 部代码、分支、路径、条件。
28
白盒测试的主要目的:

保证一个模块中的所有独立路径至少被执行一次; 对所有的逻辑值均需要测试真、假两个分支; 在上下边界及可操作范围内运行所有循环; 检查内部数据结构以确保其有效性。
35
黑盒测试

黑盒测试用例设计方法
等价类划分法 边界值分析法 错误推测法 因果图法 判定表驱动法 正交试验设计法 功能图法 场景法

36
(3)目标环境测试和宿主环境测试
在嵌入式软件测试中,常常要在基于目标的测 试和基于宿主的测试之间作出折衷。 基于目标的测试消耗较多的经费和时间,而基 于宿主的测试代价较小,目前的趋势是把更多的测试 转移到宿主环境中进行 在宿主环境中,可以进行逻辑或界面的测试、以 及与硬件无关的测试。 在目标环境中,则进行与定时问题有关的白盒测 试、中断测试、硬件接口测试。
12
(3)编程语言的选取
人们在选择编程语言时往往具有很大的随意性。对价格、
获取方便性等因素考虑较多,而对语言本身的技术因素考虑
较少。 目前应用广泛几种高级语言: Ada C/C++
Modula-2
JAVA Objective C
13
需求分析 总体设计 硬件子系统 设计 系统集成、 测试、验证

软件子系统 设计
30

逻辑驱动测试
百度文库
判定/条件覆盖:设计足够多的测试用例,运行所测程
序,使程序中每个判断的每个条件的所有可能取值至
少执行一次,并且每个可能的判断结果也至少执行一
次,换句话说,即是要求各个判断的所有可能的条件 取值组合至少执行一次

条件组合覆盖:设计足够多的测试用例,运行所测程 序,使程序中每个判断的所有可能的条件取值组合至 少执行一次
37
(1)内存分析工具
内存分析工具用来处理在动态内存分配中存在的缺陷
两类内存分析工具——软件和硬件的
基于软件的内存分析工具可能会对代码的性能造成很
大影响,从而严重影响实时操作
基于硬件的内存分析工具价格昂贵,而且只能在工具
所限定的运行环境中使用
38
(2)性能分析工具

性能分析工具会提供有关的数据,说明执行时间 是如何消耗的,是什么时候消耗的,以及每个例 程所用的时间
这样设计周期可能很长。
15
传统设计方法存在的缺陷
由于硬件设计在粗略估计软件任务需求的情况下 进行,缺乏对软件构架和实现机制的清晰了解,硬 件设计工作带有一定的盲目性 整个系统的优化由于受设计空间的限制,只能改 善硬件和软件各自的性能,不可能对系统做出较好
的综合优化,难以适应现代复杂的、大规模的系统
相关文档
最新文档