主题中讨论的其他器件: UNIFLASH
你(们)好
使用引导加载程序更新 TM4C1294NCPDT 芯片后、它停止工作。
我尝试使用 LM 闪存编程器通过 JTAG (ICDI 接口)对芯片进行重新编程、但编程后验证失败。
我尝试对芯片 A 重新编程几次、它总是失败的、但是地址和错误位可能不同。
我上传了"闪存内容"并将其与编程的.bin 文件进行比较、发现 不同地址存在许多错误(其中一个位为1而不是0)。
除了芯片损坏之外、其他问题可能是什么。
此致。
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 芯片后、它停止工作。
我尝试使用 LM 闪存编程器通过 JTAG (ICDI 接口)对芯片进行重新编程、但编程后验证失败。
我尝试对芯片 A 重新编程几次、它总是失败的、但是地址和错误位可能不同。
我上传了"闪存内容"并将其与编程的.bin 文件进行比较、发现 不同地址存在许多错误(其中一个位为1而不是0)。
除了芯片损坏之外、其他问题可能是什么。
此致。
您好 IgDor、
我有几个问题。
这是您的定制芯片还是 LaunchPad? 似乎是 LaunchPad。
您将哪个引导加载程序加载到芯片中? 它是 TivaWare 引导加载程序示例之一吗?
您能否尝试擦除闪存而不重新加载另一个程序映像?
您还可以尝试 Uniflash 对芯片进行编程或擦除吗?
最后、如果上述内容无法解决问题、您可以尝试使用 LM 闪存编程器解锁芯片吗? 您可以在 LM 闪存编程器的其它实用程序选项卡下解锁芯片。
你(们)好,查尔斯
另一个要尝试的操作是首先擦除整个闪存、然后进行空白检查。 它通过还是失败?
是的、它通过了正常
我尝试使用两个不同的 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。