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

文档序号:8339494阅读:443来源:国知局
基于jtag调试方式实现通用型故障注入系统和故障注入方法
【技术领域】
[0001]本发明涉及一种故障注入系统和故障注入方法,具体地,涉及一种基于JTAG调试方式实现通用型故障注入系统和故障注入方法。
【背景技术】
[0002]现有故障注入方案有三种:硬件故障注入、仿真故障注入和软件故障注入。其中硬件故障注入用于完成物理级的故障注入,仿真故障注入通过改变逻辑和时间开销达到故障注入的效果,而软件故障注入是通过生成软件级的错误,从而造成硬件级的故障。现有的软件故障注入方式,是通过外部设备产生故障信号,将该故障信号注入给被测设备,或者在被测系统的源代码中植入故障代码从而实现软件故障注入。

【发明内容】

[0003]针对现有技术中的缺陷,本发明的目的是提供一种基于JTAG调试方式实现通用型故障注入系统和故障注入方法,其通过被测系统的JTAG接口连接被测系统,在不改变目标系统目标代码,不损坏被测系统硬件的前提下,通过改变被测系统内存、寄存器值来模拟硬件故障的产生,从而达到故障注入的目的。
[0004]根据本发明的一个方面,提供一种基于JTAG调试方式实现通用型故障注入系统,其特征在于,包括:
[0005]代码分析模块:加载被测二进制代码程序和相关的符号信息,解析符号信息和被测二进制代码之间的关联关系,对被测二进制代码进行反汇编,分析指令类型,依据某种策略划分指令执行单元;
[0006]故障执行模块,接收运行控制和分析模块的指令并根据指令要求对被测系统进行操作,将操作结果返回给运行控制和分析模块;
[0007]故障定义模块,用于定义故障内容,需要定义故障各个阶段需要对被测系统进行的操作;
[0008]运行控制和分析模块,用于控制故障注入的过程和对故障结果进行分析;
[0009]报告生成模块,用于将上述各个模块及故障注入的实际执行情况生成报告。
[0010]优选地,所述故障执行模块通过网络与运行控制和分析模块连接,通过JTAG数据线与被测系统的JTAG接口连接。
[0011]优选地,所述故障各个阶段包括故障注入前、故障注入时机、故障注入内容、故障检查点、故障检查对象、故障注入完成后。
[0012]本发明还提供一种基于JTAG调试方式实现通用型故障注入方法,其特征在于,包括以下步骤:
[0013]步骤一:加载被测二进制程序和相关符号信息,对被测程序进行反汇编,分析指令类型并依据某种策略划分指令执行单元,建立被测程序与符号信息之间的关联关系;
[0014]步骤二,针对被测程序建立故障事件,定义故障注入各个阶段所要进行的操作,设置故障执行前需要做的操作、故障触发条件、故障注入内容、故障检查点、故障检查内容等各种操作;
[0015]步骤三:通过仿真器,下载被测程序和相关配置信息,按照故障各阶段的定义执行故障注入过程;
[0016]步骤四:根据仿真器的指令反馈信息,检测故障触发条件是否满足,若满足故障注入条件,则执行故障注入内容的相关指令,将故障注入到被测设备中;
[0017]步骤五:检测故障检查点是否触发,当满足故障检查点的条件后,执行故障检查内容的相关指令,验证被测设备和程序,被注入故障后的执行结果是否跟预期结果一致;
[0018]步骤六:执行故障注入完成后的相关指令内容,结束一条故障注入事件;
[0019]步骤七:重复步骤三、步骤四、步骤五、步骤六,直到所有预定义的每条故障注入事件全部执行或由用户手动停止执行;
[0020]步骤八:对执行过的故障注入事件进行分析,得出每条故障注入实际执行结果和总体执行结果,根据用户设定和用户自定义的报告模板,生成故障注入结果报告。
[0021]与现有技术相比,本发明具有如下的有益效果:本发明不在被测系统中植入程序,不修改被测系统相关代码,更真实的反映被测系统在注入故障后的执行情况。本发明的故障执行模块采用具有调试功能的JTAG接口对被测系统进行故障注入,具有通用性,不会破坏被测系统的硬件环境。
【附图说明】
[0022]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0023]图1为本发明基于JTAG调试方式实现通用型故障注入系统的原理框图。
【具体实施方式】
[0024]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0025]如图1所示,本发明基于JTAG调试方式实现通用型故障注入系统包括:
[0026]代码分析模块:加载被测二进制代码程序和相关的符号信息,解析符号信息和被测二进制代码之间的关联关系,对被测二进制代码进行反汇编,分析指令类型,依据某种策略划分指令执行单元。
[0027]故障执行模块,主要由基于JTAG调试方式实现的JTAG仿真器构成,该模块通过网络与运行控制和分析模块连接,通过JTAG数据线与被测系统的JTAG接口连接。该模块接收运行控制和分析模块的指令并根据指令要求对被测系统进行操作,将操作结果返回给运行控制和分析模块。该模块所处理的指令包括读写寄存器、读写内存、设置或取消断点、监控被测系统是否处于停止状态、驱动被测系统运行、驱动被测系统走单步、停止被测系统的运行、复位被测系统及其它调试相关命令。
[0028]故障定义模块,用于定义故障内容,需要定义故障各个阶段需要对被测系统进行的操作。这些阶段包括:故障注入前、故障注入时机、故障注入内容、故障检查点、故障检查对象、故障注入完成后。
[0029]故障注入各阶段的设置内容包括:(I)故障注入前,用于设置注入故障前需要对被测系统进行的操作。包括复位被测系统、下载被测程序、修改程序入口等。(2)故障注入时机,用于设置注入故障的时间点。包括被测程序运行到某个位置、被测程序触发某个断点、被测程序达到某种覆盖率、寄存器或某个内存值变为某个指定的值等。(3)故障注入内容,用于设置对被测程序和系统进行修改的一系列操作。包括修改寄存器、修改外设寄存器、修改内存值、修改全局变量值、修改程序指针等。(4)故障检查点,用于设置终止被测程序和被测系统运行的终止条件。包括触发某个断点或触发某些中断、运行
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1