CN104657247B - 基于jtag调试方式实现通用型故障注入系统和故障注入方法 - Google Patents

基于jtag调试方式实现通用型故障注入系统和故障注入方法 Download PDF

Info

Publication number
CN104657247B
CN104657247B CN201510070563.2A CN201510070563A CN104657247B CN 104657247 B CN104657247 B CN 104657247B CN 201510070563 A CN201510070563 A CN 201510070563A CN 104657247 B CN104657247 B CN 104657247B
Authority
CN
China
Prior art keywords
fault location
failure
direct fault
under test
sut
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
Application number
CN201510070563.2A
Other languages
English (en)
Other versions
CN104657247A (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.)
Shanghai Chuangjing Information Technology Co ltd
Original Assignee
Upper Seabird Scape Computer System Co Ltd
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 Upper Seabird Scape Computer System Co Ltd filed Critical Upper Seabird Scape Computer System Co Ltd
Priority to CN201510070563.2A priority Critical patent/CN104657247B/zh
Publication of CN104657247A publication Critical patent/CN104657247A/zh
Application granted granted Critical
Publication of CN104657247B publication Critical patent/CN104657247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种基于JTAG调试方式实现通用型故障注入系统和故障注入方法,该系统包括:代码分析模块:加载被测二进制代码程序和相关的符号信息;故障执行模块,接收运行控制和分析模块的指令并根据指令要求对被测系统进行操作;故障定义模块,用于定义故障内容,需要定义故障各个阶段需要对被测系统进行的操作;运行控制和分析模块,用于控制故障注入的过程和对故障结果进行分析;报告生成模块,用于将上述各个模块及故障注入的实际执行情况生成报告。本发明通过被测系统的JTAG接口连接被测系统,在不改变目标系统目标代码,不损坏被测系统硬件的前提下,通过改变被测系统内存、寄存器值来模拟硬件故障的产生,从而达到故障注入的目的。

Description

