各位大神:
最近在做TMS570LS1224这款芯片的自检试验,开机自检基本没有问题了,故障注入也部分起作用了。但是SPNU550B安全手册上7.8节等章节中,均有说明,在CPU自检完成后会重启系统,请问如果做在线的CPU自检,需要考虑什么问题?应该如何操作。虽然CPU自检后重启,保存了各个寄存器,但是CPU重启,会造成主程序重启,我在主程序中做的一些变量的值将被重新初始化,这明显是有问题的?有知道如何做CPU在线自检的请不吝赐教,谢谢!
期待大家的回复。
Susan Yang:
self-test的过程是:(1)先保存相关寄存器;(2)然后进入IDLE状态进行自检,自检完成会复位;(3)还原CPU相关寄存器;关于CPU自检:The LBIST tests must be triggered by software. User may elect to run all tests, or only a subset of thetests based on the execution time, which can be allocated to the LBIST diagnostic. This time sliced testfeature enables the LBIST to be used effectively as a runtime diagnostic with execution of test time slicesper safety critical loop as well as a comprehensive test for CPU fault during MCU initialization.用户可以选择使用哪种方式自检,在自检前您也可以禁用相关的中断
user5886979:
回复 Susan Yang:
Susan Yang:
首先,非常感谢您的解答,其实您的这个回答我在另外一篇提问上已经看到了。 我这里主要想问的是:CPU复位后,虽然相关寄存器都保存了,但是,用户自己的变量值和缓冲区内容是不是已经全部重新初始化了? 用户数据是否应该自己做保护?如果是,那么CPU重启了,用户的初始化程序又从main()函数重新执行了,如何才能保护用户使用的RAM呢?困扰了好久了,还没有想明白呢?
gaoyang9992006:
回复 user5886979:
是的,那些RAM里的数据肯定是要初始化的,重要数据保存RAM是不现实的,特别是复位重启后。想要保存数据复位不丢,最好的方法还是保存到Flash。