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.

[参考译文] TM4C123GH6ZRB:TI ROM 引导加载程序枚举故障

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1127902/tm4c123gh6zrb-ti-rom-bootloader-enumeration-failures

器件型号:TM4C123GH6ZRB
主题中讨论的其他器件:LMFLASHPROGRAMR

您好!

我最近开始使用加载在 TM4C ROM 中的 TI 引导加载程序时遇到一些编程故障。 我们在开发 launchpad 板上以及在我们的定制板上的 IC 上都遇到了此问题。 我还应该补充的是、当使用 TI 的 LMFLASHPROGRAMR 时、它甚至会失败、并返回错误代码-1。

下面是一个日志、显示设备未能枚举:

[    5.614518] hub 1-1.3.2.1:1.0: USB hub found
[    5.619131] hub 1-1.3.2.1:1.0: 4 ports detected
[    5.666698] usb 1-1.3.4: new full-speed USB device number 9 using xhci-hcd
[    5.776725] usb 1-1.3.4: device descriptor read/64, error -32
[    5.996730] usb 1-1.3.4: device descriptor read/64, error -32
[    6.216706] usb 1-1.3.4: new full-speed USB device number 10 using xhci-hcd
[    6.326731] usb 1-1.3.4: device descriptor read/64, error -32
[    6.546731] usb 1-1.3.4: device descriptor read/64, error -32
[    6.766706] usb 1-1.3.4: new full-speed USB device number 11 using xhci-hcd
[    6.776148] usb 1-1.3.4: Device not responding to setup address.
[    6.999147] usb 1-1.3.4: Device not responding to setup address.
[    7.216704] usb 1-1.3.4: device not accepting address 11, error -71
[    7.316707] usb 1-1.3.4: new full-speed USB device number 12 using xhci-hcd
[    7.326148] usb 1-1.3.4: Device not responding to setup address.
[    7.549146] usb 1-1.3.4: Device not responding to setup address.
[    7.766705] usb 1-1.3.4: device not accepting address 12, error -71
[    7.773266] usb 1-1.3-port4: unable to enumerate USB device

无法响应设置且不接受地址的器件是 TM4C、因为连接到集线器的其余器件工作正常。

我在 Linux 上运行、并尝试了各种命令以强制器件再次尝试和枚举、但似乎持续出现上述错误。

    • 重置整个集线器:
      echo 0 >/sys/bus/USB/drivers/USB/1-1/ Authorized
      echo 1 >/sys/bus/USB/drivers/USB/1-1/ Authorized
    • 缩小到特定端口的范围:
      echo 0 >/sys/bus/USB/drivers/USB/1-1.3/ Authorized
      echo 1 >/sys/bus/USB/drivers/USB/1-1.3/ Authorized
    • 卸装和重新装订 USB 和 PCI 驱动程序

      对于/sys/bus/USB/drivers/*/*:*中的 i;请执行

     [-e "$i"]||继续
     回显"${I#*/}">"${I%/*}/解除绑定"
     回显"${i#*/}">"${i%/*}/bind
    完成
     
    对于/sys/bus/pci/drivers/*/*:*; do
     [-e "$i"]||继续
     回显"${I#*/}">"${I%/*}/解除绑定"
     回显"${i#*/}">"${i%/*}/bind
    完成

有关此引导加载程序是否存在任何已知问题? 或可能的解决方案来解决这一问题?

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

    您好!

     是否正在尝试通过调用 ROM_UpdateUSB()将 USB 端口用作引导加载接口?

    [引用 userid="528320" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forume/112792/tm4c123gh6zrb-ti-rom-bootloader-枚 举-failures"]我最近开始遇到一些编程故障

    问题是否零星存在、这意味着它有时可以工作? 它发生故障的频率如何?  

    您是否可以在 Windows 主机系统上尝试 LaunchPad 和定制板? 我只是想排除它是否依赖于操作系统。  

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

    您好!

    这只是使用空白芯片、因此闪存中没有内容、这意味着 TI 引导加载程序应在启动时从 ROM 加载。

    问题似乎是零星的、发生的时间为~10%。

    我们尚未在 Windows 计算机上遇到此问题、但在 Windows 端进行的测试明显较少。 但是、在 Windows 上使用 LMFLASHPROGRAMR 时、我们会在 LaunchPad 上遇到闪存编程故障。 这通常至少在成功的程序之前发生一次、导致随机%的-1误差:

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

    您好!

     我尝试使用 ROM 引导加载程序加载简单的闪烁程序超过10次、我从未遇到任何问题。 在 LM 闪存编程器上显示错误之前、Windows 设备管理器显示了什么? 它是否具有正确的枚举? 请注意、我将 LaunchPad 直接连接到 PC USB 端口。 我不使用任何 USB 集线器。  

     至于 Linux、我对该平台的经验并不多、也没有太多可提供的内容。 如果您将 LaunchPad 直接插入到主机而不是通过集线器、这会有什么不同?

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

    您好!

     还有几个要注意的问题。 擦除闪存后、您将在 Windows 设备管理器中看到两个 DFU 设备。 ROM 引导加载程序将枚举为"Setellaris Device Firmware Upgrade"。 但是、还有一个由板载 ICDI 调试探针枚举的"Stellaris ICDI DFU 器件"。 您必须选择正确的 DFU 器件、否则将损坏错误的器件。  LauchPad 板上有两个 USB 端口。 一个是 Debug USB 端口、另一个是 Device USB 端口。 我假设您希望通过设备 USB 端口下载代码。 器件 USB 端口是 ROM 引导加载程序作为 DFU 器件进行枚举的位置。  

    您还可以使用 C:\Program Files (x86)\Texas Instruments\Tiva\USB_examples\dfuprog.exe 中的命令行 dfuprog.exe 通过 USB 下载程序、ROM 引导加载程序在 DFU 模式下枚举。