嵌入式软件的实时在线测试_第1页
嵌入式软件的实时在线测试_第2页
嵌入式软件的实时在线测试_第3页
嵌入式软件的实时在线测试_第4页
嵌入式软件的实时在线测试_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Copyright McCabe & Associates 1998哈尔滨工业大学深圳研究院北京旋极信息技术有限公司深圳旋极历通科技有限公司 肖 敦 鹤Copyright McCabe & Associates 1998v 嵌入式软件在线测试和分析工具在嵌入式系统开发中的作用嵌入式软件在线测试和分析工具在嵌入式系统开发中的作用v 嵌入式软件在线测试的内容,方法与作用嵌入式软件在线测试的内容,方法与作用 1: Coverage analysis 2: Performance analysis 3: Logic trigger and trace analysis 4: Memor

2、y analysis 5: RTOS analysisv 嵌入式软件在线测试和分析工具嵌入式软件在线测试和分析工具 1: TRACE32 - ICE 2: TRACE32 - FIRE 3: TRACE32 - ICD议议 程程Copyright McCabe & Associates 1998 系统效率为什么如此低,问题在哪里?系统效率为什么如此低,问题在哪里? 系统采集的数据与现场相差甚远,原因何在?系统采集的数据与现场相差甚远,原因何在? 系统运行中,时常复位,硬件,软件工程师百思不系统运行中,时常复位,硬件,软件工程师百思不得其解?得其解? 系统软件随机跑飞,何处使然系统软件随

3、机跑飞,何处使然 ? 如何捕捉系统软件随机和偶然故障如何捕捉系统软件随机和偶然故障 ?无计可施!?无计可施!我咋办那? Copyright McCabe & Associates 1998真实世界中的复杂嵌入式软件真实世界中的复杂嵌入式软件结果结果:v金融在线事务处理系统瘫痪金融在线事务处理系统瘫痪v电话交换网络瘫痪电话交换网络瘫痪v电话系统崩溃,丢失了五千万次呼叫电话系统崩溃,丢失了五千万次呼叫v电脑控制机场行李运送系统出现故障,行李延迟交付或乱成一电脑控制机场行李运送系统出现故障,行李延迟交付或乱成一团。团。v更多的电路板,更多的软件,更加复杂!更多的电路板,更多的软件,更加复杂!

4、Copyright McCabe & Associates 1998软件质量低劣所付出的代价:软件质量低劣所付出的代价:如果关键系统出现故障?如果关键系统出现故障?v商务飞机坠毁商务飞机坠毁v反导弹防卫系统无法工作反导弹防卫系统无法工作v核反应堆发生核泄露核反应堆发生核泄露v运送卫星的火箭在空中爆炸运送卫星的火箭在空中爆炸v导弹追踪卫星报告了错误的方位导弹追踪卫星报告了错误的方位v Copyright McCabe & Associates 1998我们已认识到软件测试重要性我们已认识到软件测试重要性但新的困难又出现了但新的困难又出现了! !v软件的测试不如硬件板卡测试普遍v测

5、试工作缺乏可度量的管理手段。v软件的功能性测试不够完善,需要新的方法的补充。v嵌入式系统代码量日益增多,测试难度增加v系统越复杂,测试越复杂,风险越大v Copyright McCabe & Associates 1998实时在线嵌入式系统与仿真环境不同实时在线嵌入式系统与仿真环境不同W. Wayt GibbsStaff Writer, Scientific Americanv实时系统中的错误通常很难找到原因,实时系统中的错误通常很难找到原因,因为,就象你的车上的发动机发出奇怪因为,就象你的车上的发动机发出奇怪的声音一样,它只在某种条件下才会出的声音一样,它只在某种条件下才会出现。现。

6、v故障在仿真环境中无法再现。故障在仿真环境中无法再现。结论:结论:我们迫切需要采用合适的工具,从单元、集成、我们迫切需要采用合适的工具,从单元、集成、系统、现场等各个阶段,对嵌入系统的软件进系统、现场等各个阶段,对嵌入系统的软件进行实时在线测试和分析,保证系统的性能和可靠行实时在线测试和分析,保证系统的性能和可靠性。性。Copyright McCabe & Associates 1998软件测试方法概述软件测试方法概述静态测试静态测试动态测试动态测试编程标准编程标准程序复杂度度量程序复杂度度量白盒测试白盒测试黑盒测试黑盒测试语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定判定/条件

