CodeTEST可以支持几乎所有的主流的嵌入系统的软件和硬件平台,可以支持多种CPU类型和嵌入式操作系统,以及没有操作系统的嵌入应用的分析测试。CodeTEST 可支持几乎所有的64/32位CPU和部分16位MCU,支持数据采集时钟频率高达133MHz。CodeTEST可通过PCI/cPCI/VME总线采集测试数据,也可通过MICTOR插头、飞线等手段对嵌入式系统进行在线测试,无需改动被测系统的设计,CodeTEST与被测系统的连接方式灵活多样。
支持的CPU:
PowerPC,ColdFire,ARM,x86,MIPS,DSP (TI, ADI, Starcore)等
支持的操作系统:
VxWorks,AE,OSE,QNX,pSOS,Chorus,Linux,Lynux,Win CE等
支持的总线:
PC104、PCI、cPCI、PMC、VME等
特点
独特的专利插桩技术,保证插桩后的代码的膨胀率最低,执行效率最高,充分体现测试的真实性
性能分析可以实现代码的精确的可视化,从而大大提高提高工作效率,简化软件确认和查找故障的过程。
内存分析可以监视内存的使用,提前查处内存的泄漏,从而节约你宝贵的时间和成本。
代码追踪可以进行三个不同层次的软件运行追踪,甚至是追踪处理器内部的Cache,这样可以更容易的查找问题所在。
高级覆盖工具可以通过确认高隐患的代码段,显示哪些函数、代码块、语句、决策条件和条件以执行过或未执行过,来提高产品的质量。高级覆盖工具完全符合高要求的软件测试标准(如:RCTA/DO-178B,FAA 标准),可以实现语句覆盖、决策覆盖和MC/DC覆盖。
优势
1.支持所有64/32/16位CPU 和 MCU, 最高支持总线频率133MHz
2.可通过 PCI/VME/CPCI/PMC 总线、MICTOR 插头、专用适配器或探针,帮助用户顺利、方便地连接到被测试系统,并对嵌入式系统进行在线测试
3.硬件方式代码跟踪测试系统
4.可以做单元级、集成级和系统级测试
5.同时监视128000函数,超过1000个任务
6.代码覆盖率分析:高级覆盖功能,可完成语句覆盖、决策覆盖和条件决策覆盖统计,并显示代码覆盖率,可显示覆盖率的函数分布图和上升趋势图,用不同的颜色区分已执行和未执行的代码段
7.跟踪中缓冲空间500K个事件,能协助用户分析出程序的死机点
8.性能分析:显示所有函数和任务的执行次数,最大执行时间,最小执行时间, 平均执行时间,占程序总执行时间的百分比和函数调用数
9.动态内存分析:显示分配内存情况实时图表,分析内存分配错误并定位出错函数位置
10.代码跟踪:允许任意设置跟踪纪录起止触发条件,如函数调用关系、任务事件等。可显示跟踪期间的系统运行情况。显示模块包括函数级/控制块级/源码级。
软件组成
基本的CodeTEST 系统包括四个模块:性能分析模块,测试覆盖分析模块,动态存储器分配分析模块,执行追踪分析模块。
1.性能分析
CodeTEST 能够同时对多达128000个函数进行非采样性测试,精确计算出每个函数或任务(基于RTOS下)的执行时间或间隔,并能够列出其最大和最小的执行时间。对于每两个函数或任务之间的调用也能够计数,从而确认出其中失败的调用。CodeTEST的性能分析功能也能够为嵌入式应用程序的优化提供依据,使软件工程师可以有针对性地优化某些关键性地函数或模块,以及改善整个软件地总体性能。
2.测试覆盖分析
CodeTEST提供程序总体概况,函数级代码以及源级覆盖趋势等多种模式来观测软件的覆盖情况。由于CodeTEST是一种完全地交互式工具,测试者可以在对系统进行操作地同时追踪覆盖情况。
CodeTEST覆盖率信息包括程序实际执行的所有内容,而不是采样的结果,它以不同颜色区分运行和未运行的代码,CodeTEST可以跟踪超过一百万个分支点,特别适用于测试大型嵌入式软件。同时 CodeTEST也适用于单板级和集成级的测试。
CodeTEST还能够生成一个融合多种测试结果地综合性报告,以使测试者看到整套测试的总体效果。
3. 动态存储器分配分析
在CodeTEST诞生之前,动态地存储器分配情况是难以追踪观测的。CodeTEST的分析能够显示有多少字节的存储器被分配给了程序的哪一个函数。这样就不难发现那些函数占用了较多的存储空间,那些函数没有释放相应的存储空间。测试者甚至还可以观察到存储体分配情况随着程序运行动态的增加和减少,即CodeTEST可以统计出所有的内存的分配情况。随着程序的运行,CodeTEST能够指出存储体分配的错误,测试者可以同时看到其对应的源程序内容。
4. 追踪分析
CodeTEST可以按源程序,控制流以及高级模式来追踪嵌入式软件。最大追踪深度可达150万条源级程序,其中高级追踪模式显示的是RTOS的事件和函数的进入退出,给测试者一个程序流程的大框图;控制流追踪增加了可执行函数中每一条分支语句的显示;源级追踪则又增加了对被执行的全部语句的显示。在以上三种模式下,均会显示详细的内存分配情况,包括在那个代码文件的那一行,那一个函数调用了内存的分配或释放函数,被分配的内存的大小和指针,被释放的内存的指针,出现的内存错误。
CodeTEST在不同开发阶段的应用
CodeTEST Native
在早期的开发阶段,采用CodeTEST Native的插桩器可以实现较快的软件测试和分析。虽然此阶段的测试和分析不是实时测试,但这是没有目标硬件连接时的最好的分析和查找问题的最好方法。采用CodeTEST,可以提高软件测试的代码覆盖率、查找和分析内存的泄漏和深度追踪来确保软件的正常运行。
CodeTEST Software-In-Circuit
当有硬件连接到测试系统时,我们就可以采用“target hardware”工具了。一般说来,在这一阶段,逻辑分析仪、仿真器和纯软件工具是用来确定系统是否正常工作,但是采用这些工具测试软件往往增加了工程师工作的难度和压力。而采用CodeTEST Software-In –Circuit,通过目标代理(tragrt agent)来测试和分析目标硬件就不需要硬件工具。
CodeTEST Software-In–Circuit插桩器还可以很方便的让你从CodeTEST Native的desktop-stimulated测试跳转到目标硬件的实时测试。跳转后,插桩器、脚本的文件格式和数据不受Native环境影响。而且,就学习Native和CodeTEST Software-In –Circuit的测试方法而言是差不多的。对于大多数在这两种开发阶段使用过其他的工具的开发者,CodeTEST可以大大节约开发的时间。
虽然CodeTEST Software-In –Circuit工具链不提供外部硬件测试系统的细节情况,但它为硬件的探测的难题提供了解决方案,提供了强大的代码覆盖实时工具、内存分析和软件追踪,而且在真实硬件环境中运行,价格低廉。
CodeTEST Hardtware-In-Circuit
当你进入此阶段时,你需要一组能提供监视软件测试深度和精确度的的工具链。带有的Bugs和错误的程序必须修改、升级或更新。
CodeTEST Hardtware-In-Circuit工具链采用外部硬件辅助和相应的通讯系统来实现最大程度的软件实时测试。
与逻辑分析仪和仿真器不同,CodeTEST Hardtware-In-Circuit具有处理目前复杂嵌入式系统的实时测试的能力。CodeTEST外置探测的硬件系统主要包括控制和数据处理器、大容量内存和可编程的升级定时器,因此大型测试的时间精度可在+/-50ns内。
CodeTEST Hardtware-In-Circuit除了提供测试代码覆盖率、内存分析和追踪分析,它的精确的实时测试能力还可以帮你查出软件性能和质量上的问题所在。
制造商概况
Metrowerks Corporation 创建于 1985 年,目前是 Motorola, Inc.的独立运作子公司。公司致力于为包括工业、消费类电子产品、网络通信及交通运输等主要行业的开发者提供最基本的工具和资源,帮助他们尽快将新兴产品推入市场。