CN1517876A - 一种嵌入式系统覆盖率统计方法 - Google Patents
一种嵌入式系统覆盖率统计方法 Download PDFInfo
- Publication number
- CN1517876A CN1517876A CNA031012736A CN03101273A CN1517876A CN 1517876 A CN1517876 A CN 1517876A CN A031012736 A CNA031012736 A CN A031012736A CN 03101273 A CN03101273 A CN 03101273A CN 1517876 A CN1517876 A CN 1517876A
- Authority
- CN
- China
- Prior art keywords
- embedded system
- coverage rate
- statistical method
- rate statistical
- pitching pile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种涉及信息存贮的嵌入式系统覆盖率统计方法,通过设置存储单元,每当系统执行到插桩点时便向该存储单元写入数值,记录特定程序代码段被执行的次数,外部终端读取存储单元中的数值,进行数据分析和统计;嵌入式系统中的插桩点与相应的内存缓冲区中的内存区域一一对应;外部终端向装有嵌入式系统的主机端发出信息读取请求,主机端响应请求,从内存缓冲区读取有关插桩信息数据发送至外部终端。本发明在达到降低前后台之间的通讯量时,同时兼顾其通用性,可以使用较小的通讯量以及较强的通用性的情况下,获得覆盖率的信息。
Description
技术领域
本发明涉及信息存贮,尤其涉及一种嵌入式系统覆盖率统计方法。
背景技术
在现有的嵌入式系统中,通过嵌入式系统覆盖率统计来反映程序内部执行过程的情况,有的是由嵌入式系统自动向终端上报,例如使用白盒测试软件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读取这些变化了的信息,利用分析程序可以得知执行一个测试用例时嵌入式系统所经历的程序代码的各环节与分枝信息,正确地统计覆盖率信息。
Claims (8)
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所述的嵌入式系统覆盖率统计方法,其特征在于:
所述的特定时刻为人工手动执行信息读取的时刻、预先定义执行信息读取的时刻、使用定时器预设的时刻,或者按照测试序列方式进行预设的时刻。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031012736A CN1300698C (zh) | 2003-01-17 | 2003-01-17 | 一种嵌入式系统覆盖率统计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031012736A CN1300698C (zh) | 2003-01-17 | 2003-01-17 | 一种嵌入式系统覆盖率统计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1517876A true CN1517876A (zh) | 2004-08-04 |
CN1300698C CN1300698C (zh) | 2007-02-14 |
Family
ID=34281391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031012736A Expired - Fee Related CN1300698C (zh) | 2003-01-17 | 2003-01-17 | 一种嵌入式系统覆盖率统计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1300698C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100370465C (zh) * | 2004-09-04 | 2008-02-20 | 华为技术有限公司 | 一种自动调度逻辑仿真与代码覆盖率分析的方法与系统 |
CN100456248C (zh) * | 2005-12-02 | 2009-01-28 | 凌阳科技股份有限公司 | 获得程序代码和函数执行覆盖率及执行效率的装置及方法 |
CN101770408A (zh) * | 2008-12-30 | 2010-07-07 | 赛门铁克公司 | 使用基于对象的存储设备在文件系统上使用覆盖对象进行故障处理 |
CN102253890A (zh) * | 2011-08-16 | 2011-11-23 | 北京汉邦高科数字技术有限公司 | 一种嵌入式调试方法 |
CN101408862B (zh) * | 2007-10-12 | 2012-08-22 | 李周 | 一种嵌入式系统测试方法 |
CN101727342B (zh) * | 2008-10-23 | 2013-01-09 | 株式会社Ntt都科摩 | 信息处理装置以及内存管理方法 |
CN106155900A (zh) * | 2015-04-17 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种代码测试监测方法、装置及设备 |
CN108932182A (zh) * | 2018-07-06 | 2018-12-04 | 许继集团有限公司 | 一种消息总线性能测试方法及系统 |
CN111026630A (zh) * | 2018-10-09 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 代码覆盖率的统计方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19847951A1 (de) * | 1998-10-09 | 2000-04-20 | Francotyp Postalia Gmbh | Anordnung und Verfahren zur Speicherung von Daten über eine Benutzung eines Endgerätes |
KR100386560B1 (ko) * | 1999-10-18 | 2003-06-02 | 엘지전자 주식회사 | 이동 통신 시스템에서의 데이터 전송 방법 |
CN1183451C (zh) * | 2001-02-20 | 2005-01-05 | 技嘉科技股份有限公司 | 计算机系统中的bios更新方法 |
-
2003
- 2003-01-17 CN CNB031012736A patent/CN1300698C/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100370465C (zh) * | 2004-09-04 | 2008-02-20 | 华为技术有限公司 | 一种自动调度逻辑仿真与代码覆盖率分析的方法与系统 |
CN100456248C (zh) * | 2005-12-02 | 2009-01-28 | 凌阳科技股份有限公司 | 获得程序代码和函数执行覆盖率及执行效率的装置及方法 |
CN101408862B (zh) * | 2007-10-12 | 2012-08-22 | 李周 | 一种嵌入式系统测试方法 |
CN101727342B (zh) * | 2008-10-23 | 2013-01-09 | 株式会社Ntt都科摩 | 信息处理装置以及内存管理方法 |
CN101770408B (zh) * | 2008-12-30 | 2015-09-09 | 赛门铁克公司 | 使用基于对象的存储设备在文件系统上使用覆盖对象进行故障处理 |
CN101770408A (zh) * | 2008-12-30 | 2010-07-07 | 赛门铁克公司 | 使用基于对象的存储设备在文件系统上使用覆盖对象进行故障处理 |
CN102253890A (zh) * | 2011-08-16 | 2011-11-23 | 北京汉邦高科数字技术有限公司 | 一种嵌入式调试方法 |
CN106155900A (zh) * | 2015-04-17 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种代码测试监测方法、装置及设备 |
CN106155900B (zh) * | 2015-04-17 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 一种代码测试监测方法、装置及设备 |
CN108932182A (zh) * | 2018-07-06 | 2018-12-04 | 许继集团有限公司 | 一种消息总线性能测试方法及系统 |
CN108932182B (zh) * | 2018-07-06 | 2021-11-23 | 许继集团有限公司 | 一种消息总线性能测试方法及系统 |
CN111026630A (zh) * | 2018-10-09 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 代码覆盖率的统计方法、装置和系统 |
CN111026630B (zh) * | 2018-10-09 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 代码覆盖率的统计方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1300698C (zh) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1300698C (zh) | 一种嵌入式系统覆盖率统计方法 | |
US8996768B2 (en) | Method and storage device for assessing execution of trim commands | |
CN103578568A (zh) | 固态硬盘的性能测试方法及装置 | |
CN108777158B (zh) | 测试固态硬盘Trim性能的方法、装置及计算机设备 | |
CN104850480A (zh) | 高密度存储服务器硬盘性能测试的方法及装置 | |
CN111107050B (zh) | 一种配电网动模系统的分布式录波方法及装置 | |
CN101246444B (zh) | 一种模块测试方法及系统 | |
CN110427326A (zh) | 基于Driver Master的固态硬盘密码测试方法和装置 | |
US20230153189A1 (en) | Visualization system for debug or performance analysis of soc systems | |
CN1635580A (zh) | 闪存介质数据写入方法 | |
US20240168897A1 (en) | Collection of runtime information for debug and analysis, including by aggregating status information into a standardized message format and timestamping | |
CN1808402A (zh) | 一种内存访问监控方法 | |
CN1848092A (zh) | 测试装置及方法 | |
CN1584850A (zh) | 被动式远程判断系统状态的方法 | |
CN113821393B (zh) | 一种NVMe固态硬盘测试模块及测试方法 | |
CN1265284C (zh) | 动态日志记录方法 | |
CN104079435A (zh) | 一种以太网流量再生方法 | |
CN112100032B (zh) | 一种嵌入式设备日志输出记录方法及系统 | |
CN111414299B (zh) | 基于hdparm的SSD扩展信息获取方法和装置 | |
CN1357833A (zh) | 应用pci界面的单步除错卡的装置及其方法 | |
CN1232911C (zh) | 可适应性存取指令与资料的方法与架构 | |
CN1673969A (zh) | 监控仿真芯片内部eeprom的方法 | |
CN114077449B (zh) | 数据库服务器的测试方法、装置、电子设备和存储介质 | |
CN109857715B (zh) | 一种强化错误排查支持的日志记录方法和系统 | |
CN1637684A (zh) | 一种通用fifo接口测试设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170921 Address after: 063000 Hebei Province, Tangshan City Road north of route 11 subarea sanatorium Building 2 Building No. 202 Patentee after: Sun Jianghong Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: Huawei Technologies Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070214 Termination date: 20180117 |