您好!
需要一些有关 MCU 故障调查的建议-在对某些卡上工作一段时间后、闪存中断矢量的一部分是 altert。 因此、系统停止工作。
1.你知道这样的问题吗?
2. 在运行时、是否有任何从 TI 方面启动的写入到闪存中的中断矢量区域?
3。 是否有任何系统函数使用写入闪存中断矢量?
4.是否有硬件问题会导致此类现象?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
需要一些有关 MCU 故障调查的建议-在对某些卡上工作一段时间后、闪存中断矢量的一部分是 altert。 因此、系统停止工作。
1.你知道这样的问题吗?
2. 在运行时、是否有任何从 TI 方面启动的写入到闪存中的中断矢量区域?
3。 是否有任何系统函数使用写入闪存中断矢量?
4.是否有硬件问题会导致此类现象?
谢谢
你(们)好、Gary
是的、在不同的卡中、中断矢量以不同的方式发生了变化
请参阅下面的、运行 MCU 与三个失败:
| 地址 | 数据 | |
| 好的 | FFE0 | FFFF46B738A5FFFF8CB7FFFF0AADFFFFF0ADE2A1FFFF02B3FFFF6680 |
| 失败#1 | FFE0 | FFFF46B738A5FFFF8CB7FFFF0AADFFFFF0ADE2A1FFFF02B3FFFF2200 |
| 失败#2 | FFE0 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
| 失败#3 | FFE0 | FFFFFFFFFFBFBFF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFEFFFFFEFFFFEB |
什么原因会导致这种情况?
有什么建议如何调查此问题?
您可以参阅此文档
https://www.ti.com/lit/an/slaa729a/slaa729a.pdf?ts=1671108404259
请使用您的用例逐一检查表1中的项目、以查看是否有任何提示。
调查取决于您的代码、因为这几乎肯定是错误的。 编写代码的详细信息及其调用方式将有所帮助。
如果闪存写入代码是使用要写入的地址调用的函数、请在写入前添加对地址的完整性检查。
您的故障示例显示了不同类型的故障:
1) 1)只有复位矢量发生了变化。 发生这种情况的方法有两种。 代码会将要擦除的段复制到 RAM 中、擦除该段、然后将保存的数据与您的更改一起写回。 另一个是在不擦除段的情况下执行单字写入。 擦除会将所有位更改为1、而写入会将1转换为0。
2) 2)看起来像段擦除没有写入。
3) 3)可能是由于闪存时序发生器设置不正确而导致段擦除失败。
所有这些都建议使用不良数据执行您的闪存写入代码。 可能是因为其他一些故障(堆栈已改编)导致执行运行为通配。