基于JTAG调试方式实现通用型故障注入系统和故障注入方法
技术领域
本发明涉及一种故障注入系统和故障注入方法,具体地,涉及一种基于JTAG调试方式实现通用型故障注入系统和故障注入方法。
背景技术
现有故障注入方案有三种:硬件故障注入、仿真故障注入和软件故障注入。其中硬件故障注入用于完成物理级的故障注入,仿真故障注入通过改变逻辑和时间开销达到故障注入的效果,而软件故障注入是通过生成软件级的错误,从而造成硬件级的故障。现有的软件故障注入方式,是通过外部设备产生故障信号,将该故障信号注入给被测设备,或者在被测系统的源代码中植入故障代码从而实现软件故障注入。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于JTAG调试方式实现通用型故障注入系统和故障注入方法,其通过被测系统的JTAG接口连接被测系统,在不改变目标系统目标代码,不损坏被测系统硬件的前提下,通过改变被测系统内存、寄存器值来模拟硬件故障的产生,从而达到故障注入的目的。
根据本发明的一个方面,提供一种基于JTAG调试方式实现通用型故障注入系统,其特征在于,包括:
代码分析模块:加载被测二进制代码程序和相关的符号信息,解析符号信息和被测二进制代码之间的关联关系,对被测二进制代码进行反汇编,分析指令类型,依据某种策略划分指令执行单元;
故障执行模块,接收运行控制和分析模块的指令并根据指令要求对被测系统进行操作,将操作结果返回给运行控制和分析模块;
故障定义模块,用于定义故障内容,需要定义故障各个阶段需要对被测系统进行的操作;
运行控制和分析模块,用于控制故障注入的过程和对故障结果进行分析;
报告生成模块,用于将上述各个模块及故障注入的实际执行情况生成报告。
优选地,所述故障执行模块通过网络与运行控制和分析模块连接,通过JTAG数据线与被测系统的JTAG接口连接。
优选地,所述故障各个阶段包括故障注入前、故障注入时机、故障注入内容、故障检查点、故障检查对象、故障注入完成后。
本发明还提供一种基于JTAG调试方式实现通用型故障注入方法,其特征在于,包括以下步骤:
步骤一:加载被测二进制程序和相关符号信息,对被测程序进行反汇编,分析指令类型并依据某种策略划分指令执行单元,建立被测程序与符号信息之间的关联关系;
步骤二,针对被测程序建立故障事件,定义故障注入各个阶段所要进行的操作,设置故障执行前需要做的操作、故障触发条件、故障注入内容、故障检查点、故障检查内容等各种操作;
步骤三:通过仿真器,下载被测程序和相关配置信息,按照故障各阶段的定义执行故障注入过程;
步骤四:根据仿真器的指令反馈信息,检测故障触发条件是否满足,若满足故障注入条件,则执行故障注入内容的相关指令,将故障注入到被测设备中;
步骤五:检测故障检查点是否触发,当满足故障检查点的条件后,执行故障检查内容的相关指令,验证被测设备和程序,被注入故障后的执行结果是否跟预期结果一致;
步骤六:执行故障注入完成后的相关指令内容,结束一条故障注入事件;
步骤七:重复步骤三、步骤四、步骤五、步骤六,直到所有预定义的每条故障注入事件全部执行或由用户手动停止执行;
步骤八:对执行过的故障注入事件进行分析,得出每条故障注入实际执行结果和总体执行结果,根据用户设定和用户自定义的报告模板,生成故障注入结果报告。
与现有技术相比,本发明具有如下的有益效果:本发明不在被测系统中植入程序,不修改被测系统相关代码,更真实的反映被测系统在注入故障后的执行情况。本发明的故障执行模块采用具有调试功能的JTAG接口对被测系统进行故障注入,具有通用性,不会破坏被测系统的硬件环境。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明基于JTAG调试方式实现通用型故障注入系统的原理框图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
如图1所示,本发明基于JTAG调试方式实现通用型故障注入系统包括:
代码分析模块:加载被测二进制代码程序和相关的符号信息,解析符号信息和被测二进制代码之间的关联关系,对被测二进制代码进行反汇编,分析指令类型,依据某种策略划分指令执行单元。
故障执行模块,主要由基于JTAG调试方式实现的JTAG仿真器构成,该模块通过网络与运行控制和分析模块连接,通过JTAG数据线与被测系统的JTAG接口连接。该模块接收运行控制和分析模块的指令并根据指令要求对被测系统进行操作,将操作结果返回给运行控制和分析模块。该模块所处理的指令包括读写寄存器、读写内存、设置或取消断点、监控被测系统是否处于停止状态、驱动被测系统运行、驱动被测系统走单步、停止被测系统的运行、复位被测系统及其它调试相关命令。
故障定义模块,用于定义故障内容,需要定义故障各个阶段需要对被测系统进行的操作。这些阶段包括:故障注入前、故障注入时机、故障注入内容、故障检查点、故障检查对象、故障注入完成后。
故障注入各阶段的设置内容包括:(1)故障注入前,用于设置注入故障前需要对被测系统进行的操作。包括复位被测系统、下载被测程序、修改程序入口等。(2)故障注入时机,用于设置注入故障的时间点。包括被测程序运行到某个位置、被测程序触发某个断点、被测程序达到某种覆盖率、寄存器或某个内存值变为某个指定的值等。(3)故障注入内容,用于设置对被测程序和系统进行修改的一系列操作。包括修改寄存器、修改外设寄存器、修改内存值、修改全局变量值、修改程序指针等。(4)故障检查点,用于设置终止被测程序和被测系统运行的终止条件。包括触发某个断点或触发某些中断、运行指定的时间、达到某种覆盖率、运行到指定程序地址等。(5)故障检查对象,用于设置故障注入的预期值,是检查被测程序在运行中被注入故障后,运行是否符合预期的重要检查点。包括检查程序指针当前值、当前代码覆盖率或其他覆盖率是否达到预期、是否触发某个中断、是否超时等。(6)故障注入完成后,用于设置故障注入结束后的处理,包括复位被测系统等操作。
运行控制和分析模块,用于控制故障注入的过程和对故障结果进行分析。该模块依据故障定义的各个阶段的设置,按阶段的顺序执行每个阶段的具体设置,触发故障检查点后,检查故障检查对象,分析故障注入的效果是否达到预期。
报告生成模块,用于将上述各个模块及故障注入的实际执行情况生成报告。按照用户设置和用户自定义的报告模板,生成html报告、word报告或者其它类型的故障注入报告。
本发明基于JTAG调试方式实现通用型故障注入方法包括以下步骤:
步骤一:加载被测二进制程序和相关符号信息,对被测程序进行反汇编,分析指令类型并依据某种策略划分指令执行单元,建立被测程序与符号信息之间的关联关系;
步骤二,针对被测程序建立故障事件,定义故障注入各个阶段所要进行的操作,设置故障执行前需要做的操作、故障触发条件、故障注入内容、故障检查点、故障检查内容等各种操作;
步骤三:通过仿真器,下载被测程序和相关配置信息,按照故障各阶段的定义执行故障注入过程。首先执行故障注入前的动作,如被测设备复位或重新下载被测程序;
步骤四:根据仿真器的指令反馈信息,检测故障触发条件是否满足,若满足故障注入条件,则执行故障注入内容的相关指令,将故障注入到被测设备中;
步骤五:检测故障检查点是否触发,当满足故障检查点的条件后,执行故障检查内容的相关指令,验证被测设备和程序,被注入故障后的执行结果是否跟预期结果一致;
步骤六:执行故障注入完成后的相关指令内容,结束一条故障注入事件;
步骤七:重复步骤三、步骤四、步骤五、步骤六,直到所有预定义的每条故障注入事件全部执行或由用户手动停止执行;
步骤八:对执行过的故障注入事件进行分析,得出每条故障注入实际执行结果和总体执行结果,根据用户设定和用户自定义的报告模板,生成故障注入结果报告。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (2)