7、覆盖条件覆盖等价分类法等价分类法边缘值分析法边缘值分析法因果图法因果图法 错误推测法错误推测法条件组合覆盖条件组合覆盖回归测试回归测试强度测试强度测试性能测试性能测试恢复计划测试恢复计划测试启动启动/停止测试停止测试文档测试文档测试Copyright McCabe & Associates 1998预期的软件处理流程(简化版)预期的软件处理流程(简化版)单元代码编程单元代码编程/调试调试单元级测试单元级测试单元代码编程单元代码编程/调试调试单元级测试单元级测试单元代码编程单元代码编程/调试调试单元级测试单元级测试集成和测试集成和测试系统测试和验证系统测试和验证用户安装用户安装要求要求分

8、析分析/设计设计Copyright McCabe & Associates 1998用用 在线测试在开发和测试中在线测试在开发和测试中节省时间和金钱节省时间和金钱Unit Test单元代码编程单元代码编程/调试调试单元级测试单元级测试单元代码编程单元代码编程/调试调试单元级测试单元级测试单元代码编程单元代码编程/调试调试单元级测试单元级测试单元级开发单元级开发/测试测试:优化性能优化性能100% 单元覆盖单元覆盖删除内存错误删除内存错误集成级测试集成级测试:优化性能优化性能提高测试用例的覆盖提高测试用例的覆盖删除内存错误删除内存错误系统测试系统测试:确认是否满足性能需求确认是否满足性能

9、需求提高覆盖的性能提高覆盖的性能缩短整个测试时间缩短整个测试时间集成和测试集成和测试系统测试和验证系统测试和验证用户安装用户安装要求要求分析分析/设计设计Copyright McCabe & Associates 1998过去情况过去情况单元代码编程单元代码编程/调试调试单元级测试单元级测试单元代码编程单元代码编程/调试调试单元级测试单元级测试单元代码编程单元代码编程/调试调试单元级测试单元级测试集成集成 和测试和测试系统测试系统测试和验证和验证用户用户安装安装要求要求分析分析/设计设计这里发现这里发现性能没有性能没有满足要求满足要求在这里发现在这里发现了单元级代了单元级代码的问题码的

10、问题软件故障软件故障 = 多次多次 (4-8) 反复修改反复修改技术支持在这里发现问题技术支持在这里发现问题进度在这里延迟进度在这里延迟进度在这里延迟进度在这里延迟这里有很多问题这里有很多问题这里并没有这里并没有作到真正的作到真正的单元级测试单元级测试系统越复杂,系统越复杂,单元越多单元越多功能测试不能满功能测试不能满足要求足要求Copyright McCabe & Associates 1998软件打点方式软件打点方式比较便宜比较便宜可在可在CACHE打开下工作打开下工作对目标系统影响大(超过对目标系统影响大(超过50%)占用目标系统资源如,占用目标系统资源如,CPU 时时间间内存,

11、通讯通道等内存,通讯通道等缺乏很好的性能分析缺乏很好的性能分析缺乏覆盖率分析缺乏覆盖率分析缺乏内存分配分析缺乏内存分配分析精确度偏低精确度偏低对目标系统影响小(对目标系统影响小(1-15%)不占用目标系统资源不占用目标系统资源软件打点技术软件打点技术强大的性能分析强大的性能分析强大的覆盖率分析强大的覆盖率分析强大的内存分配分析强大的内存分配分析价格较便宜价格较便宜可在可在CACHE打开方式下工作打开方式下工作非常精确非常精确不影响目标系统(0%)不占用系统资源不用打点有限或没有性能分析有限的或没有覆盖率分析没有内存分配分析无法在CACHE打开方式下工作精确性随情况变化通过仿真存储器工作价格昂贵

12、纯软件测试工具纯软件测试工具纯硬件工具纯硬件工具仿真器,逻辑分析仪仿真器,逻辑分析仪 硬件辅助软件测试工具硬件辅助软件测试工具Copyright McCabe & Associates 1998嵌入式软件在线测试作用嵌入式软件在线测试作用. .v验证测试结果,评估测试的软件v指导测试用例的编写v. 代码优化代码优化v. 查找一个内存查找一个内存 分配错误分配错误?Copyright McCabe & Associates 1998123“返回程序员修改”现场故障诊断调试阶段过程可视化嵌入式软件在线测试的内容嵌入式软件在线测试的内容 跟踪软件运行跟踪软件运行代码覆盖分析及走势代码

13、覆盖分析及走势代码性能分析代码性能分析代码内存分析代码内存分析远程接触远程接触真实故障现场分析真实故障现场分析COTS analysis solutionCOTS analysis solutionBuilt-in analysisBuilt-in analysis在线测试在线测试Copyright McCabe & Associates 1998Coverage AnalysisCoverage AnalysisvMCDC(条件决策覆盖)条件决策覆盖)Modified Condition DecisionCoverage - MCDCDecision Coverage - DCCov

14、erage(语句覆盖)语句覆盖)Statement Coverage - SCv为何要使用为何要使用MCDC?不是纯软件模拟;而是终端系统的不是纯软件模拟;而是终端系统的监视监视不仅可以分析哪些代码执行过,而不仅可以分析哪些代码执行过,而且可以分析什么条件执行和为什么且可以分析什么条件执行和为什么执行执行一些软件质量关系到人的生命一些软件质量关系到人的生命!提供比一般代码块覆盖更详细、更提供比一般代码块覆盖更详细、更明确的监视明确的监视满足特定行业机构的需求满足特定行业机构的需求,如如:FAA 航空航空FDA 医疗医疗DOD, 空间技术空间技术, ISO等等Copyright McCabe &

