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.

[参考译文] EK-TM4C1294XL:USB 引导加载程序未按预期工作

Guru**** 2613335 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/770256/ek-tm4c1294xl-usb-bootloader-not-working-as-expected

器件型号:EK-TM4C1294XL

你好、

我一直在尝试使用 USB DFU 来获取 boot_serial 示例。  

当没有加载程序时、我能够访问 ROM 引导加载程序、并且器件被识别为 TIvawve 固件更新。

我已经在 BL_CONFIG.h 中设置了初始化 USB 所需的端口和时钟所需的每个定义

但是、如果我加载配置的 boot_serial、则没有连接、并且 Windows 似乎无法识别器件。

如果我选择(不可识别) USB 设备并查看其属性、我可以看到有一个产品 ID、但没有供应商 ID、之后有一些 gibberish。

这是事件时间戳和 Windows 设备状态:

已配置设备 USB\VID_0000&PID_0002\5&36a3b657&0&1。

驱动程序名称:usb.inf
类 GUID:{36FC9E60-C465-11CF-8056-444553540000}
驾驶日期:2006年6月21日

Windows 已停止此设备,因为它报告了问题。 (代码43)

对 USB 设备描述符的请求失败。

我已确保在 bl_config.h 中将供应商 ID 设置为默认 TI 设置0x1cbe。 我哪里出错了?

此致、

Daan Driessen

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

    您好、Daan、

     我对你的问题不是很清楚。  我假设您正在尝试使用内置的 USB ROM 引导加载程序加载应用固件。 是这样吗?

     如果是这种情况、那么下面就是我刚刚尝试的。

     1.首先完全擦除闪存。

     2.配置 USB DFU 接口。 将电路板的 USB 设备端口插入 PC。 LaunchPad 上有 USB 调试端口和 USB 器件端口。 您将把这两个设备都连接到 PC。

    3.我使用 USB DFU 模式下载一个简单的 project0示例。  

    我不清楚的地方是、您说您想让 boot_serial 示例与 USB DFU 一起工作。 boot_serial 示例本身就是一个使用 UART 接口的基于闪存的引导加载程序。 我不知道为什么要使用 USB DFU 来下载另一个引导加载程序、而不是应用固件。

     如果要使用 UART 作为引导加载接口、则有一个基于 ROM 的 UART 引导加载程序以及一个基于闪存的 UART 引导加载程序。 首先擦除闪存后、您可以选择基于 ROM 的 UART 引导加载程序、如下所示。  

    如果您希望使用基于闪存的 UART 引导加载程序、则可以使用 CCS 或 LMFLASH 编程器首先加载引导加载程序、在本例中、boot_serial 会加载到闪存的开头。 一旦 boot_serial 运行、它会将应用程序下载到闪存中的不同存储器位置。

    请注意、无论使用的是 ROM 库还是闪存引导加载程序、如果闪存中已有应用程序固件、引导加载程序都不会再次下载应用程序固件、除非您强制执行此操作。 如果引导加载程序看到已驻留在闪存中的应用程序、它将跳转到应用程序以执行。

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

    您好、Charles、

    不幸的是、这不是我要尝试的。 我已经使用了 ROM 引导加载程序、并且知道它可以正常工作。 我正在尝试让基于闪存的引导加载程序与 USB 一起工作。
    我知道 boot_serial 示例用于 UART、但在配置文件中、您应该能够创建该示例、以便引导加载程序使用 USB perhiperal。  

    我不需要专门通过 DFU 刷写新新的引导加载程序。

    但是、在我对应该具有 USB 引导加载程序的 boot_serial 进行编程并添加 boot_dem1之后、仍然是如此。 当我按下 SW1时、USB 设备将无法被 Windows 识别。  
    即使没有刷写 boot_demo1 (因此我确定引导加载程序会运行)、也无法识别 USB。  

    此致、

    Daan  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我也有类似的问题。 在哪里可以获得用于 Linux 的 LM 闪存编程器? 我已经看到过它、但我不知道它是否在 Linux 中工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Daan、

    如果您想使用基于闪存的 USB 引导加载程序、我建议您查看 USB_stick_update 示例。 USB_stick_update 类似于 USB 引导加载程序。 需要在闪存开始时对其进行初始编程。 一旦运行,USB_stick_update 将通过从 USB 记忆棒读取二进制文件来下载应用程序固件。 还有一个 USB_stick_demo 应用程序、该应用程序应从 USB 记忆棒加载到闪存中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、编辑:
    LM 闪存编程器只适用于 Windows。 没有 Linux 版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。

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

    我将尝试查看我是否能够使其正常工作、只需订购一根带有 USB-A 插座的 USB OTG 电缆、以便插入 USB 器件。
    但是、您是否知道应用程序无法正常工作的问题是什么?

    此致、

    Daan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Daan、
    我不知道它为什么不起作用。 也许枚举没有完成。 我建议您首先让 USB_stick_update 示例起作用、然后查看它是否适合您的需求。 如果要将 boot_serial 从 UART 引导迁移到 USB 引导、我还建议您浏览引导加载程序用户指南。 它位于中 /docs/SW-TM4C-BOOTLDR-UG-2.1.4.178.pdf.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Daan、
    我没有听到你的反馈。 我假设您认为 USB_stick_update 可用作参考。 我现在要关闭这个线程。 如果您有新问题、您可以打开新主题、如果问题未得到解决、则可以重新打开此主题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    USB 电缆刚刚到达、USB_stick_update +演示的工作原理相同。 仍然无法使用从笔记本电脑到设备的 USB 电缆进行闪存、但由于这似乎可以正常工作、我将改用它。

    感谢您的帮助!

    此致、

    Daan