CN109800172B - 基于ejtag接口定位嵌入式处理器死机的系统和方法 - Google Patents
基于ejtag接口定位嵌入式处理器死机的系统和方法 Download PDFInfo
- Publication number
- CN109800172B CN109800172B CN201910074234.3A CN201910074234A CN109800172B CN 109800172 B CN109800172 B CN 109800172B CN 201910074234 A CN201910074234 A CN 201910074234A CN 109800172 B CN109800172 B CN 109800172B
- Authority
- CN
- China
- Prior art keywords
- sampling
- ejtag
- data
- embedded
- module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000005070 sampling Methods 0.000 claims abstract description 199
- 230000002159 abnormal effect Effects 0.000 claims abstract description 19
- 230000005856 abnormality Effects 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Abstract
本发明提供一种基于EJTAG接口定位嵌入式处理器死机的系统和方法,配置采样参数,采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;识别采样数据中的异常数据后终止采样,定位嵌入式处理器死机的代码位置。本发明借助于嵌入式硬件的EJTAG接口,采用PC采样的方式采集嵌入式程序的执行轨迹,并记录程序死机时的代码位置,方便开发者快速有效地定位异常代码,分析代码异常的原因,不需要源码插桩,不需要嵌入日志信息,不改变源代码程序结构,目标代码不会产生膨胀。
Description
技术领域
本发明涉及嵌入式软件开发领域,具体地,涉及基于EJTAG接口定位嵌入式处理器死机的系统和方法。
背景技术
嵌入式程序往往具有高可靠性和稳定性的特点,对于规模较大的嵌入式系统,由于嵌入式系统的调试方式相对单一,一旦出现死机的情况很难定位异常代码的位置,开发者定位并解决问题变得异常艰难。
目前定位系统死机的方法一般是通过修改嵌入式程序源代码的方式,在源代码中嵌入众多的日志信息,重新编译并执行嵌入式程序,然后通过分析日志信息的方式大致确定程序中的异常代码,然后再在异常代码附近增加更详细的日志代码,逐步定位到真正的异常代码。对于复杂的嵌入式系统,这种定位方式往往效率不高,同时由于代码中存在大量的日志信息,可能无法反映嵌入式系统的真实执行情况,且极易引入新的代码错误和引入冗余代码。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于EJTAG接口定位嵌入式处理器死机的系统和方法。
根据本发明提供的一种基于EJTAG接口定位嵌入式处理器死机的系统,包括以下模块,配置采样数据模块:配置采样参数,所述采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;PC采样模块:使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;异常判定模块:识别采样数据中的异常数据,发送警告提示信息;异常定位模块:终止采样,定位嵌入式处理器死机的代码位置。
根据本发明提供的一种基于EJTAG接口定位嵌入式处理器死机的方法,包括以下步骤,配置采样数据步骤:通过采样控制器配置采样参数,所述采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;PC采样步骤:使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;异常判定步骤:识别采样数据中的异常数据,发送警告提示信息;异常定位步骤:终止采样,定位嵌入式处理器死机的代码位置。
优选地,所述采样参数通过采样控制器的控制命令进行配置。
优选地,所述对处理器核进行采样,形成采样临时数据暂存在设定的寄存器中,采样器持续从寄存器中读取采样临时数据,存储在设定的内存空间。
优选地,不进行程序插桩、不在嵌入式程序中嵌入日志信息,或者不改变嵌入式程序的程序逻辑和程序结构。
优选地,配置采样参数的采样控制器主要由操作界面、命令通道组成,所述操作界面设置采样参数、采样开始、采样停止、数据存储、数据上传中的任一项或任多项,所述命令通道采用网络或者非网络通信方式。
优选地,所述识别采样数据依据设定规则进行识别。
优选地,EJTAG的PC采样能够在运行时自启动,若EJTAG的PC采样已经启动,则从当前位置进行PC采样,若EJTAG的PC采样未启动,则先启动EJTAG的PC采样。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时上述方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、借助于嵌入式硬件的EJTAG接口,采用PC采样的方式采集嵌入式程序的执行轨迹,并记录程序死机时的代码位置,方便开发者快速有效地定位异常代码,分析代码异常的原因;
2、本发明基于嵌入式系统的EJTAG接口,不需要对嵌入式程序的源码进行插桩,不需要嵌入日志信息,不改变被测程序的源代码的程序结构,目标代码不会产生膨胀。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的系统架构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于EJTAG接口定位嵌入式处理器死机的方法,包括以下步骤,配置采样数据步骤:通过采样控制器配置采样参数,所述采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;PC采样步骤:使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;异常判定步骤:识别采样数据中的异常数据,发送警告提示信息;异常定位步骤:终止采样,定位嵌入式处理器死机的代码位置。
具体地,所述采样参数通过采样控制器的控制命令进行配置。
具体地,所述对处理器核进行采样,形成采样临时数据暂存在设定的寄存器中,采样器持续从寄存器中读取采样临时数据,存储在设定的内存空间。优选地,采样器以高速通信频率读取采样临时数据。
具体地,不进行程序插桩、不在嵌入式程序中嵌入日志信息,或者不改变嵌入式程序的程序逻辑和程序结构。
具体地,配置采样参数的采样控制器主要由操作界面、命令通道组成,所述操作界面设置采样参数、采样开始、采样停止、数据存储、数据上传中的任一项或任多项,所述命令通道采用网络或者非网络通信方式。
具体地,所述识别采样数据依据设定规则进行识别。
具体地,EJTAG的PC采样能够在运行时自启动,若EJTAG的PC采样已经启动,则从当前位置进行PC采样,若EJTAG的PC采样未启动,则先启动EJTAG的PC采样。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述方法的步骤。
根据本发明提供的一种基于EJTAG接口定位嵌入式处理器死机的系统,包括以下模块,配置采样数据模块:配置采样参数,所述采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;PC采样模块:使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;异常判定模块:识别采样数据中的异常数据,发送警告提示信息;异常定位模块:终止采样,定位嵌入式处理器死机的代码位置。
本发明提供的基于EJTAG接口定位嵌入式处理器死机的系统,可以通过基于EJTAG接口定位嵌入式处理器死机的方法的步骤流程实现。本领域技术人员可以将基于EJTAG接口定位嵌入式处理器死机的方法理解为所述基于EJTAG接口定位嵌入式处理器死机的系统的优选例。
以下阐述本发明的系统的另一个优选例,本发明提供的通过EJTAG接口定位嵌入式系统死机的系统,主要包括三个模块:PC采样模块、采样控制模块和数据分析模块。
PC采样模块:本模块根据采样控制模块的控制命令配置采样数据、进行PC采样和快速存储数据。配置采样数据包括配置EJTAG链的长度、EJTAG链上核的个数、被采样核的位置、采样数据的宽度、采样数据格式和采样频率。采样模块使能EJTAG模块的PC采样功能之后,EJTAG模块将以预设的频率对cpu进行高速采样并将采样到的数据放入指定的寄存器中。采样模块以当前EJTAG模块所支持的最高通信频率不间断地从EJTAG寄存器上取得当前最新的PC采样数据,并将采样数据临时存储于预先分配的内存空间中。为了提高采样速度,采样数据的格式采用精简数据格式,采样到的数据不做任何处理直接写内存。
采样控制模块:本模块主要由用户操作界面和相关的命令通道组成。用户通过用户界面向采样模块设置采样数据、控制采样的开始和停止、控制数据的存储和上传。命令通道可以采用网络或其它通信方式,连接用户界面和采样模块,传递命令和数据。
数据分析模块:本模块用于对采样模块上传的采样数据进行分析。根据特定的分析规则,研判嵌入式系统是否运行异常,若判定嵌入式系统运行异常则分析出最可能的代码位置,同时提示用户。
以下阐述本发明的方法的另一个优选例,基于EJTAG接口定位嵌入式系统死机的方法,包括以下步骤,步骤1:配置采样数据,包括并不局限于配置EJTAG链的长度、采样的处理器核的位置、采样数据宽度和采样频率;步骤2:使能EJTAG的PC采样功能,采样模块连续不间断的从EJTAG上取得最新的采样数据并快速地进行存储操作;步骤3:数据分析模块通过某种数据通道定时地从采样模块取得采样数据,对采样数据进行分析并研判嵌入式系统运行是否异常,如果发现嵌入式系统死机则进行警告提示;步骤4:用户终止PC采样并根据分析模块的分析结果定位嵌入式系统死机的代码位置。其中步骤2包括两种情况,2.1:被测试的嵌入式系统在运行时自动打开了EJTAG模块的PC采样功能,采样模块直接开始从当前位置进行PC采样。2.2:被测试的嵌入式系统在运行时没有打开EJTAG模块的PC采样功能,采样模块需要通过相应的EJTAG操作使能EJTAG的PC采样功能。
本发明采用不插桩,不在嵌入式程序中嵌入日志信息。不改变嵌入式程序的程序逻辑和程序结构,被测嵌入式程序不会产生代码膨胀,同时可以更真实地反映被测程序在被测设备上的运行情况;通过嵌入式硬件的EJTAG接口进行PC采样,不需要进行硬件飞线,不需要改变嵌入式系统的硬件环境,直接定位到系统死机时的PC位置,易于分析系统异常的原因。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种基于EJTAG接口定位嵌入式处理器死机的系统,其特征在于,包括以下模块:
配置采样数据模块:配置采样参数,所述采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;
PC采样模块:使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;
异常判定模块:识别采样数据中的异常数据,发送警告提示信息;
异常定位模块:终止采样,定位嵌入式处理器死机的代码位置;
所述对处理器核进行采样,形成采样临时数据暂存在设定的寄存器中,采样器持续从寄存器中读取采样临时数据,存储在设定的内存空间;
不进行程序插桩、不在嵌入式程序中嵌入日志信息,或者不改变嵌入式程序的程序逻辑和程序结构;
EJTAG的PC采样能够在运行时自启动,若EJTAG的PC采样已经启动,则从当前位置进行PC采样,若EJTAG的PC采样未启动,则先启动EJTAG的PC采样;
所述异常定位模块,用户终止PC采样并根据分析模块的分析结果定位嵌入式系统死机的代码位置;
所述PC采样模块,包括两种情况:第一种,被测试的嵌入式系统在运行时自动打开了EJTAG模块的PC采样功能,采样模块直接开始从当前位置进行PC采样;第二种,被测试的嵌入式系统在运行时没有打开EJTAG模块的PC采样功能,采样模块需要通过相应的EJTAG操作使能EJTAG的PC采样功能。
2.一种基于EJTAG接口定位嵌入式处理器死机的方法,其特征在于,包括以下步骤:
配置采样数据步骤:通过采样控制器配置采样参数,所述采样参数包括EJTAG的链长度、处理器核的位置、采样数据宽度、采样频率中的任一项或任多项;
PC采样步骤:使能EJTAG的PC采样,EJTAG以设定的采样频率对处理器核进行采样,得到采样数据,存储采样数据;
异常判定步骤:识别采样数据中的异常数据,发送警告提示信息;
异常定位步骤:终止采样,定位嵌入式处理器死机的代码位置;
所述对处理器核进行采样,形成采样临时数据暂存在设定的寄存器中,采样器持续从寄存器中读取采样临时数据,存储在设定的内存空间;
不进行程序插桩、不在嵌入式程序中嵌入日志信息,或者不改变嵌入式程序的程序逻辑和程序结构;
EJTAG的PC采样能够在运行时自启动,若EJTAG的PC采样已经启动,则从当前位置进行PC采样,若EJTAG的PC采样未启动,则先启动EJTAG的PC采样;
异常定位模块,用户终止PC采样并根据分析模块的分析结果定位嵌入式系统死机的代码位置;
PC采样模块,包括两种情况:第一种,被测试的嵌入式系统在运行时自动打开了EJTAG模块的PC采样功能,采样模块直接开始从当前位置进行PC采样;第二种,被测试的嵌入式系统在运行时没有打开EJTAG模块的PC采样功能,采样模块需要通过相应的EJTAG操作使能EJTAG的PC采样功能。
3.根据权利要求1所述的基于EJTAG接口定位嵌入式处理器死机的系统或者根据权利要求2所述的基于EJTAG接口定位嵌入式处理器死机的方法,其特征在于,所述采样参数通过采样控制器的控制命令进行配置。
4.根据权利要求1所述的基于EJTAG接口定位嵌入式处理器死机的系统或者根据权利要求2所述的基于EJTAG接口定位嵌入式处理器死机的方法,其特征在于,配置采样参数的采样控制器主要由操作界面、命令通道组成,所述操作界面设置采样参数、采样开始、采样停止、数据存储、数据上传中的任一项或任多项,所述命令通道采用网络或者非网络通信方式。
5.根据权利要求1所述的基于EJTAG接口定位嵌入式处理器死机的系统或者根据权利要求2所述的基于EJTAG接口定位嵌入式处理器死机的方法,其特征在于,所述识别采样数据依据设定规则进行识别。
6.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求2至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074234.3A CN109800172B (zh) | 2019-01-25 | 2019-01-25 | 基于ejtag接口定位嵌入式处理器死机的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074234.3A CN109800172B (zh) | 2019-01-25 | 2019-01-25 | 基于ejtag接口定位嵌入式处理器死机的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109800172A CN109800172A (zh) | 2019-05-24 |
CN109800172B true CN109800172B (zh) | 2022-05-24 |
Family
ID=66560447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910074234.3A Active CN109800172B (zh) | 2019-01-25 | 2019-01-25 | 基于ejtag接口定位嵌入式处理器死机的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800172B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888756A (zh) * | 2019-11-19 | 2020-03-17 | 支付宝(杭州)信息技术有限公司 | 一种诊断日志生成方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013394A (zh) * | 2007-02-12 | 2007-08-08 | 北京中星微电子有限公司 | 一种采用硬件逻辑对ic设计进行验证的方法 |
EP2608102A1 (en) * | 2011-12-23 | 2013-06-26 | Electronics and Telecommunications Research Institute | Appparatus for protecting against external attack for processor based on arm core and method using the same |
-
2019
- 2019-01-25 CN CN201910074234.3A patent/CN109800172B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013394A (zh) * | 2007-02-12 | 2007-08-08 | 北京中星微电子有限公司 | 一种采用硬件逻辑对ic设计进行验证的方法 |
EP2608102A1 (en) * | 2011-12-23 | 2013-06-26 | Electronics and Telecommunications Research Institute | Appparatus for protecting against external attack for processor based on arm core and method using the same |
Also Published As
Publication number | Publication date |
---|---|
CN109800172A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2473115C2 (ru) | Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа | |
US8839203B2 (en) | Code coverage-based taint perimeter detection | |
US8943377B2 (en) | On-chip detection of types of operations tested by an LBIST | |
CN106909498B (zh) | 一种Java程序注入故障的方法和系统 | |
US20130311827A1 (en) | METHOD and APPARATUS for automatic testing of automation software | |
KR20150119869A (ko) | 프로토콜 독립적 디바이스 테스팅을 지원하기 위한 중앙 컨트롤러 컴퓨터 시스템 상에서의 gui 구현 | |
CN109902005B (zh) | 一种自动化测试的方法和系统 | |
CN105209925A (zh) | 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性 | |
CN110347085B (zh) | 自动化测试系统、方法、车辆以及计算机可读介质 | |
CN107025168B (zh) | 漏洞检测方法及装置 | |
CN112084113A (zh) | 基于嵌入式仿真验证软件的可配置自动化测试方法及系统 | |
RU2451990C2 (ru) | Способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления | |
KR101110241B1 (ko) | 프로그램 테스트 장치 및 프로그램 | |
CN111198811A (zh) | 一种页面自动化测试的方法、装置、电子设备及存储介质 | |
CN111552475B (zh) | 一种半导体存储器老化测试的Workload测试文件编译方法、测试方法及系统 | |
CN111462811A (zh) | 自动化测试方法、装置、存储介质和电子设备 | |
CN109800172B (zh) | 基于ejtag接口定位嵌入式处理器死机的系统和方法 | |
CN111611157A (zh) | Gms持续集成构建自动化测试方法及系统 | |
CN111400997A (zh) | 一种基于同步执行的处理器核验证方法、系统及介质 | |
CN109542341B (zh) | 一种读写io监测方法、装置、终端及计算机可读存储介质 | |
US20040215440A1 (en) | Simulation of hardware based on smart buffer objects | |
CN111984524A (zh) | 故障注入方法、故障模拟方法、故障注入装置及存储介质 | |
CN116383021A (zh) | 软件包性能的测试方法、系统、计算设备及可读存储介质 | |
CN109634842B (zh) | 基于qt应用程序的测试方法和系统 | |
KR101251792B1 (ko) | 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Block 22301-985, Building 14, No. 498 Guo Shoujing Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, March 2012 Patentee after: Shanghai Chuangjing Information Technology Co.,Ltd. Country or region after: China Address before: 200135 block 22301-985, building 14, No. 498, GuoShouJing Road, pilot Free Trade Zone, Pudong New Area, Shanghai Patentee before: VISION MICROSYSTEMS (SHANGHAI) Co.,Ltd. Country or region before: China |