15、amp; Associates 1998工业质量要求:工业质量要求:根据应用软件的重要性分为不同的级别根据应用软件的重要性分为不同的级别vB级级 危险的影响危险的影响需要需要DC测试测试差分差分GPS飞机之间接近感应飞机之间接近感应v C级级 重要的影响重要的影响需要需要SC测试测试无线数据链接无线数据链接vD级级 次要性影响次要性影响需要需要 BBC测试测试飞机内环境控制(空调温飞机内环境控制(空调温度等)度等)vE级级 没有影响没有影响函数进入函数进入/退出覆盖率测试退出覆盖率测试飞机内娱乐设施飞机内娱乐设施v几个规范和要求的例子:几个规范和要求的例子:v航空软件航空软件RTCA DO-1

16、78B 标准标准EUROCAE ED-12B 标准标准v对不同级别覆盖率测试的详细的报告对不同级别覆盖率测试的详细的报告v符合不同级别的条件:符合不同级别的条件:vA级级 灾难性的影响灾难性的影响需要需要MC/DC 测试测试引擎控制引擎控制飞行计算飞行计算导航处理导航处理Copyright McCabe & Associates 1998通常的基本块覆盖率度量方法通常的基本块覆盖率度量方法基本块覆盖基本块覆盖-测量测试中测量测试中代码是否已经执行代码是否已经执行v突出高亮显示执行过的代码突出高亮显示执行过的代码v在主机电脑上进行源代码显示在主机电脑上进行源代码显示方法方法v使用使用 p

17、rintf 语句语句v使用调试工具和设断点使用调试工具和设断点v使用硬件工具测量使用硬件工具测量v硬件增强型测量工具硬件增强型测量工具Copyright McCabe & Associates 1998TRACE32TRACE32/ /覆盖率覆盖率: : 摘要显示摘要显示v一个页面就可以显示整个程序的覆一个页面就可以显示整个程序的覆盖率摘要信息盖率摘要信息v一眼望去,就可以知道当前测试进一眼望去,就可以知道当前测试进度。度。v支持把多次测试的数据合并支持把多次测试的数据合并Copyright McCabe & Associates 1998在线测试覆盖率在线测试覆盖率: : 覆

18、盖率趋势覆盖率趋势v知道覆盖率的增加情知道覆盖率的增加情况况v确定何时达到覆盖率确定何时达到覆盖率的峰值点的峰值点v交互式,可简化测试交互式,可简化测试用例的生成用例的生成v保证测量效率前提下保证测量效率前提下缩短测量次数和时间缩短测量次数和时间Copyright McCabe & Associates 1998覆盖率覆盖率 测试结果:测试结果:v发现程序中的死代码发现程序中的死代码v提高测试覆盖率提高测试覆盖率v有有 ?% 没有测量?没有测量?v覆盖率可视化覆盖率可视化v实时动态显示实时动态显示v但是但是 v一些软件非常关键一些软件非常关键 基本块覆盖并不适用基本块覆盖并不适用 于所