1.一种基于JTAG调试方式实现通用型故障注入系统,其特征在于,包括:
代码分析模块:加载被测二进制代码程序和相关的符号信息,解析符号信息和被测二进制代码之间的关联关系,对被测二进制代码进行反汇编,分析指令类型,依据某种策略划分指令执行单元;
故障执行模块,接收运行控制和分析模块的指令并根据指令要求对被测系统进行操作,将操作结果返回给运行控制和分析模块;
故障定义模块,用于定义故障内容,需要定义故障各个阶段需要对被测系统进行的操作;
运行控制和分析模块,用于控制故障注入的过程和对故障结果进行分析;
报告生成模块,用于将上述各个模块及故障注入的实际执行情况生成报告;
所述故障执行模块通过网络与运行控制和分析模块连接,通过JTAG数据线与被测系统的JTAG接口连接;
所述故障各个阶段包括故障注入前、故障注入时机、故障注入内容、故障检查点、故障检查对象、故障注入完成后;
所述故障各个阶段按阶段的顺序执行每个阶段的具体设置,触发故障检查点后,检查故障检查对象,分析故障注入的效果是否达到预期。
2.一种基于JTAG调试方式实现通用型故障注入方法,其特征在于,包括以下步骤:
步骤一:加载被测二进制程序和相关符号信息,对被测程序进行反汇编,分析指令类型并依据某种策略划分指令执行单元,建立被测程序与符号信息之间的关联关系;
步骤二,针对被测程序建立故障事件,定义故障注入各个阶段所要进行的操作,设置故障执行前需要做的操作、故障触发条件、故障注入内容、故障检查点、故障检查内容;
步骤三:通过仿真器,下载被测程序和相关配置信息,按照故障各阶段的定义执行故障注入过程;
步骤四:根据仿真器的指令反馈信息,检测故障触发条件是否满足,若满足故障注入条件,则执行故障注入内容的相关指令,将故障注入到被测设备中;
步骤五:检测故障检查点是否触发,当满足故障检查点的条件后,执行故障检查内容的相关指令,验证被测设备和程序,被注入故障后的执行结果是否跟预期结果一致;
步骤六:执行故障注入完成后的相关指令内容,结束一条故障注入事件;
步骤七:重复步骤三、步骤四、步骤五、步骤六,直到所有预定义的每条故障注入事件全部执行或由用户手动停止执行;
步骤八:对执行过的故障注入事件进行分析,得出每条故障注入实际执行结果和总体执行结果,根据用户设定和用户自定义的报告模板,生成故障注入结果报告。
CN201510070563.2A 2015-02-10 2015-02-10 基于jtag调试方式实现通用型故障注入系统和故障注入方法 Active CN104657247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510070563.2A CN104657247B (zh) 2015-02-10 2015-02-10 基于jtag调试方式实现通用型故障注入系统和故障注入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510070563.2A CN104657247B (zh) 2015-02-10 2015-02-10 基于jtag调试方式实现通用型故障注入系统和故障注入方法

Publications (2)

Publication Number Publication Date
CN104657247A CN104657247A (zh) 2015-05-27
CN104657247B true CN104657247B (zh) 2017-12-15

Family

ID=53248417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510070563.2A Active CN104657247B (zh) 2015-02-10 2015-02-10 基于jtag调试方式实现通用型故障注入系统和故障注入方法

Country Status (1)

