一种嵌入式系统测试方法

文档序号:6610570阅读:617来源:国知局
专利名称:一种嵌入式系统测试方法
技术领域
本发明涉及计算机系统领域,特别是计算机嵌入式系统测试技术 领域,尤其是指一种嵌入式系统测试方法。
背景技术
随着计算机技术的不断发展,特别国内强大的电子信息产品制造 业和巨大的信息化市场为嵌入式软件产业的发展创造了重要的机遇。 如3G、数字电视、网络设备等,在这些需求拉动下,嵌入式系统软 件市场快速成长,嵌入式设备的测试成为非常重要的一个环节,目前 嵌入式系统测试一般采用纯软件的测试方法,在被测代码的特定位置 中插入一个函数,用这些函数来完成数据的生成,并发送数据到目标 系统的共享内存中,同时在目标系统中运行一个预处理任务,完成这
些数据的预处理,将处理后的数据通过目标机的网口,USB或串口上 送到主机平台,主机平台运行结果分析软件来分析接收到的数据,通 过以上过程,测试者得以知道程序当前的运行状态。由于插入插桩函 数和预处理任务的存在,使系统的代码增大,更严重的是这些代码对 系统的运行效率有很大的影响(超过50%),函数本身要有它的实现 过程,它要完成数据的生成和暂存,而且这些函数在它的实现过程中 还可能被其他优先级更高的中断程序所中断,预处理任务需要占用目 标系统CPU处理时间、共享内存和通信通道完成数据的处理、数据的 上送,这一切都需借助于目标系统CPU完成,会给目标系统造成严重 的影响,甚至导致被测系统崩溃。由于这些弊端的存在,大大降低了纯软件测试方法的测试效率和测试准确性。

发明内容
本发明的目的是为了克服上述现有技术中的缺点,提供一种硬件 辅助软件的嵌入式系统测试方法。
首先对源代码进行插桩,在特定的地方插入一条语句,然后插桩 文件编译下载,在目标板运行,当运行到插桩点的时候,总线上出现 特定的信号,数据采集器辅助硬件采集这些插桩点信号,然后打包发 送采集点信息到测试结果分析软件,进行结果分析处理,实现嵌入式 系统测试。
程序员编写的源代码首先会通过插桩器(源代码分析程序)对源 代码进行自动插桩,即在需要插桩的关键位置写入一条赋值语句(如
xxxx—ctrl_port=0x74100009),并把插入的标记送入一个数据库文件 中生成一个符号数据库暂存起来,以备为以后分析时调用,然后,在 原来的编译环境下对插桩后的代码进行编译,然后下载到目标板上运 行,当程序在目标系统运行到插桩点的位置时,目标板的控制总线和 地址总线上会出现相应的控制信号和地址信号,当数据釆集器辅助硬 件(信号捕获探头)从控制总线和地址总线上监视到符合以上条件的 信号时,数据采集器辅助硬件幵始采集插桩点数据,然后把釆集到的 数据送到的内存中暂存并对这些数据进行预处理,然后将预处理后的 数据通过局域网或者USB送到测试结果分析软件,通过与前面生成的 符号数据库中的数据进行比较,我们就此得知当前程序的运行状态, 借此完成对嵌入式软件的覆盖率分析,性能分析,内存泄露分析,数 组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR切 换监控等系统测试。经由本发明的实施,采用源码插桩技术,却又对传统的源码插桩 技术进行改进,传统的源码插桩技术插入的是一个函数,而本方法插 入的是一条语句,在编译成汇编后仍然是一条语句,对被测系统的影 响最小;同时采用了从总线捕获数据技术,却又对传统的总线捕获数 据技术进行了改进,传统总线捕获数据技术采用采样方法,连续从总 线上采集数据,而本方法只有在运行到插桩点的时候,才进行采集数 据,从而实现准确釆样。经由本发明的实施,彻底解决了目前纯软件方法做嵌入式系统测 试的弊端。同时本方法所实现的内存泄露分析,数组越界、变量监控 功能对于解决嵌入式开发中的问题有非常重要的作用。


