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.

[参考译文] RTOS/EK-TM4C1294XL:用于固件下载的 USB CDC

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/731380/rtos-ek-tm4c1294xl-usb-cdc-for-firmware-download

器件型号:EK-TM4C1294XL

工具/软件:TI-RTOS

您好!

我想使用 PoC 通过 USB CDC 模式执行固件升级。

引导加载程序实现可用、但这使用 USB DFU 模式。 是否有任何示例程序使用 USB CDC 模式进行固件升级?

在这方面需要指导。

谢谢您、

Rahul

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

    希望这将对 您有所帮助:processors.wiki.ti.com/.../TI-RTOS_USB_DFU

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

    我的理解是、用于固件更新支持的引导加载程序代码主要位于 TM4C ROM 中、尽管闪存的一小部分必须具有自定义代码才能启动到 ROM 例程中。 如果您从德州仪器(TI)网站上获取 SPMU301D.PDF、您会发现大多数外设都使用自定义引导加载程序协议、但以太网使用标准 BOOTP、而 USB 使用标准 DFU 协议。 由于这些协议是在 ROM 中实现的、因此无法更改任何协议。 因此、您基本上必须使用 DFU。

    我假设您可能希望使用 CDC 而不是 DFU、因为您没有实现 DFU 的 USB 主机代码。 在这种情况下、您仍然需要自定义代码来处理通过 CDC 下载的固件。 如果您遇到这种情况、我想知道您拥有的 USB 主机代码是 CDC 更新所特有的(并且不支持 DFU)。

    您似乎有两个选择: 要么为 USB 主机获取 DFU 客户端(由于 USB 组织对 DFU 进行了标准化、此选项似乎更容易)-要么编写自己的引导加载程序、该引导加载程序将从闪存而不是 ROM 运行、并实施您自己的自定义 CDC 模式固件下载。 后者将更加困难、并且引导加载程序会占用一部分闪存空间、因为您无法使用 ROM 来提供其内置 DFU 支持。 此外、还存在一个额外的风险、即如果代码中的错误擦除闪存中的自定义 CDC 引导加载程序、则客户将遭受硬件错误的影响。

    Todd 引用的文档介绍了一个系统、其中固件的正常(非更新)模式为 CDC、但固件下载仍通过 DFU 协议进行。 换言之、CDC 不用于固件下载、而只是不升级时的模式。 我尚未了解该特定 TM4C 固件的确切详细信息、但 DFU 定义了一个器件、并提供特定命令将芯片重置为 DFU 模式、以便可以下载新的固件映像。 这是通过在重新编程闪存时切换到 ROM 代码来实现的。

    祝你好运、

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

    "我假设您可能希望使用 CDC 而不是 DFU、因为您没有实现 DFU 的 USB 主机代码。 在这种情况下、您仍然需要自定义代码来处理通过 CDC 下载的固件。 如果这是您的情况、我想知道您拥有的 USB 主机代码是 CDC 更新所特有的(并且不支持 DFU)。"

    =>是的、主机不支持 DFU 模式、器件应仅能够处理固件升级 VIS CDC。 目前、这是我拥有的唯一信息。

    =>到目前为止我还没有 USB 主机代码的访问权限。 但是、需要哪种类型的信息、您能更具体吗? 以便我只能要求提供所需的详细信息、而不是通用的详细信息。

    此外,我还提到您已共享的文档“TivaWareTmBoot Loader User's Guide”(TivaWareTm引导加载程序用户指南)。 本文档提供了有关使用 DFU 模式的 USB 引导加载程序的现有实现的良好信息。

    那么、是否有任何范围可以使用/引用可以 定制以转换为 CDC 模式的现有示例(processors.wiki.ti.com/.../TI-RTOS_USB_DFU 上提供了 bootloaderusb_completed)? 或者、我是否应该完全从零开始查看示例代码?

    谢谢您、

    Rahul

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

    您似乎有一些严格的要求。 我觉得你可能是自己的。

    Todd