CN101408862B - 一种嵌入式系统测试方法 - Google Patents
一种嵌入式系统测试方法 Download PDFInfo
- Publication number
- CN101408862B CN101408862B CN2007101238182A CN200710123818A CN101408862B CN 101408862 B CN101408862 B CN 101408862B CN 2007101238182 A CN2007101238182 A CN 2007101238182A CN 200710123818 A CN200710123818 A CN 200710123818A CN 101408862 B CN101408862 B CN 101408862B
- Authority
- CN
- China
- Prior art keywords
- pitching pile
- file
- monitoring
- target board
- embedded system
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种嵌入式系统测试方法,采用硬件辅助软件,首先对源代码进行插桩,在特定的地方插入一条语句,然后插桩文件编译下载,在目标板运行,当运行到插桩点的时候,总线上出现特定的信号,数据采集器辅助硬件采集这些插桩点信号,然后打包发送采集点信息到测试结果分析软件,进行结果分析处理,实现嵌入式系统测试,包括:覆盖率分析,性能分析,内存泄露分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TasklSR切换监控等。
Description
技术领域
本发明涉及计算机系统领域,特别是计算机嵌入式系统测试技术领域,尤其是指一种嵌入式系统测试方法。
背景技术
随着计算机技术的不断发展,特别国内强大的电子信息产品制造业和巨大的信息化市场为嵌入式软件产业的发展创造了重要的机遇。如:3G、数字电视、网络设备等,在这些需求拉动下,嵌入式系统软件市场快速成长,嵌入式设备的测试成为非常重要的一个环节,目前嵌入式系统测试一般采用纯软件的测试方法,在被测代码的特定位置中插入一个函数,用这些函数来完成数据的生成,并发送数据到目标系统的共享内存中,同时在目标系统中运行一个预处理任务,完成这些数据的预处理,将处理后的数据通过目标机的网口,USB或串口上送到主机平台,主机平台运行结果分析软件来分析接收到的数据,通过以上过程,测试者得以知道程序当前的运行状态。由于插入插桩函数和预处理任务的存在,使系统的代码增大,更严重的是这些代码对系统的运行效率有很大的影响(超过50%),函数本身要有它的实现过程,它要完成数据的生成和暂存,而且这些函数在它的实现过程中还可能被其他优先级更高的中断程序所中断,预处理任务需要占用目标系统CPU处理时间、共享内存和通信通道完成数据的处理、数据的上送,这一切都需借助于目标系统CPU完成,会给目标系统造成严重的影响,甚至导致被测系统崩溃。由于这些弊端的存在,大大降低了纯软件测试方法的测试效率和测试准确性。
发明内容
本发明的目的是为了克服上述现有技术中的缺点,提供一种硬件辅助软件的嵌入式系统测试方法。
首先对源代码进行插桩,在特定的地方插入一条语句,然后插桩文件编译下载,在目标板运行,当运行到插桩点的时候,总线上出现特定的信号,数据采集器辅助硬件采集这些插桩点信号,然后打包发送采集点信息到测试结果分析软件,进行结果分析处理,实现嵌入式系统测试。
程序员编写的源代码首先会通过插桩器(源代码分析程序)对源代码进行自动插桩,即在需要插桩的关键位置写入一条赋值语句(如:xxxx_ctrl_port=0x74100009),并把插入的标记送入一个数据库文件中生成一个符号数据库暂存起来,以备为以后分析时调用,然后,在原来的编译环境下对插桩后的代码进行编译,然后下载到目标板上运行,当程序在目标系统运行到插桩点的位置时,目标板的控制总线和地址总线上会出现相应的控制信号和地址信号,当数据采集器辅助硬件(信号捕获探头)从控制总线和地址总线上监视到符合以上条件的信号时,数据采集器辅助硬件开始采集插桩点数据,然后把采集到的数据送到的内存中暂存并对这些数据进行预处理,然后将预处理后的数据通过局域网或者USB送到测试结果分析软件,通过与前面生成的符号数据库中的数据进行比较,我们就此得知当前程序的运行状态,借此完成对嵌入式软件的覆盖率分析,性能分析,内存泄露分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR切换监控等系统测试。
经由本发明的实施,采用源码插桩技术,却又对传统的源码插桩技术进行改进,传统的源码插桩技术插入的是一个函数,而本方法插入的是一条语句,在编译成汇编后仍然是一条语句,对被测系统的影响最小;同时采用了从总线捕获数据技术,却又对传统的总线捕获数据技术进行了改进,传统总线捕获数据技术采用采样方法,连续从总线上采集数据,而本方法只有在运行到插桩点的时候,才进行采集数据,从而实现准确采样。
经由本发明的实施,彻底解决了目前纯软件方法做嵌入式系统测试的弊端。同时本方法所实现的内存泄露分析,数组越界、变量监控功能对于解决嵌入式开发中的问题有非常重要的作用。
附图说明
图1是本发明的工作原理示意图
具体实施方式
下面结合附图和具体实施例对本发明进一步的介绍,但不作为本发明的限定。
第一步:选择要测试的工程的目录或者选择要测试的特定文件。
第二步:对选定的工程目录或者要测试的特定文件进行插桩,在文件的特定位置自动插入特定语句,并且生成插桩点数据库文件。
第三步:把插桩后的文件在原来的开发环境或者makefile中编译,生成可在目标板上执行的文件。
第四步:把生成的文件下载到目标板。
第五步:数据采集器辅助硬件通过飞线,CPC/CPCI/PMC/VME连接卡,mictor38/mictor190标准连接插座和PPC860/PPC750/PPC603E/M6804专用适配卡等的连接方式,连接到目标板的总线上。
第六步:当目标板运行到插桩语句的时候,在总线上出现相应的信号,数据采集器辅助硬件捕获到此信号。
第七步:数据采集器辅助硬件对采集的信号进行打包处理,保存到缓存中,然后通过网口或者USB口发送到测试结果分析软件。
第八步,测试结果分析软件读取插桩点数据库文件,并结合接收到的采集信号进行测试结果分析:覆盖率分析,性能分析,内存泄露分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR切换监控等。
覆盖率分析:分析本次测试,哪些代码,哪些分支执行了,哪些代码没有执行,明确需要增加那些测试,避免重复的测试。
性能分析:分析函数的调用次数,最大,最小,平均执行时间,确定那些函数执行时间最久,对整个的优化提供依据。
内存泄露分析:分析哪些函数调用了内存分配函数,分配了多少,分配的地址是哪里,哪些函数调用内存释放函数,释放的地址是多少,内存泄露了多少。
数组越界、变量监控:监控程序中的某个数组值,数组是否越界,越界了多少,程序的中某个变量在特定的时候是多少,某段内存的值是否发生变化,变化前是多少,变化后又是多少。
Trace跟踪:纪录目标板CPU的执行情况。
Task监控:分析哪个任务或者进程入口次数,切换次数,最大,最小,平均执行时间是多少,可以通过优化任务来优化整个系统
ISR监控:分析发生了什么中断,中断次数,中断嵌套等情况。
TaskISR切换监控:分析被测试系统在执行过程的Task切换,ISR发生等线性切换关系。
本发明可以解决嵌入式系统测试中的难题,对于提高嵌入式系统测试效果和效率,提高产品质量有非常重要的作用,有良好的社会效益。
Claims (1)
1.一种嵌入式系统测试方法,采用硬件辅助软件,首先对源代码进行插桩,在特定的地方插入一条语句,然后插桩文件编译下载,在目标板运行,当运行到插桩点的时候,总线上出现特定的信号,数据采集器辅助硬件采集这些插桩点信号,然后打包发送采集点信息到测试结果分析软件,进行结果分析处理,实现嵌入式系统测试,具体包括以下步骤:
(a)对选定的工程目录或者要测试的特定文件进行插桩,在文件的特定位置自动插入特定语句,并且生成插桩点数据库文件;
(b)把插桩后的文件在原来的开发环境或者makefile中编译,生成可在目标板上执行的文件;
(c把生成的文件下载到目标板;
(d)数据采集器辅助硬件通过飞线,CPC/CPCI/PMC/VME连接卡,mictor38/mictor190标准连接插座和PPC860/PPC750/PPC603E/M6804专用适配卡的连接方式,连接到目标板的总线上;
(e)当目标板运行到插桩语句的时候,在总线上出现相应的信号,数据采集器辅助硬件捕获到此信号;
(f)数据采集器辅助硬件对采集的信号进行打包处理,保存到缓存中,然后通过网口或者USB口发送到测试结果分析软件;
(g)测试结果分析软件读取插桩点数据库文件,并结合接收到的采集信号进行测试结果分析:覆盖率分析,性能分析,内存泄露分析,数组越界、变量监控,Trace跟踪,Task监控,ISR监控,TaskISR切换监控。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101238182A CN101408862B (zh) | 2007-10-12 | 2007-10-12 | 一种嵌入式系统测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101238182A CN101408862B (zh) | 2007-10-12 | 2007-10-12 | 一种嵌入式系统测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101408862A CN101408862A (zh) | 2009-04-15 |
CN101408862B true CN101408862B (zh) | 2012-08-22 |
Family
ID=40571882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101238182A Expired - Fee Related CN101408862B (zh) | 2007-10-12 | 2007-10-12 | 一种嵌入式系统测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101408862B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853203B (zh) * | 2010-05-31 | 2012-06-20 | 浙江大学 | 一种嵌入式软件在线测试系统 |
CN102750135B (zh) * | 2011-04-20 | 2015-01-21 | 卡斯柯信号有限公司 | 一种基于隔离的软件设计方法 |
CN102243609A (zh) * | 2011-06-15 | 2011-11-16 | 惠州运通信息技术有限公司 | 一种基于嵌入式软件的测试分析方法及系统 |
CN103544099A (zh) * | 2012-07-11 | 2014-01-29 | 腾讯科技(深圳)有限公司 | 对移动设备上的程序进行测试的方法和装置 |
CN102916741A (zh) * | 2012-11-06 | 2013-02-06 | 索尔思光电(成都)有限公司 | 一种光模块硬件在线测试方法 |
CN103365775B (zh) * | 2013-06-21 | 2016-04-06 | 北京大学 | 基于内部状态检查的单元测试方法 |
CN104111890B (zh) * | 2014-07-29 | 2018-01-16 | 北京航空航天大学 | 一种实时性能测试方法与系统 |
CN105630668A (zh) * | 2014-12-01 | 2016-06-01 | 深圳市腾讯计算机系统有限公司 | 一种测试方法及装置 |
CN104598274B (zh) * | 2015-01-13 | 2017-07-18 | 北京京东尚科信息技术有限公司 | 一种自动插桩编译安装方法及系统 |
CN106155900B (zh) * | 2015-04-17 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 一种代码测试监测方法、装置及设备 |
CN106528399A (zh) * | 2015-09-15 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种测试用例确定方法及装置 |
CN105260305B (zh) * | 2015-10-15 | 2018-09-07 | 珠海格力电器股份有限公司 | 嵌入式程序运行时cpu监控调试方法 |
CN107797913A (zh) * | 2016-09-07 | 2018-03-13 | 大陆汽车电子(连云港)有限公司 | 一种实时系统的软件分析系统与方法 |
CN107562633B (zh) * | 2017-09-13 | 2021-02-05 | 上海市共进通信技术有限公司 | 快速显示数据走过关键执行代码路径的调试方法 |
CN108255721A (zh) * | 2018-01-12 | 2018-07-06 | 深圳市海派通讯科技有限公司 | 智能终端编译脚本预插值结果分析的方法、系统及存储介质 |
US11520682B2 (en) | 2018-08-27 | 2022-12-06 | Samsung Electronics Co., Ltd. | Code coverage method for embedded system on chip |
CN109388537B (zh) * | 2018-08-31 | 2023-02-03 | 创新先进技术有限公司 | 运行信息跟踪方法、装置及计算机可读存储介质 |
CN109542793B (zh) * | 2018-11-30 | 2022-06-14 | 北京小马智行科技有限公司 | 一种程序性能分析方法及装置 |
CN112241366A (zh) * | 2020-09-23 | 2021-01-19 | 厦门亿联网络技术股份有限公司 | 嵌入式设备测试方法、装置及电子设备 |
CN114579131A (zh) * | 2020-11-30 | 2022-06-03 | 中科寒武纪科技股份有限公司 | 用于获取硬件性能数据的方法、设备和系统 |
CN113392034B (zh) * | 2021-08-17 | 2021-10-15 | 北京安普诺信息技术有限公司 | Api自发现方法和基于此的测试覆盖率统计方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517876A (zh) * | 2003-01-17 | 2004-08-04 | 华为技术有限公司 | 一种嵌入式系统覆盖率统计方法 |
CN1564137A (zh) * | 2004-04-09 | 2005-01-12 | 中兴通讯股份有限公司 | 一种嵌入式系统多任务并发调试的方法 |
-
2007
- 2007-10-12 CN CN2007101238182A patent/CN101408862B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517876A (zh) * | 2003-01-17 | 2004-08-04 | 华为技术有限公司 | 一种嵌入式系统覆盖率统计方法 |
CN1564137A (zh) * | 2004-04-09 | 2005-01-12 | 中兴通讯股份有限公司 | 一种嵌入式系统多任务并发调试的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101408862A (zh) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101408862B (zh) | 一种嵌入式系统测试方法 | |
CN102222041A (zh) | 一种基于嵌入式软件的测试分析系统及方法 | |
CN102243609A (zh) | 一种基于嵌入式软件的测试分析方法及系统 | |
EP3213217B1 (en) | Historical control flow visualization in production diagnostics | |
CN103684898A (zh) | 一种监测用户请求在分布式系统中运行的方法及装置 | |
US20110197098A1 (en) | Method and apparatus for test coverage analysis | |
CN112181833A (zh) | 一种智能化模糊测试方法、装置及系统 | |
CN102222035A (zh) | 基于符号执行技术的软件行为检测系统及检测方法 | |
CN104375914A (zh) | 一种服务器内部压力变化自动测试方法 | |
CN101799506B (zh) | 基于脚本控制的芯片测试方法、装置及系统 | |
CN100425999C (zh) | 一种基于可编程逻辑器件的电路板故障自定位装置及其方法 | |
CN108153672A (zh) | 一种移动应用的自动化测试系统及测试方法 | |
TW201616356A (zh) | 偵錯韌體/軟體以產生追蹤資料之系統與方法、記錄媒體及電腦程式產品 | |
CN104123397A (zh) | Web页面的自动化测试装置及方法 | |
CN107491369A (zh) | 一种快速pcie3.0信号完整性的检测方法及系统 | |
CN101706750A (zh) | 一种基于嵌入式模拟器的测试桩获取方法 | |
CN104809063A (zh) | 分布式系统的测试方法及装置 | |
CN102426548A (zh) | 嵌入式系统的调试方法、调试器和调试系统 | |
CN104572428A (zh) | 基于windows操作系统下的复杂控件测试方法 | |
CN101458630A (zh) | 一种基于硬件模拟器的自修改代码识别方法 | |
CN102879732B (zh) | 板卡的测试方法及其系统 | |
CN1932774A (zh) | 一种基于多串口资源的嵌入式系统软件快速测试系统和方法 | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN101452419A (zh) | 基于远程安装技术的远程测试系统及方法 | |
CN101808082A (zh) | 一种支持多协议的设备仿真方法 |
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 | ||
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: 20120822 Termination date: 20191012 |