首页> 中国专利> 基于JTAG调试方式实现通用型故障注入系统和故障注入方法

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

摘要

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

著录项

  • 公开/公告号CN104657247A

    专利类型发明专利

  • 公开/公告日2015-05-27

    原文格式PDF

  • 申请/专利权人 上海创景计算机系统有限公司;

    申请/专利号CN201510070563.2

  • 发明设计人 朱二刚;张必勇;陶钧;

    申请日2015-02-10

  • 分类号G06F11/26(20060101);

  • 代理机构31236 上海汉声知识产权代理有限公司;

  • 代理人郭国中;樊昕

  • 地址 201203 上海市浦东新区张江高科技园区郭守敬路498号浦东软件园14幢22301-985座

  • 入库时间 2023-12-18 08:54:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-29

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/26 变更前: 变更后: 申请日:20150210

    专利权人的姓名或者名称、地址的变更

  • 2017-12-15

    授权

    授权

  • 2015-06-24

    实质审查的生效 IPC(主分类):G06F11/26 申请日:20150210

    实质审查的生效

  • 2015-05-27

    公开

    公开

说明书

技术领域

本发明涉及一种故障注入系统和故障注入方法,具体地,涉及一种基于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调试方式实现通用型故障注入方法包括以下步骤:

步骤一:加载被测二进制程序和相关符号信息,对被测程序进行反汇编,分析 指令类型并依据某种策略划分指令执行单元,建立被测程序与符号信息之间的关联 关系;

步骤二,针对被测程序建立故障事件,定义故障注入各个阶段所要进行的操作, 设置故障执行前需要做的操作、故障触发条件、故障注入内容、故障检查点、故障 检查内容等各种操作;

步骤三:通过仿真器,下载被测程序和相关配置信息,按照故障各阶段的定义 执行故障注入过程。首先执行故障注入前的动作,如被测设备复位或重新下载被测 程序;

步骤四:根据仿真器的指令反馈信息,检测故障触发条件是否满足,若满足故 障注入条件,则执行故障注入内容的相关指令,将故障注入到被测设备中;

步骤五:检测故障检查点是否触发,当满足故障检查点的条件后,执行故障检 查内容的相关指令,验证被测设备和程序,被注入故障后的执行结果是否跟预期结 果一致;

步骤六:执行故障注入完成后的相关指令内容,结束一条故障注入事件;

步骤七:重复步骤三、步骤四、步骤五、步骤六,直到所有预定义的每条故障 注入事件全部执行或由用户手动停止执行;

步骤八:对执行过的故障注入事件进行分析,得出每条故障注入实际执行结果 和总体执行结果,根据用户设定和用户自定义的报告模板,生成故障注入结果报告。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改, 这并不影响本发明的实质内容。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号