全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)
如果通过标注来标注了异常字行,那么在算法设计的时候,检查到之后应该跳过这一行的数据。
- 可以纠正的ECC在PFlash中是可以忽略的,相应的信息只是可以用来提供信息用于后续的分析。如果在DFlash中,这个信息可以不用考虑。处理,都在FEE的处理机制中实现。
- 错误处理,可以分为两大类:第一,致命类;第二是警告类。如果启动代码检查到了致命错误,会直接停止接下来的运行,不会启动用户代码等待WDT复位。假如检查到的是警告类的,那么启动还是会继续的,接下来会进行故障的报出。
- 针对致命类的严重错误,一般来说是硬件错误或者配置数据错误。
- 当Flash正在执行操作的时候执行reset,这个属于非常规的操作,应该尽量避免。
- 擦除的过程中中断,可能会导致有些范围的数值处于0和1之间。
- 编程中断,可能有的地方依然会保持擦除的状态,也有可能会有垃圾数据,还有可能会有部分数据不稳定。针对这类错误,一般都是擦除重新写入。
- 在进行EEPROM的模拟时,可以在写外之后多写一个page用来标注一下,表征写入的动作完成了。
- 标注的方法一般来说就是多写一个page。
- 在单片机中存在两种ECC,一个是传统的ECC,还有一种是安全ECC。
- 如果要进行ECC功能的测试,就得制造错误的数据。制造的时候,一般需要先禁用ECC之后写入相应的写入条件。
- 如何制造ECC的触发条件,在英飞凌的SafeTlib中有。
- SafeTLib也有在启动时候测试ECC的功能。
进行ECC测试的时候需要用到几种错误模式,一般都是把这些错误模式存储到PFlash中,之后加载使用。常用的几种错误模式,在这里给出来了相关的描述。
- 诊断的覆盖度跟使用的检查模式是相关的。
- 这一页介绍了SMU的上报可靠性的检查,其实跟前面的ECC的检查类似,只是这里增加了一个Alarm的激活。
- 进行启动测试的时候,尽量是在中断阻塞下进行,不然可能会有数据的一致性问题。
- 进行Flash的操作检查等相关的代码,尽量存放在RAM之中。
- 在进行执行功能之前,应该先清除测试故障信息。而这部分测试故障信息,是在启动阶段产生的。
这样,PMU相关的文档基本看完了。这部分之前接触的很少,看得比较头大。的确是耗费了比较漫长的时间,但是这个模块相关的功能一般来说是不难的,大部分都有成熟的解决方案。