CN101408862B - 一种嵌入式***测试方法 - Google Patents

一种嵌入式***测试方法 Download PDF

Info

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
Application number
CN2007101238182A
Other languages
English (en)
Other versions
CN101408862A (zh
Inventor
李周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2007101238182A priority Critical patent/CN101408862B/zh
Publication of CN101408862A publication Critical patent/CN101408862A/zh
Application granted granted Critical
Publication of CN101408862B publication Critical patent/CN101408862B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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切换监控。
CN2007101238182A 2007-10-12 2007-10-12 一种嵌入式***测试方法 Expired - Fee Related CN101408862B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517876A (zh) * 2003-01-17 2004-08-04 华为技术有限公司 一种嵌入式***覆盖率统计方法
CN1564137A (zh) * 2004-04-09 2005-01-12 中兴通讯股份有限公司 一种嵌入式***多任务并发调试的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
US20110197098A1 (en) Method and apparatus for test coverage analysis
KR101715759B1 (ko) 멀티코어 환경에서의 악성코드 분석 장치 및 방법
CN102222035A (zh) 基于符号执行技术的软件行为检测***及检测方法
CN104375914A (zh) 一种服务器内部压力变化自动测试方法
CN101799506B (zh) 基于脚本控制的芯片测试方法、装置及***
CN100425999C (zh) 一种基于可编程逻辑器件的电路板故障自定位装置及其方法
CN108153672A (zh) 一种移动应用的自动化测试***及测试方法
CN104123397A (zh) Web页面的自动化测试装置及方法
CN107491369A (zh) 一种快速pcie3.0信号完整性的检测方法及***
TW201616356A (zh) 偵錯韌體/軟體以產生追蹤資料之系統與方法、記錄媒體及電腦程式產品
CN102426548A (zh) 嵌入式***的调试方法、调试器和调试***
CN104572428A (zh) 基于windows操作***下的复杂控件测试方法
CN101458630B (zh) 一种基于硬件模拟器的自修改代码识别方法
CN106445810B (zh) 一种交互式软件与设备兼容性的测试方法及***
CN104809063A (zh) 分布式***的测试方法及装置
CN102879732B (zh) 板卡的测试方法及其***
CN1932774A (zh) 一种基于多串口资源的嵌入式***软件快速测试***和方法
CN112685316A (zh) 代码执行路径的获取方法、装置、计算机设备及存储介质
CN101452419A (zh) 基于远程安装技术的远程测试***及方法
CN101808082A (zh) 一种支持多协议的设备仿真方法
CN202362771U (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