主题中讨论的其他器件:UCD3138
各位专家:
我使用 UCD3138参考该文件来实现程序升级。
e2e.ti.com/.../Using-D1D4-and-PMBus-for-Program-Upgrades-in-the-field.pdf
正常情况下、电源具有主输出、但一个 I/O 引脚异常。
然后、关闭电源。
再次上电、电源处于引导闪存中、我使用内存转储读取主程序。
主程序被擦除、数据为 FF。
发生了什么情况导致主程序被擦除的可能性?
谢谢!
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.
各位专家:
我使用 UCD3138参考该文件来实现程序升级。
e2e.ti.com/.../Using-D1D4-and-PMBus-for-Program-Upgrades-in-the-field.pdf
正常情况下、电源具有主输出、但一个 I/O 引脚异常。
然后、关闭电源。
再次上电、电源处于引导闪存中、我使用内存转储读取主程序。
主程序被擦除、数据为 FF。
发生了什么情况导致主程序被擦除的可能性?
谢谢!
听起来好像您有一个硬件后门正在擦除闪存。
在 main 函数的开头附近检查、看看是否有这样的情况:
//检查 FAULT2是否被拉高,FAULT0是否被拉低。
//如果它们被转到 ROM。
IF (杂波模拟 Regs.GLBIOREAD.bit.fault2_IO_read &!杂波模拟 Regs.GLBIOREAD.bit.FAULT3_IO_Read)
{
PMBus_READ_WRITE_ROM_MODE (PMBus_WRITE);
}
或者可以调用擦除 pflash 或 clear_integrity 字。 当然、I/O 引脚可能会有所不同。
擦除 pflash 可以擦除所有内容、这也会擦除 bootflash。 您可能处于 dong 写入 ROM 模式或清除完整性字、这可能会清除闪存末尾的校验和、这可能会导致引导闪存代码擦除程序闪存、引导闪存除外。 我必须看到您的引导闪存代码才能看到。 由于它是064、我不确定您是在更新一个块并下载另一个块、还是写入除引导闪存之外的整个存储器。 这也可能对原因产生影响。 基本上、您需要仔细查看引导加载程序代码、看看它可能会在哪里擦除正在擦除的任何存储器、然后从那里向后工作。