snifer

[原创]ADSP BF561使用故障注入的实现原理

0
阅读(3168)

最近在用ADSP BF561做一个图像处理的工程,由于ADSP BF561具有两个DSP内核,都能够达到600Mhz,因此特别适合进行图像处理,我在用visual DSP++调试C++程序时,用到了故障注入法,在这里,我把故障注入法简单做一介绍。

 由于在在真实目标机系统中,判断故障是否产生,和注入的故障是否生效,是十分困难的一件事情,要得到结果,必须有监测设备和环境,对目标系统进行监控,最难的是注入某种故障,让被测系统程序执行异常处理分支,在外部硬件环境下无法监测得到的。

 真实目标机的故障结果分析采用方法

1、通讯线路添加监控器,捕获通信线路上的数据,进行分析
2、对特殊硬件状态进行监控,进行分析
3、 对三总线进行监控,分析数据 
 4、在通讯线路添加监控器,捕获通信线路上的数据,进行分析
 ADSP BF561系统中,常用的通讯口有串口(RS422,RS485,RS232,RS429)、I2C、CAN口、LIN口、以太网等,在出现某种故障时,被测系统程序可能通过这些中线向外发送信息,通过获取这些信息,就能分析系统故障。这是常常采用的方法。
  
对特殊硬件状态进行监控,进行分析 有些系统,当出现某种系统故障时,激活被测系统中的外部指示状态,表明是故障出现的类别和原因,从而分析故障。 
对三总线进行监控,分析数据  有些系统,故障处理既没有通过总线向外发送数据信息,也没有外部状态表现,可能只是程序执行了某些路径分支,这就的通过一些白盒测试工具,比如奥吉通公司的HTEST、CODETEST等硬件辅助工具,通过控制总线,数据总线和地址总线获取CPU信息,分析执行代码得出故障情况。
 
  不依赖于任何硬件系统,即虚拟目标机。他所需要的一切电信号和数据,采用数学平台的方法,将ADSP BF561硬件特性从系统中剥离出来,通过开发CPU指令、常用芯片、I/O、中断、时钟等模拟器在HOST上实现嵌ADSP BF561的功能。
 
 
ADSP BF561系统中都可以通过地址来操作实现各种功能。比如对寄存器、内存和I/O都分配了地址,通过对这些地址的操作,就可以实现对这些对象的操作了。其实原理很简单,在实践中不断的验证你所用到的原理,互相依存,互相促进,能力很快就能提升。