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.

[参考译文] TM4C1294NCPDT:编程芯片、验证失败。

Guru**** 2463330 points
Other Parts Discussed in Thread: TM4C1294NCPDT, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/653774/tm4c1294ncpdt-program-chip-verify-failed

器件型号:TM4C1294NCPDT
主题中讨论的其他器件: UNIFLASH

你(们)好

使用引导加载程序更新 TM4C1294NCPDT 芯片后、它停止工作。

我尝试使用 LM 闪存编程器通过 JTAG (ICDI 接口)对芯片进行重新编程、但编程后验证失败。  

我尝试对芯片 A 重新编程几次、它总是失败的、但是地址和错误位可能不同。  

我上传了"闪存内容"并将其与编程的.bin 文件进行比较、发现 不同地址存在许多错误(其中一个位为1而不是0)。

除了芯片损坏之外、其他问题可能是什么。

此致。

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

    您好 IgDor、

     我有几个问题。

    这是您的定制芯片还是 LaunchPad? 似乎是 LaunchPad。

    您将哪个引导加载程序加载到芯片中? 它是 TivaWare 引导加载程序示例之一吗?

    您能否尝试擦除闪存而不重新加载另一个程序映像?

    您还可以尝试 Uniflash 对芯片进行编程或擦除吗?

    最后、如果上述内容无法解决问题、您可以尝试使用 LM 闪存编程器解锁芯片吗? 您可以在 LM 闪存编程器的其它实用程序选项卡下解锁芯片。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,查尔斯
    感谢您的回答。
    我尝试了除 Uniflash 以外的所有上述操作(擦除闪存、解锁)。 我将尝试使用 Uniflash。

    这是 TM4C1294NCPDT 上的定制板。 我们根据 TI 参考项目之一使用自己的以太网引导加载程序。

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

    您好 IgDor、
    您的定制板具有什么调试探针? ICDI 仅在 LaunchPad 上。 您是否将 LaunchPad 用作调试探针来对客户电路板进行编程/调试?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 IgDor、
    您过去是否能够成功编程/擦除此定制板中的芯片?
    2.您有多少个定制板? 您是否在所有电路板上都有问题、或者仅在您报告的电路板上有问题?
    3.您是否有其他可用于编程/擦除芯片的调试探针(XDS100、XDS200、JLink 等)?
    4.由于您使用 launchpad 作为定制板的调试探针、您是否有另一个 LaunchPad 可供尝试?
    5.是的,请尝试 Uniflash。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.是的
    2.超过100。 这是第一次出现这个问题。
    3.否
    4、是的。 我将尝试使用另一个板。
    5正常

    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另一个要尝试的操作是首先擦除整个闪存、然后进行空白检查。 它通过还是失败?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,查尔斯

     

    另一个要尝试的操作是首先擦除整个闪存、然后进行空白检查。 它通过还是失败?

    是的、它通过了正常

     

    我尝试使用两个不同的 ICDI 板以及 UniFlash 工具对该板进行编程。

    结果相同、"验证失败"。

    此错误仅在一个电路板上发生。 所有其它电路板均已编程正常

    还有一点、当我多次上传闪存时、经过一次编程后、结果是不同的。 错误位于不同的位和 不同的地址。

     

    我非常担心、当我通过引导加载程序更新 FW 时会发生这种情况。

    是否有将芯片返回到完全默认状态的过程?

    此致。

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

    您好 IgDor、

    [引用 user="IgDor"]当我通过引导加载程序更新固件时,我非常担心这种情况。[/quot]

     很抱歉、让我更好地理解您。 我假设您尝试通过 JTAG 接口将引导加载程序编程到闪存中时出现程序验证问题、对吧? 当您说过通过引导加载程序更新 FW 时、我有点困惑。 固件是在引导加载程序运行时通过 UART 等通信接口加载/更新的应用程序。 我想确保哪个部件出现了程序验证问题。 是通过 JTAG 作为引导加载程序本身、还是通过您尝试更新到闪存的指定通信端口作为固件(应用)?

     除了引导加载程序之外、您是否可以尝试加载任何程序? 是否仅引导加载程序存在程序验证问题? 尝试加载任何 TivaWare 示例、并查看您是否仍然获得程序验证失败。 我将假定您将失败。 如果您在加载任何程序时继续看到程序验证失败、则我认为芯片损坏。  

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

    你(们)好,查尔斯

    很抱歉,我没有清楚解释。  

     该板通过 JTAG (ICDI 接口)进行编程并正常工作。

    对于 FW 更新、我们使用基于以太网的引导加载程序。 正如我在第一篇文章中所写的:

     "使用引导加载程序更新 TM4C1294NCPDT 芯片后、它停止工作。

    我尝试使用 LM 闪存编程器通过 JTAG (ICDI 接口)对芯片进行重新编程、但编程后验证失败。"

    因此、问题在使用引导加载程序更新 FW 后开始。

    问题仅出现在一个电路板上。 所有其它电路板(大约100个)都不存在此类问题。

    此致。

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

    您好 IgDor、

     感谢您的澄清。   

    [引用 user="IgDOR"]" 使用引导加载程序更新 TM4C1294NCPDT 芯片后、该芯片停止工作。[/quot]

    您能否告诉我引导加载程序是否停止工作或固件(应用程序)是否停止工作?

    [引用 user="IgDOR"]我尝试使用 LM Flash Programmer 通过 JTAG (ICDI 接口)对芯片进行重新编程、但编程后验证失败。"[/quot]

     您尝试通过 JTAG ICDI 重新编程什么? 是引导加载程序本身还是固件?  

    您能否使用引导加载程序下载其他 FW、例如 TivaWare 示例 boot_demo_emac_flash? 与您自己的固件相比、您是否会看到任何差异?

    无论如何、如果您有其他100个电路板在工作、除了这一个具有相同设置的电路板 、那么它会让我认为芯片在某种程度上不会按预期工作。   

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

    你(们)好,查尔斯

     您能否告诉我引导加载程序是否停止工作或固件(应用程序)是否停止工作?

    引导加载程序完成工作并进行电路板复位后、电路板停止工作(FW 应开始工作)

     

    您尝试通过 JTAG ICDI 重新编程什么? 是引导加载程序本身还是固件?

    任何 FW。 我尝试对引导加载程序、固件和其他.bin 文件进行编程、尝试使用不同的"Program Address Offset"、结果是相同的"Verify Failed"。

     

    我使用"LM 闪存编程器"上传闪存并将其与源文件进行比较、多个地址上的数据(始终是一个字节的一位)与源文件不匹配。  

    正如我在上一篇文章中所写的、如果我多次上传闪存、那么在一次编程后、并将其与源文件进行比较、结果会有所不同。 错误位于不同的位和不同的地址。 因此、每次上传(相同的闪存内容)我都会收到不同的错误。

     

    这是一个非常奇怪的故障、我可以擦除闪存、编程闪存、设置 MAC 地址、解锁器件、只对闪存进行编程/读取并产生错误。

    编程闪存是否会导致芯片缺陷?

    如果我要使用另一个调试器(XDS100、XDS200、JLink 等)、我可以更好地管理芯片吗?

    以下哪些调试器更好?

     

    一个芯片并不重要、但我们的客户遍布全球、有时他们必须进行 FW 更新、如果经常发生这种情况、这将是我们面临的一个大问题。

    此致

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

    您好 IgDor、

     我理解您的沮丧。  您能否再做一个实验并回答我的一些问题?

     您能否将 TivaWare boot_EMAC_FLASH 用作引导加载程序并首先使用 JTAG ICDI 将其加载到闪存中。 然后、您将使用引导加载程序通过以太网接口下载 boot_demo_emac_flash 示例。 加载 boot_demo_emac_flash 后、您将重新加载相同的 boot_demo_emac_flash、但这次您将使用 JTAG ICDI 接口加载 FW (boot_demo_emo_emac_flash)。 如果您使用 TivaWare 示例、您是否仍会获得程序验证失败?

     下面是我所做的。

     首先 使用 JTAG 接口加载 boot_emac_flash。 我在 CCS 中加载程序。

     2.运行 boot_emac_flash  

     3.在 LM 闪存编程器中,我更改为以太网接口,如下所示。 您的 IP 地址和 MAC 地址将不同于我的地址。

    4.指定 boot_demo_emac_flash.bin 文件。 然后单击"Program"。

    5.加载 boot_demo_emac_flash.bin 后,您将像下面那样更改回 JTAG ICDI 接口。 请注意、我使用的是 LaunchPad、因此选择 TM4C1294XL LaunchPad。

    这次通过 ICDI 再次对同一 boot_demo_emac_flash.bin 进行编程。 注意:我选择了"擦除必要页面"单选按钮、因此它不会擦除引导加载程序。 我还选择了"Verify after program (编程后验证)"单选按钮。 对于偏移量、我使用4000、因为这是 构建 boot_demo_emac_flash 时的偏移地址。 您可以看到、程序完成后、CRC 将在我的案例中进行检查并通过。 让我们看看您的结果是什么。  

    现在来回答一些问题。 您说所有其他99个板都在工作。 我想确保当您说其他99个板正常工作时、它们与问题板相比、受相同的 FW 更新程序的约束。 这意味着使用良好的电路板时、更新 FW 后、如果您尝试通过 ICDI 重新编程相同的 FW 映像、则会通过。

    [引用用户="IgDOR]

    编程闪存是否会导致芯片缺陷?

    如果我要使用另一个调试器(XDS100、XDS200、JLink 等)、我可以更好地管理芯片吗?

    以下哪些调试器更好?

     

    一个芯片并不重要、但我们的客户遍布全球、有时他们必须进行 FW 更新、如果经常发生这种情况、这将是我们面临的一个大问题。

    [/报价]

    我无法排除芯片是否有缺陷。 但是、通常情况下、编程闪存不应使芯片受损、除非您已经超过了数据表中指定的最大编程/擦除周期。

     您可以尝试使用您选择的任何调试探针。 XDS 可能更便宜。 一些论坛成员对 JLink 进行了出色的评审、但可能会产生更高的成本。 您需要根据不同的优缺点做出自己的决定。  

    我希望这是一个孤立的事件、因此我希望确保您至少尝试使用具有相同 FW 更新过程的其他合格电路板。 无论您在坏板上使用什么程序来重现问题、您都可以在好板上执行相同的操作、并通过测试。  

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

    你(们)好,查尔斯

    我尝试对"boot_emac_flash"工程进行编程、但在 CCS 中出现了相同的问题–"Verification Failed"(验证失败)。

     

    现在来回答一些问题。 您说所有其他99个板都在工作。 我想确保当您说其他99个板正常工作时、它们与问题板相比、受相同的 FW 更新程序的约束。 这意味着使用良好的电路板时、更新 FW 后、如果您尝试通过 ICDI 重新编程相同的 FW 映像、则会通过。

     这些电路板中的大多数都是客户电路板、到目前为止、我们没有进行整体 FW 更新(仅更新了少数电路板)。 但是、我们在办公室拥有的电路板(用于调试、QA 等) 、我们更新/重新编程了数十次、没有问题。

    问题板只编程了两次。 引导加载程序通过 ICDI 进行编程、然后通过引导加载程序加载 FW、电路板工作正常、一段时间后、我们将 FW 更新为新版本(通过引导加载程序)、它停止工作。

     我也希望这是一个孤立的事件,但根据我的经验,如果发生了一些奇怪和无法解释的事情,它将再次发生。

    感谢你的帮助。

    此致。

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

    您好 IgDor、

     如果您有机会、我还想让您检查的另一件事是 MCU 的电源。 请确保您的器件电源正常且稳定。 如果您没有太多工作要做、请查看您是否可以在坏板中换用新 MCU。 这样、我们就可以完全排除问题是芯片级还是板级。

    在屏幕截图中、您可以看到"Writing Flash @ Address 0x00004000.....(正在写入闪存地址0x00004000.....)" 这有点奇怪。 BOOT_EMAC_FLASH 应从0x0开始、而不是从0x00004000开始。 您过去是否使用不同的地址偏移重建了项目? 您能否检查 boot_emac_flash 示例随附的 bl_link_ccs.cmd?

    最后、您能否按如下所示检查闪存配置。 是否已选中"整个闪存选项"单选按钮进行擦除? 我提出这个问题的原因是、您之前说过您尝试在 LM 闪存编程器中运行空白检查、但它通过了吗?  如果您只单击"Erase Flash"按钮、它是否通过?

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

    你(们)好,查尔斯

    请确保您的器件电源正常且稳定。

    我使用示波器检查了所有电压、VDD 3.3V 和 VDDC 1.2V。 所有电压都将清除、而不会下降。 此外、我还使用多个不同的 PSU 检查了电路板。

     此外、我还使用示波器检查了所有 JTAG 信号。 看起来还可以

     

    在屏幕截图中、您可以看到"Writing Flash @ Address 0x00004000.....(正在写入闪存地址0x00004000.....)" 这有点奇怪。 BOOT_EMAC_FLASH 应从0x0开始、而不是从0x00004000开始。 您过去是否使用不同的地址偏移重建了项目? 您能否检查 boot_emac_flash 示例随附的 bl_link_ccs.cmd?

    以下是原始 boot_demo_emac_flash_ccs.cmd 文件的屏幕截图。

     

    我将 APP_BASE 更改为0x0并尝试再次调试、结果与"验证失败"相同

     

    最后、您能否按如下所示检查闪存配置。 是否已选中"整个闪存选项"单选按钮进行擦除?

    是的、它设置为整个闪存擦除。

     

    我提出这个问题的原因是、您之前说过您尝试在 LM 闪存编程器中运行空白检查、但它通过了吗?  如果您只单击"Erase Flash"按钮、它是否通过?

    是的、我多次"擦除闪存"、但始终通过。

     

     如果您没有太多工作要做、请查看您是否可以在坏板中换用新 MCU。 这样、我们就可以完全排除问题是芯片级还是板级。

    而我不会这么做。  可能是我还会检查一些东西。

    此致。

    Igor。

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

    此时、我认为芯片的闪存似乎存在一些与数据保留相关的问题。 如有需要、请联系您当地的 TI 销售办事处、获取将器件退回 TI 进行进一步分析的说明。 尽管如此、我仍然认为这是一个孤立的事件、不希望其他芯片表现出同样的行为。 在遇到程序验证问题之前、您能告诉我您使用此芯片的时间有多长吗? 再次对您所面临的不便表示歉意。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,查尔斯
    很抱歉耽误你的回答。
    我们在大约3年前开始使用 Tiva。
    我们的电路板大约投入生产1.5年(不是如此大规模)。
    在此期间、我们有两个烧坏的芯片、但它们用于调试。 可能是短路或静态的。 另一个是编程的、用于通过一次进行调试、但编程后效果良好。
    此致。
    Igor。