一种嵌入式系统覆盖率统计方法

文档序号:6438447阅读:363来源:国知局
专利名称:一种嵌入式系统覆盖率统计方法
技术领域
本发明涉及信息存贮,尤其涉及一种嵌入式系统覆盖率统计方法。
背景技术
在现有的嵌入式系统中,通过嵌入式系统覆盖率统计来反映程序内部执行过程的情况,有的是由嵌入式系统自动向终端上报,例如使用白盒测试软件LogiScope,当经过特定的程序代码段时,软件LogiScope会自动把这个点通过前后台通讯进行上报,而终端根据前台不断上报的点,可以动态地给出覆盖率的变化。
有的是向特定的地址写一个值,例如,白盒测试软件CodeTest在经过特定的程序代码段时,通过外接的测试仪器在总线上获取这个值,可以动态地给出覆盖率的变化。
这两种方法有如下的缺点1、使用软件LogiScope时,当经过特定的程序代码段时,自动把信息通过前后台通讯进行上报,在嵌入式系统中的这些特定的程序代码段太多时,就会频繁占用前后台通讯资源,引起系统性能的急剧下降,同时会阻塞正常的维护命令、测试命令等的下发与信息传递,在严重的情况下会甚至会造成超时现象,引起嵌入式系统的时序错误。
2、软件CodeTest主要通过硬件方式来实现,受总线频率的限制,目前软件CodeTest适用的总线频率最大为100MHz;另外,使用软件CodeTest需要对测试仪器进行改造,这些都在一定程度上限制了软件CodeTest的使用。

发明内容
本发明的目的在于提供一种使用简便且效率高的嵌入式系统覆盖率统计方法。
本发明所采用的方法为这种嵌入式系统覆盖率统计方法,其特征在于A、设置存储单元,每当系统执行到插桩点时便向该存储单元写入数值,记录特定程序代码段被执行的次数;B、外部终端读取存储单元中的数值,进行数据分析和统计。
所述的步骤A中,所述存储单元分为若干个与插桩点对应的内存区域;所述的系统执行到插桩点时,相应内存区域中的数值加1;所述存储单元的内存区域与插桩点一一对应;所述的每个内存区域占用4个字节的存储空间;所述的步骤B中,所述的外部终端向装有嵌入式系统的主机端发出读取请求,主机端响应请求,从内存缓冲区读取有关插桩信息数据发送至外部终端;所述的外部终端在特定时刻向装有嵌入式系统的主机端发送信息读取请求;所述的特定时刻为人工手动执行信息读取的时刻、预先定义执行信息读取的时刻、使用定时器预设的时刻,或者按照测试序列方式进行预设的时刻。
本发明的有益效果为本发明通过在内存中记录插桩点所在的代码被执行的次数,反映使用覆盖率的信息,外部终端再通过通讯读取有关信息,进行数据分析和统计,不受系统总线频率的影响,通用性较强,能够在任意的CPU平台以及硬件环境中运行,在使用过程中,只通过少量的外部终端与主机端的通讯数据即可正确、有效地传递覆盖率的信息,因此,本发明使用简便且效率高,而且,本发明还使用了被动式信息上报机制,使得信息上报方式可以进行定义或人工获取,即外部终端可以根据需求在特定的时刻向主机端发送信息读取请求,如采用人工或预设定时读取、按测试序列方式划分的读取等,可以灵活地根据需要控制通讯信息量,尽量减少覆盖率测试时对系统的效率影响,提高本发明的工作效率,总之,本发明在达到降低前后台之间的通讯量时,同时兼顾其通用性,可以使用较小的通讯量以及较强的通用性的情况下,获得覆盖率的信息。