Country Link
CN (1) CN104657247B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471551A (zh) * 2015-12-07 2016-04-06 中国航空工业集团公司西安航空计算技术研究所 一种基于数字电路的sof、crc及eof错误注入方法
CN106598799A (zh) * 2016-12-16 2017-04-26 郑州云海信息技术有限公司 一种故障注入模拟系统及故障管理系统
CN107526351A (zh) * 2017-07-27 2017-12-29 中国航空综合技术研究所 一种基于jtag的通用型故障注入方法及其装置
CN107729231B (zh) * 2017-09-19 2021-02-02 北京东土科技股份有限公司 一种基于操作系统的故障注入方法及装置
RU2697629C1 (ru) * 2018-02-13 2019-08-15 Акционерное общество "Омский научно-исследовательский институт приборостроения" (АО "ОНИИП") Устройство для имитации неисправностей в программно-аппаратных системах
CN109213680B (zh) * 2018-08-28 2022-01-25 康烁 基于嵌入式软件仿真器的自动化测试方法
CN109739774A (zh) * 2019-01-25 2019-05-10 上海创景信息科技有限公司 Edac故障注入与检测方法
CN110580226B (zh) * 2019-09-23 2021-09-14 上海创景信息科技有限公司 操作系统级程序的目标码覆盖率测试方法、系统及介质
CN111722948B (zh) * 2020-06-05 2023-06-13 河海大学常州校区 一种arm指令集软错误故障注入系统及其方法
CN112015604B (zh) * 2020-07-22 2023-06-20 河海大学常州校区 一种基于Zynq FPGA的自动化可靠性评估系统及评估方法
CN112181747A (zh) * 2020-10-10 2021-01-05 中国运载火箭技术研究院 系统故障注入方法、注入装置及存储介质
CN112714015B (zh) * 2020-12-23 2023-08-22 上海科梁信息科技股份有限公司 通信数据故障注入方法及其系统、通信设备和存储介质
CN115795486B (zh) * 2023-02-07 2023-04-18 山东大学 基于二进制重写的故障注入防护方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783184B (zh) * 2010-01-15 2013-10-16 哈尔滨工业大学 基于fpga的ddr2内存故障注入工具及注入方法
CN102135920B (zh) * 2011-01-17 2013-06-05 中国航天科技集团公司第九研究院第七七一研究所 嵌入式星载计算机故障注入系统及其注入方法

Also Published As

Publication number Publication date
CN104657247A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
CN104657247B (zh) 基于jtag调试方式实现通用型故障注入系统和故障注入方法
CN107463473B (zh) 基于uvm和fpga的芯片软硬件仿真环境
Svenningsson et al. MODIFI: a MODel-implemented fault injection tool
CN107562969B (zh) 航空发动机控制系统软件的集成方法和装置
Artho et al. Modbat: A model-based API tester for event-driven systems
CN104536303A (zh) 一种故障注入方法
RU2010114709A (ru) Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа
CN110688313B (zh) 一种VxWorks操作系统下软件测试的故障注入方法
CN110704314B (zh) 一种嵌入式软件测试的故障注入方法
US20090248390A1 (en) Trace debugging in a hardware emulation environment
CN104216746B (zh) 一种星上设备dsp程序地面在线烧写的实时监控和校验方法
Svenningsson et al. Model-implemented fault injection for hardware fault simulation
CN107329889B (zh) 一种c编译器自动化测试的方法
JP4959941B2 (ja) ソフトウェアの双方向プロービング
CN104699617A (zh) 一种游戏用自动化测试方法
CN110704315B (zh) 一种嵌入式软件测试的故障注入装置
CN114325333A (zh) 一种高效率规范化的soc系统级验证方法及装置
CN107025171A (zh) 一种实现虚拟验证系统故障注入的方法
US10229029B2 (en) Embedded instruction sets for use in testing and error simulation of computing programs
CN110287112A (zh) 客户端的维护方法、装置及可读存储介质
CN108228454B (zh) 一种基于环境故障注入的机电产品软件可靠性评价方法
CN110633199A (zh) 用于支持智能合约的区块链的测试装置、方法及介质
Vinter et al. Fiscade-a fault injection tool for scade models
CN109739760B (zh) 一种代码调测测试方法及装置、存储介质
CN107688681A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 201203 Shanghai City, Pudong New Area Chinese (Shanghai) free trade zone 498 GuoShouJing Road No. 14 building block 22301-985

Patentee after: VISION MICROSYSTEMS (SHANGHAI) Co.,Ltd.

Address before: 201203 Shanghai Guo Shou Jing Road, Zhangjiang High Tech Park of Pudong New Area No. 498 Pudong Software Park building 14, block 22301-985

Patentee before: VISION MICROSYSTEMS (SHANGHAI) CO.,LTD.

CP03 Change of name, title or address
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: Block 22301-985, Building 14, No. 498 Guo Shoujing Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, March 2012

Patentee before: VISION MICROSYSTEMS (SHANGHAI) Co.,Ltd.

Country or region before: China