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.

[参考译文] UCD3138064:程序升级问题

Guru**** 2502205 points
Other Parts Discussed in Thread: UCD3138

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/968111/ucd3138064-question-of-program-upgrades

器件型号:UCD3138064
主题中讨论的其他器件:UCD3138

各位专家:

我使用 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、我不确定您是在更新一个块并下载另一个块、还是写入除引导闪存之外的整个存储器。  这也可能对原因产生影响。  基本上、您需要仔细查看引导加载程序代码、看看它可能会在哪里擦除正在擦除的任何存储器、然后从那里向后工作。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这里已经有很长一段时间了、没有任何进一步的问题、因此我将假定问题已经解决。