嵌入式系统中非侵入式软件实现的故障注入技术
1. Nexus标准特性概述
Nexus标准定义了一系列特性,并将其分为四个类别,每个Nexus类都是前一个类的超集。例如,Nexus 2类包含了Nexus 1类的特性,并提供了一些新特性。本文主要关注Nexus 3类的特性,但不会详细描述该类的所有特性,仅聚焦于理解故障注入技术所需的基本特性。
2. SWIFI技术的关键特性
2.1 可移植性
Nexus联盟的目标之一是规范通用调试接口,此接口能开发可在任何提供Nexus兼容端口的系统上运行的调试工具。遵循Nexus规范的工具或技术都能受益于这种可移植性。
我们的SWIFI技术仅利用Nexus提供的管理功能进行故障注入和观察目标系统活动,不依赖目标系统的特定特性,其规范仅基于Nexus标准核心定义的特性,不考虑扩展标准的现有提案,因此具有良好的可移植性,能表征任何Nexus兼容嵌入式系统在故障情况下的行为。
2.2 时间开销
多数SWIFI技术会引入可能改变被研究系统时间行为的开销,主要源于故障注入触发和所选系统内存位置的损坏计算。为解决此问题,我们提出使用Nexus的方法:
- 使用观察点触发故障注入 :观察点是Nexus调试电路的一部分,用于在不停止应用程序执行的情况下发出应用程序事件信号。Nexus可定义两种应用程序事件:给定代码指令的执行和对预定数据存储字的访问,我们的方法根据这两种事件触发故障注入。
- 利用实时内存访问能力注入故障 :通过利用Nexus电路的机制拦截代码和数据内存访问,可在应用程序使