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.

[参考译文] TM4C129XNCZAD:尝试下载时、LMFlash 在擦除时挂起

Guru**** 2394295 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/691633/tm4c129xnczad-lmflash-hangs-on-erasing-when-attempting-download

器件型号:TM4C129XNCZAD

尝试使用 LMFlash 对芯片进行编程。

到目前为止、我一直在使用 Spectrum Digital XDS200对我们的板进行编程、它工作正常。

为了让我们的电路板室无需获取 XDS200即可对电路板进行编程并加载所有相关工具、我正在研究是否允许通过 LMFlash 进行编程。

我对 BOOTCFG 进行了编程、以在复位时监控 PB1是否为低电平、从而触发引导加载程序。

当我在复位时强制 PB1为低电平时、电路板不会显示其正常的光图形并保持此模式。

将 LMFlash 指向正确的 COM 端口、并让它使用.hex 文件作为二进制文件进行编程。

屏幕底部的状态从"Idle"转换为"Erasing"、对我来说、这表示它在那里发现了看起来不错的"东西"(如果我没有运行引导加载程序、很快就会显示一个错误框)。

在 LMFlash 指示"偏置"后不久、我的电路板会通过其复位序列并正常启动。  LMFlash 长时间挂起"擦除"、最终会出现下载错误框。

我已经验证过、如果我没有在 LMFlash 上按下"Program"、我的电路板显然会无限期地停留在引导加载程序中(至少一分钟、直到我停止监控它)。

对这里发生的情况有什么想法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    LM Flash Programmer 需要.bin 文件、而不是 hex 文件。 我认为 CPU 尝试执行.hex 文件的 ASCII 映像时挂起。 您可以使用 CCS 和 XDS200连接到电路板、并在使用 LM 闪存编程器之后检查闪存的内容、以查看我的理论是否正确。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不幸的是、这不是。 我找到了将我的文件转换为.bin 格式的方法、它执行同样的操作。

    如第一个帖子中所示、在 LMFlash 切换到"擦除"之前安装的程序引导后、我先前下载的程序不会被擦除。 但是、如果 LMFlash 未运行、它将保持在引导加载程序模式。

    最终显示的错误是:"**错误**:发送下载命令失败!"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 LM 闪存编程器对空白部分进行编程吗? RBIAS 和 GND 之间是否有电阻器(`4.7K)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RBIAS 是开放的(我们不使用以太网)。
    此时、我们没有任何未编程的电路板。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果 RBIAS 保持开路、则 ROM 引导加载程序无法正常运行勘误表。 4.7K 10%的电阻器足以解决该问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此时、我无法说它实际上解决了问题、因为没有电路板转弯、我们无法到达引脚、但我们现在将保留该引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很不幸。 如果这是在电路板内部进行的重新编程,则可以通过在复位时看到 PB1为低电平时对应用程序代码中的 ROM_UpdateUART()进行特定调用来避免勘误表。 (引导配置寄存器未编程。) 在调用前、应用程序代码必须配置 UART 引脚和波特率。 对 ROM_UpdateUART()的调用绕过所有 ROM 引导加载程序接口的默认轮询,因此在没有 RBIAS 电阻器的情况下,它不会卡在以太网接口上。