图1是本发明的工作原理示意图具体实施方式
下面结合附图和具体实施例对本发明进一步的介绍,但不作为本 发明的限定。第一步选择要测试的工程的目录或者选择要测试的特定文件。 第二步对选定的工程目录或者要测试的特定文件进行插桩,在 文件的特定位置自动插入特定语句,并且生成插桩点数据库文件。第三步把插桩后的文件在原来的开发环境或者makefile中编译,生成可在目标板上执行的文件。第四步把生成的文件下载到目标板。第五步数据采集器辅助硬件通过飞线,CPC/CPCI/PMC/VME连 接卡 ,inictor38/niictor190 标准连接插座和 PPC860/PPC750/PPC603E/M6804专用适配卡等的连接方式,连接到目标板的总线上。
第六步当目标板运行到插桩语句的时候,在总线上出现相应的 信号,数据采集器辅助硬件捕获到此信号。
第七步数据采集器辅助硬件对采集的信号进行打包处理,保存 到缓存中,然后通过网口或者USB 口发送到测试结果分析软件。
第八步,测试结果分析软件读取插桩点数据库文件,并结合接收 到的采集信号进行测试结果分析覆盖率分析,性能分析,内存泄露
分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR 切换监控等。
覆盖率分析分析本次测试,哪些代码,哪些分支执行了,哪些 代码没有执行,明确需要增加那些测试,避免重复的测试。
性能分析分析函数的调用次数,最大,最小,平均执行时间,
确定那些函数执行时间最久,对整个的优化提供依据。
内存泄露分析分析哪些函数调用了内存分配函数,分配了多少, 分配的地址是哪里,哪些函数调用内存释放函数,释放的地址是多少, 内存泄露了多少。
数组越界、变量监控监控程序中的某个数组值,数组是否越界, 越界了多少,程序的中某个变量在特定的时候是多少,某段内存的值 是否发生变化,变化前是多少,变化后又是多少。
Trace跟踪纪录目标板CPU的执行情况。
Task监控分析哪个任务或者进程入口次数,切换次数,最大, 最小,平均执行时间是多少,可以通过优化任务来优化整个系统
ISR监控分析发生了什么中断,中断次数,中断嵌套等情况。
TaskISR切换监控:分析被测试系统在执行过程的Task切换,ISR发生等线性切换关系。本发明可以解决嵌入式系统测试中的难题,对于提髙嵌入式系统 测试效果和效率,提高产品质量有非常重要的作用,有良好的社会效 益。
权利要求
1、本发明涉及一种嵌入式系统测试方法,采用硬件辅助软件,首先对源代码进行插桩,在特定的地方插入一条语句,然后插桩文件编译下载,在目标板运行,当运行到插桩点的时候,总线上出现特定的信号,数据采集器辅助硬件采集这些插桩点信号,然后打包发送采集点信息到测试结果分析软件,进行结果分析处理,实现嵌入式系统测试,具体包括以下步骤(a)对选定的工程目录或者要测试的特定文件进行插桩,在文件的特定位置插入特定语句,并且生成插桩点数据库文件。(b)数据采集器辅助硬件通过飞线,CPC/CPCI/PMC/VME连接卡,mictor38/mictor190标准连接插座和PPC860/PPC750/PPC603E/M6804专用适配卡等的连接方式,连接到目标板的总线上。(c)当目标板运行到插桩语句的时候,在总线上出现相应的信号,数据采集器辅助硬件捕获到此信号。(d)数据采集器辅助硬件对采集的信号进行打包处理,保存到缓存中,然后通过网口或者USB口发送到测试结果分析软件。(e)测试结果分析软件读取插桩点数据库文件,并结合接收到的采集信号进行测试结果分析覆盖率分析,性能分析,内存泄露分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR切换监控等。
2、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于 所述的步骤(a)中,插桩的时候插入的是一条语句。
3、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于所述的步骤(b)中,连接目标板和数据采集器硬件的方法有飞线, CPC/CPCI/PMC/VME连接卡,mictor38/mictor190标准连接插座和 PPC860/PPC750/PPC603E/M6804专用适配卡等。
4、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于 所述的步骤(C)中,只有在总线上出现插桩点信号时,才进行数据采集。
5、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于 所述的步骤幼中,从数据采集器辅助硬件上传的采集点数据是打包处 理后的数据,包括采集点值,时间和特定的分割符号。
6、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于所述的步骤(d)中,从数据采集器辅助硬件上传采集数据是通过网口或 者USB 口 。
7、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于所述的步骤间中,接收到的插桩点数据在内存中是以链表形式保存。
8、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于所述的步骤(e)中,覆盖率分析,准确分析哪些函数被执行了,函数中的哪些分支执行过,哪些分支没有被执行到,哪行代码执行过,执行 次数是多少,哪行代码没有执行过。
9、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于所述的步骤(e)中,性能分析,分析函数被调用次数,最大,最小,平均和累计执行时间。
10、 如权利要求1所述的一种嵌入式系统测试方法,其特征在 于所述的步骤(e)中,内存泄露分析准确定位哪个函数调用内存分配函数,哪个函数调用内存释放函数,哪个函数泄露了多少内存。
11、 如权利要求1所述的一种嵌入式系统测试方法,其特征在于所述的步骤(e)中,数组越界,变量监控,准确监控某个数组有无 越界操作,数组值是多少;监控变量的值是多少,变化前后的变量值 分别是多少;某段内存的值是否发生变化,变化前是多少,变化后又 是多少。
12、 如权利要求1所述的一种嵌入式系统测试方法,其特征在 于所述的步骤(e)中,Trace跟踪,详细纪录目标机CPU的执行过程。
13、 如权利要求1所述的一种嵌入式系统测试方法,其特征在 于所述的步骤(e)中,Task监控,分析Task的入口次数,切换次数, 最大,最小,平均和累计执行时间。
14、 如权利要求1所述的一种嵌入式系统测试方法,其特征在 于所述的步骤(e)中,ISR监控,分析ISR的入口次数,最大,最小, 平均和累计执行时间。
15、 如权利要求1所述的一种嵌入式系统测试方法,其特征在 于所述的步骤(e)中,TasklSR切换监控,分析目标机Task,ISR的线性 切换关系。
全文摘要
本发明涉及一种嵌入式系统测试方法,采用硬件辅助软件,首先对源代码进行插桩,在特定的地方插入一条语句,然后插桩文件编译下载,在目标板运行,当运行到插桩点的时候,总线上出现特定的信号,数据采集器辅助硬件采集这些插桩点信号,然后打包发送采集点信息到测试结果分析软件,进行结果分析处理,实现嵌入式系统测试,包括覆盖率分析,性能分析,内存泄露分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR切换监控等。
文档编号G06F11/36GK101408862SQ200710123818
公开日2009年4月15日 申请日期2007年10月12日 优先权日2007年10月12日
发明者周 李 申请人:周 李
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1