19、有的工业场合于所有的工业场合如果只有大约如果只有大约30%的覆盖率,这样的测试还远远不够!的覆盖率,这样的测试还远远不够!高亮显示执行过的代码高亮显示执行过的代码 重点检查部分函数,审查未执行过的代码行的执行条件重点检查部分函数,审查未执行过的代码行的执行条件Copyright McCabe & Associates 1998DC-DC-决策覆盖决策覆盖包含决策覆盖和语句覆盖包含决策覆盖和语句覆盖DC Report=Overall Report Level B, Decision Coverage, Summary Metrics Total : 4 Fully Covered : 2

20、 50% Partially Covered : 1 25% Not Covered : 1 25%=1 *Unit greatest_common_divisor.c in /u7/sid/do178b/gcd/ Unit greatest_common_divisor.c Level B (DC) Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% - 1 *Function greatest_common_divisor unsigned greates

21、t_common_divisor (unsigned, unsigned) Function greatest_common_divisor Level B (DC) Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% - ( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor (unsigned a, unsigned b) Was Entered 2 *Dec

22、ision line 10 = A_WHILE: 10: while (a_working != b_working) T: Not Executed F: Was Executed 3 *Decision line 12 = AN_IF 12: if (a_working b_working) T: Not Executed F: Not Executed ( 4) Coverage line 21-2 = A_FUNCTION_EXIT: 21-2: return a_working; Was Exitedv语句覆盖摘要:语句覆盖摘要:v 程序的每一条语句被执行了至少一次程序的每一条语句被

23、执行了至少一次v决策覆盖摘要:决策覆盖摘要:v 程序中的每一个进入,退出点被执行了至少一程序中的每一个进入,退出点被执行了至少一次,程序中的每一个决策的所有结果都至少出现次,程序中的每一个决策的所有结果都至少出现过一次。过一次。Copyright McCabe & Associates 1998语句覆盖语句覆盖/ /决策覆盖详述决策覆盖详述( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor Was Entered 2 *Coverage line 12 = A_SEGMENT: 12:

24、 if (a_working b_working) Not Executed 3 *Coverage line 14 = A_SEGEMENT: 14: a_working -= b_working; Not Executed( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor Was Entered 2 *Decision line 10 = A_WHILE: 10: while (a_working != b_working) T: Not Executed F: Was Executed

25、3 *Decision line 12 = AN_IF 12: if (a_working b_working) T: Not Executed F: Not Executed语句覆盖语句覆盖决策覆盖决策覆盖Copyright McCabe & Associates 1998什么是什么是MCDCMCDC覆盖?如何进行?覆盖?如何进行?(MCDCMCDC覆盖不是执行了什么代码,而是在什么条件下覆盖不是执行了什么代码,而是在什么条件下执行了代码,以及为什么执行它?)执行了代码,以及为什么执行它?)范例:范例: if (cond 1) or (cond 2) and (cond 3)then

26、 A B Celse X Y Z希望得到的报告:希望得到的报告:cond 1cond 2cond 3branch T F F F T F T T F F T F 等等Copyright McCabe & Associates 1998MCDCMCDC覆盖覆盖条件决策覆盖条件决策覆盖v条件决策覆盖率摘要:条件决策覆盖率摘要:v 每一个进入,退出点被执行每一个进入,退出点被执行 过至少一次,每过至少一次,每一个决策都取得过它所有的可能结果的值至少一一个决策都取得过它所有的可能结果的值至少一次,每一个决策中的每一个条件都曾经独立的影次,每一个决策中的每一个条件都曾经独立的影响决策的结果至少一

27、次,独立影响的含义是指在响决策的结果至少一次,独立影响的含义是指在其他条件不变的情况下改变某一个条件。其他条件不变的情况下改变某一个条件。MCDC Report=Overall Report Level A, Multiple Condition Decision Coverage, Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25%Conditions : 4 Fully Covered : 2 50% Partially Covered : 1 25% N

28、ot Covered : 1 25%=1 *Unit greatest_common_divisor.c in /u7/sid/do178b/gcd/ Unit greatest_common_divisor.c Level A (MCDC) Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% Conditions : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% -

29、 1 *Function greatest_common_divisor unsigned greatest_common_divisor (unsigned, unsigned) Function greatest_common_divisor Level A (MCDC) Summary Metrics Decisions : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% Conditions : 4 Fully Covered : 2 50% Partially Covered : 1 25%

30、Not Covered : 1 25% - ( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor (unsigned a, unsigned b) Was Entered 2 *Decision line 10 = A_WHILE: 10.1: a_working != b_working Truth Table: + 0: F-f 1: T-tIndependece Tests: True False - - * 10.1: 1: T-t + 0: F-f 3 *Decision line 1

31、2 = AN_IF: 12.1: a_working b_working Truth Table: 0: F-f 1: T-tIndependece Tests: True False - - * 10.1: 1: T-t 0: F-f ( 4) Coverage line 21-2 = A_FUNCTION_EXIT: 21-2: return a_working; Was ExitedCopyright McCabe & Associates 1998MCDC MCDC 覆盖率详述覆盖率详述 ( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: u

32、nsigned greatest_common_divisor (unsigned a, unsigned b) Was Entered 2 *Decision line 10 = A_WHILE: 10.1: a_working != b_working Truth Table: + 0: F-f 1: T-tIndependece Tests: True False - - * 10.1: 1: T-t + 0: F-f 3 *Decision line 12 = AN_IF: 12.1: a_working b_working Truth Table: 0: F-f 1: T-tCopy

33、right McCabe & Associates 1998覆盖率趋势覆盖率趋势一个实际的例子一个实际的例子工程测试花了工程测试花了6个小时达到个小时达到 30%覆盖率覆盖率一系列同样的测试花费了一系列同样的测试花费了48小时小时增加了增加了 37%覆盖率覆盖率问题:问题:你的测试中是否有一些重复的测试?你的测试中是否有一些重复的测试?如果没有覆盖率趋势显示,你测试中会有多如果没有覆盖率趋势显示,你测试中会有多少天还是多少小时在做无用功?少天还是多少小时在做无用功?Copyright McCabe & Associates 1998覆盖率覆盖率: : 优点优点v提高测试效率提高

34、测试效率v通过覆盖率趋势,去除不必要的测试通过覆盖率趋势,去除不必要的测试v通过覆盖率趋势,减少测试次数,测试更有效率通过覆盖率趋势,减少测试次数,测试更有效率v实时动态显示覆盖率,简化测试用例生成过程实时动态显示覆盖率,简化测试用例生成过程v在一个实时运行的目标系统中,确保可以显示详细的软件运行过程在一个实时运行的目标系统中,确保可以显示详细的软件运行过程v指出嵌入式系统中没有得到足够测量的部分指出嵌入式系统中没有得到足够测量的部分-让你清楚的知道要测量什么地方让你清楚的知道要测量什么地方v提高产品质量提高产品质量v发现没有测量过的部分发现没有测量过的部分v清楚的描述你的代码被检验到了什么程

35、度清楚的描述你的代码被检验到了什么程度v符合最严格的工业软件测试标准:有利于通过符合最严格的工业软件测试标准:有利于通过ISO,医疗器材和航空器材的认证。医疗器材和航空器材的认证。v提供的报告可以直接在对测试过程和测试条件描述的文档中使用提供的报告可以直接在对测试过程和测试条件描述的文档中使用Copyright McCabe & Associates 1998Trace32/性能分析特点性能分析特点v最优化的性能最优化的性能优化关键函数的运算法则优化关键函数的运算法则高效地优化调用接口高效地优化调用接口纠正任务的优先权纠正任务的优先权v可视化可视化即时即时,监控超过监控超过 C/C+

36、函数和任务函数和任务统计分析统计分析实时测试实时测试多窗口显示函数和调用性能分析显示:多窗口显示函数和调用性能分析显示:函数活动函数活动调用显示调用显示Copyright McCabe & Associates 1998Trace32/Trace32/性能分析性能分析lFunction Analysis Min. and max. time , Average , Total Time Passes Include and exclude time lLink Analysis Callers Min. and max. times Calls lFunction Nesting Sh

37、ows function call hierarchy Time suspend in subroutines Copyright McCabe & Associates 1998Trace32/Trace32/性能分析性能分析lFunction Timechart View critical program paths Documentation lDuration Execution time Response time lDistance Time between samples lDistribution Interface analysis Interrupt analysi

38、s System state analysis Statistical analysis Copyright McCabe & Associates 1998TRACE32/TRACE32/性能性能任务性能任务性能函数性能函数性能调用关系调用关系Copyright McCabe & Associates 1998 性能分析性能分析Identify execution bottlenecks atTask and Function LevelsMeasure critical software timing, true minimum and maximum execution

39、timesIdentify where your code is really spending its execution time!Observe yourreal Task and Function NamesCopyright McCabe & Associates 1998调用关系调用关系Copyright McCabe & Associates 1998性能分析和优化事例性能分析和优化事例v发现关键任务执行太慢,不满足要求,速度反常?发现关键任务执行太慢,不满足要求,速度反常?v把两个函数每个速度提高把两个函数每个速度提高10%v发现占用时间多和调用频繁的代码,把它

40、们发现占用时间多和调用频繁的代码,把它们 in-line,性能提高了性能提高了15%v把一个任务速度提高把一个任务速度提高8%v整个系统性能提高整个系统性能提高 20%v结果:结果:性能符合要求,击败竞争对手性能符合要求,击败竞争对手得到大的定单,市场分额增加得到大的定单,市场分额增加不用进行昂贵的硬件升级和重新设计不用进行昂贵的硬件升级和重新设计收益估计?收益估计?Copyright McCabe & Associates 1998性能分析性能分析: : 好处好处v一次可同时测量多达上万个函数一次可同时测量多达上万个函数生产率提高,再也不用凭猜测进行测量生产率提高,再也不用凭猜测进行

41、测量不用多次进行复杂枯燥的设置和测量。不用多次进行复杂枯燥的设置和测量。v精确度提高精确度提高非采样方式,收集全部数据,完全精确非采样方式,收集全部数据,完全精确 同时监视整个程序,不用凭猜测选择测量部分同时监视整个程序,不用凭猜测选择测量部分上下文相关跟踪,时间误差不大于上下文相关跟踪,时间误差不大于50nSv易于理解易于理解以不同的级别显示性能数据(函数级,任务级)以不同的级别显示性能数据(函数级,任务级)组织严密的性能数据显示简明易读。组织严密的性能数据显示简明易读。Copyright McCabe & Associates 1998 内存分析特点内存分析特点 v提前故障警告提前

42、故障警告动态内存分配分析动态内存分配分析识别内存漏洞识别内存漏洞查出无用的内存区域查出无用的内存区域知道真正的内存分配情况知道真正的内存分配情况v可视化的内存错误提示可视化的内存错误提示当出现错误时识别精确的逻辑关系当出现错误时识别精确的逻辑关系准确地识别每一个错误准确地识别每一个错误精确定位内存错误精确定位内存错误v信心信心在程序运行失败之前侦测问题的所在在程序运行失败之前侦测问题的所在Copyright McCabe & Associates 1998内存分析内存分析v显示分配的内存块的大小显示分配的内存块的大小v检测内存泄露检测内存泄露v检测内存错误检测内存错误v“嵌入式软件测试

43、总是要花太多的时间,嵌入式软件测试总是要花太多的时间, 并且没有进行足够的测试,这是由于软件开并且没有进行足够的测试,这是由于软件开发者和测试者缺乏可以简化测试的工具,或工具很难使用。发者和测试者缺乏可以简化测试的工具,或工具很难使用。” David Shear - Sr. Analyst, Embedded Systems ResearchCopyright McCabe & Associates 1998内存分析显示内存分析显示分配情况分配情况内存错误内存错误相应的源代码相应的源代码Copyright McCabe & Associates 1998显示内存分配情况显示内存

44、分配情况Copyright McCabe & Associates 1998显示内存显示内存 相应的源代码相应的源代码Copyright McCabe & Associates 1998测试内存测试内存: : 优点优点v了解程序内存分配的真实情况了解程序内存分配的真实情况测量内存使用情况,发现对内存的不正常使用测量内存使用情况,发现对内存的不正常使用在系统崩溃前发现内存泄露错误在系统崩溃前发现内存泄露错误v发现内存分配错误发现内存分配错误精确显示发生错误时的上下文情况精确显示发生错误时的上下文情况指出发生错误的原由指出发生错误的原由无须做痛苦的代码跟踪,就可以发现错误无须做痛苦

45、的代码跟踪,就可以发现错误v在问题出现前发现征兆在问题出现前发现征兆Copyright McCabe & Associates 1998 lWhat is called Trace ? lWhat function is Trace ?lHow many components are included in Trace ? Trace buffer memory Logic Breakpoint Event Breakpoint Logic Trigger(Input and output trigger and External Trigger) Context Tracking S

46、ystem(CTS) 逻辑触发跟综代码分析的特点逻辑触发跟综代码分析的特点Copyright McCabe & Associates 1998External Trigger Inputsl2 inputs each with 8 channels l2 trigger qualifiers for each trigger level and channel group lEach channel group can be assigned 2 trigger events for each level, definable using boolean formulae Copyri

47、ght McCabe & Associates 1998Events lFree format definition of external trigger events lFree Format Definition of Data EventslData events can be specified with constants, masks, range or boolean formulae. lHex and Mnemonic Display of Trace DataCopyright McCabe & Associates 1998Graphic Display

48、lReal time display lTracking to List Windows lGraphical Data Display Show A/D Conversion Visualize Program Flow lComplex Search and Compare FunctionslSave and Reload of Trace DatalPC Display on Real-Time EmulationCopyright McCabe & Associates 1998Trigger Outputsl3 freely programmable outputs lCy

49、cle signal lRUN signal lBNC connector for oscilloscope trigger Copyright McCabe & Associates 1998Trigger UnitlAll output operators and input variables can be input in symbolic form. The target program symbols can also be used. lFree Format Definition of Data, Address and Trigger EventslTime and

50、Event Measurements with up to 3 CounterslThere are 3 40 bit counters available for event measurement or event triggering. All counters are re-triggerable and can be evaluated as a part of an expression in the trigger sequences. Each counter can be programmed as a timer for timing measurements or an

51、event counter. Copyright McCabe & Associates 1998Trigger Unitl3 Universal Counters - 40 Bit Event count 1 to 1.1 E + 12 Cycles 1 to 1.1 E + 12 Time 100ns to 1.3 days Retriggerable Selective release Trigger event when counter is zero Definition of time and event windows Copyright McCabe & Ass

52、ociates 1998Trigger UnitlAll Counters can be read on the flylTrigger Monitor A display of the count values, the trigger values, the trigger levels and the trigger flags is available in the trigger monitor window. lTrigger Flags Independent of the trigger levels, there are 3 freely programmable trigg

53、er flags. These flags can be read during triggering and can be used as input variables by the trigger sequencer. Copyright McCabe & Associates 1998 input variableslREAD, USERDATA, OPFETCH CPU status lPROGBREAK program breakpoint lLINE high-level line number and SPOT spot point lREADBREAK data re

54、ad breakpoint lWRITEBREAK data write breakpoint lA,B,C address points lTRIGG0,TRIGG1 bus trigger events lTRIGGER trigger events (3 per level) lNMI, RESET trigger events from the CPU lFULL trace memory full lREAD, WRITTEN read or write flag and MAIN main process lBREAK break event and TIMEOUT timeout

55、 signal lSYNCH synchronous trigger and ASYNCH asychronous trigger lECOUNT universal counter zero and DLATCH task monitor Copyright McCabe & Associates 1998 Output FunctionslTRACE trace release lTRACEON trace memory on and TRACEOFF trace memory off lGOTO change trigger level lFLAGON flag on and F

56、LAGOFF flag off lFLAGTOGGLE flag TOGGLE lTRIGG0,TRIGG1 triggering via ICEBUS lMARKERA.MARKERC markers in the TRACE memory lBREAK trigger emulator and STOP break Emulator lSPOT spotpoint emulator lEXCEPTION trigger exception generator lRESTART reload counter and ENABLE enable counter release lOUT0.OU

57、T2 trigger outputs (test probe) lDLATCH task monitor and LEVEL level control Copyright McCabe & Associates 1998Logic and Event BreakpointLogic and Event BreakpointlExample for Logic and Event Breakpoint When Address=0 xffff OR Address=0 xffff0000 AND Read AND Trace memory Full Then Break If Coun

58、ter Overflow XOR SYNCH Trigger While Address 0 x10000 Write Then BREAK trigger emulator AND STOP break Emulator lEvent And Logic Level触发器设计范例触发器设计范例Copyright McCabe & Associates 1998DistributionlInterface analysis lInterrupt analysis lSystem state analysis lStatistical analysis lDistribution Tim

59、echartslTiming of system states Copyright McCabe & Associates 1998CTS Context Tracking System l In order to find out which instructions, data or system states had caused malfunctioning of the target system it was necessary to spend a lot of time analysing the trace listing. lThe context tracking

60、 system - CTS for short - now allows to recreate the state of the target system at a selected point based on the information sampled in the trace buffer. From this starting point the program steps previously recorded in real time in the trace memory can be debugged again. lTracking System (CTS) uses the information from the trace analyzer with the help of an instruction set simulator to generate system states related to the cursor position in the trace buffer. You can single step a program part, which was executed before

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论