图1为本发明应用流程示意图;图2为本发明插桩点与内存区域对应示意图;图3为外部终端与主机端通讯示意图;图4为上次覆盖信息数据记录示意图;图5为本次覆盖信息数据记录示意图。
具体实施例方式
下面根据附图和实施例对本发明作进一步详细说明根据图1、图2和图3,这种嵌入式系统覆盖率统计方法为开辟一个内存缓冲区,该内存缓冲区分为若干个与嵌入式系统中插桩点对应的内存区域,嵌入式系统中的插桩点与相应的内存缓冲区中的内存区域一一对应,如图2所示,对于某个插桩点,其ID为8,则对应内存缓冲区中相应的内存区域,在图2中,内存区域体现为小方格,该插桩点对应箭头所指的小方格,其中,内存缓冲区的大小与插桩的数目成正比关系,在本发明中,每个内存区域占用4个字节的存储空间,插桩的数目与被测对象的大小与复杂程序以及覆盖率测试方法相关,当插桩的数目较多时,缓冲区的大小也较大。
每当系统执行到插桩点时便向相应的内存区域写入一个数值,在具体的应用中,每当系统执行到插桩点时便向相应的内存区域中的数值执行加1操作,该数值反映插桩点所在的代码被执行的次数。
如图3所示,外部终端Host通过通讯读取内存缓冲区中内存区域的数值,外部终端Host向装有嵌入式系统的主机端Target发出读取请求,主机端Target响应请求,从内存缓冲区读取有关插桩信息数据发送至外部终端Host,外部终端Host向主机端Target发送的读取请求可在预先定义的时刻产生,如定时器触发、某个测试序列结束等,或采用人工手动执行信息读取,外部终端Host利用软件进行数据分析和统计覆盖率数据,如图4和图5所示,反映了外部终端Host接收到的上次和本次覆盖信息数据记录,显然,插桩ID2、ID4和ID8发生了变化,其差值表示在此段时间间隔中,其插桩所对应的代码分别代表被执行的次数,这样,后台终端Host读取这些变化了的信息,利用分析程序可以得知执行一个测试用例时嵌入式系统所经历的程序代码的各环节与分枝信息,正确地统计覆盖率信息。
权利要求
1.一种嵌入式系统覆盖率统计方法,其特征在于A、设置存储单元,每当系统执行到插桩点时便向该存储单元写入数值,记录特定程序代码段被执行的次数;B、外部终端读取存储单元中的数值,进行数据分析和统计。
2.根据权利要求1所述的嵌入式系统覆盖率统计方法,其特征在于所述的步骤A中,所述存储单元分为若干个与插桩点对应的内存区域。
3.根据权利要求2所述的嵌入式系统覆盖率统计方法,其特征在于所述的系统执行到插桩点时,相应内存区域中的数值加1。
4.根据权利要求2所述的嵌入式系统覆盖率统计方法,其特征在于所述存储单元的内存区域与插桩点一一对应。
5.根据权利要求4所述的嵌入式系统覆盖率统计方法,其特征在于所述的每个内存区域占用4个字节的存储空间。
6.根据权利要求1或2或3或4或5所述的嵌入式系统覆盖率统计方法,其特征在于所述的步骤B中,所述的外部终端向装有嵌入式系统的主机端发出读取请求,主机端响应请求,从内存缓冲区读取有关插桩信息数据发送至外部终端。
7.根据权利要求6所述的嵌入式系统覆盖率统计方法,其特征在于所述的外部终端在特定时刻向装有嵌入式系统的主机端发送信息读取请求。
8.根据权利要求7所述的嵌入式系统覆盖率统计方法,其特征在于所述的特定时刻为人工手动执行信息读取的时刻、预先定义执行信息读取的时刻、使用定时器预设的时刻,或者按照测试序列方式进行预设的时刻。
全文摘要
一种涉及信息存贮的嵌入式系统覆盖率统计方法,通过设置存储单元,每当系统执行到插桩点时便向该存储单元写入数值,记录特定程序代码段被执行的次数,外部终端读取存储单元中的数值,进行数据分析和统计;嵌入式系统中的插桩点与相应的内存缓冲区中的内存区域一一对应;外部终端向装有嵌入式系统的主机端发出信息读取请求,主机端响应请求,从内存缓冲区读取有关插桩信息数据发送至外部终端。本发明在达到降低前后台之间的通讯量时,同时兼顾其通用性,可以使用较小的通讯量以及较强的通用性的情况下,获得覆盖率的信息。
文档编号G06F11/36GK1517876SQ0310127
公开日2004年8月4日 申请日期2003年1月17日 优先权日2003年1月17日
发明者谭教团, 杨欣, 程强, 丁莹, 张彦兴, 袁长洋, 单宝凤 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1