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 DFU 复合器件

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/681151/rtos-ek-tm4c1294xl-usb-dfu-composite-device

器件型号:EK-TM4C1294XL

工具/软件:TI-RTOS

我已经在 TM4C1294 Launchpad 上运行了示例 USB DFU 程序、其中 DFU 升级模式通过 USR1按钮进行传递、并正常工作。

然后、我加载并按照 USB DFU 复合器件升级模式的说明进行操作、并执行 dfuprog.exe -e 命令、然后看到器件0列为 PID:0x0102。

然后、当我输入命令 dfuprog.exe -i 0 -m 时、我会收到消息"Switching device into DFU mode"。 但是、当我执行另一个 dfuprog.exe -e 命令时、响应为"找到0个器件"

在设备管理器中、我看到 Tivaware 设备升级固件(运行时模型)、在通用串行总线控制器下、我看到具有 VID:1CBE 和 PID:0102的 USB 复合设备。

可能出什么问题了?  

Thnaks、

Sam

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

    您使用的是哪种操作系统? Windows? 如果是、版本是什么? 您能否发布设备管理器的屏幕截图?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Windows 10。  仅 OTG USB 连接到 PC。  

    COM11列出的最后一个事件:

    驱动程序管理结束了为设备实例 ID USB\VID_1CBE&PID_0102&MI_00\6&3382D9DC&0&0000安装驱动程序 usbser.inf_amd64_d49c1a9bc63fc04e\usbser.inf 的过程,其状态如下:0x0。

    列出的 Tivaware Device Firmware Upgrade 最后一个事件:

    驱动程序管理结束了设备实例 ID USB\VID_1CBE&PID_0102&MI_02\6&3382D9DC&0&0002的驱动程序 usb_serial_dfu.inf_amd64_20ee184920bd438f\usb_serial_dfu.inf 安装过程,其状态如下:0x0。

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

    由于操作系统引起的 USB 枚举变化、TivaWare USB Composite 示例在 Windows 10中无法正常工作、因此我强烈怀疑您的 USB DFU Composite 也存在同样的问题。

    遗憾的是、我们目前没有解决该问题的方法(问题被认为是描述符中的问题)、因为其他较高优先级的项目在待审案件表中领先于它。

    您还可以在这里利用其他 USB DFU 示例吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、我如何告知客户更新固件?
    我已经尝试过以太网更新、但这已经成功了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是一个用于规划固件开发的假设性问题、还是意味着客户手中确实有一个器件、他们想要升级?

    DFU 和按钮应用似乎可行。 我拥有一台路由器、需要在上电期间按下重置按钮才能实现特殊功能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    用于 Tivaware 器件固件升级的驱动程序为2.1.1.71、日期为2015年12月15日
    这是足够高的版本吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sam、您好!

    我将尝试在 Win 7和 Win 10上运行 DFU 过程、以比较 Win 10是否是上述问题的根源、并查看固件升级驱动程序。 我不确定是否发布了适用于 DFU 的更新驱动程序。

    最新的 TM4C 驱动程序可从 以下位置下载:software-dl.ti.com/.../SW-TM4C-2.1.4.178.PATCH-1.0.zip

    在等待我的反馈时、如果需要、您可以尝试使用它。

    我打算明天再处理这个问题,但可能会推至星期五。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将 USB 的驱动程序更新为链接中的版本、它运行安装、但当我转到设备管理器时、它会显示 Microsoft 驱动程序。  如果我尝试更新、则表明已安装了最佳驱动程序。

    只有电路板的 OTG USB 连接到 PC。  我尝试重新启动电路板、但没有乐趣。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在设备管理器中更新驱动程序时、我通过选择"让我从列表中选择"和"拥有磁盘"来强制使用 TI 驱动程序。
    现在、这两个版本都显示了 TI 版本2.1.4.0。 但当我执行命令 dfuprog.exe -i 0 -m 时、仍然不会进入 DFU 模式
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Sam、您好!

    您专门将哪个示例固件加载到电路板上? 您还可以尝试使用 LMFlash 编程器并查看结果如何?

    使用具有 LMFlash 编程器的 TivaWare boot_serial 示例、我可以毫无问题地看到 DFU 选项。

    我不熟悉 dfuprog.exe 的操作、因此如果需要、我需要在下周进行研究、但据我所知、我们的大多数客户都使用 LMFlash 来完成此操作。

    查看示例、我看不到适用于复合器件的示例、您能否共享我应该加载到适用于复合器件的 LaunchPad 上的示例?

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

    我使用 Resource Explorer 从以下位置导入了示例:

    用于 TivaC->Tiva C 系列的 TI-RTOS ->Tiva TM4C1294NCPNT->EK-TM4C1294XL 评估套件->驱动程序示例->TI 驱动程序示例->USB 示例->USB->串行器件

    然后 按照我从 TI Wiki 下载的2016年1月12日名为:USB 串行器件固件升级(DFU)的文档中的说明进行操作  

    http://processors.wiki.ti.com/index.php/TI-RTOS_USB_DFU 

    有两个版本、一个需要按下 USR1按钮才能进入 DFU 模式、另一个需要通过命令。

    第一个版本可以使用、甚至可以与 LM 闪存编程器1613配合使用。  命令版本不能通过命令提示符或 LM 闪存编程器工作。

    我是否应该尝试另一个示例?

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

    哦、我看到了、由于其中的很多内容涉及 TivaWare DFU、我没有意识到该示例来自 TI-RTOS 封装(我对此并不是很熟悉)。

    我自己没有使用过该示例、因此我明天会试一下、看看它在我的端对 Win 7和 Win 10都是如何工作的。

    如果您需要 RTOS、我不想建议另一个示例、因为我不知道 TI-RTOS 的所有示例。 我建议用于 boot_serial 的示例来自我们没有 RTOS 的 TivaWare 示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为 RTOS 与它不起作用无关。 我认为这是一个 Windows 问题。

    我可能会检查非 RTOS 版本、仅作为测试。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然、另一个可能是我在代码中做了一些错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sam、您好!

    这也是可能的、我研究了项目详细信息、它的参与度比我预期的要高很多、所以我将其交给 TI-RTOS 团队、他们应该更熟悉示例项目。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 DFU 教程的第6部分中、您将被指示导入一个名为 usbserialdfu 的项目。 此项目的目标配置设置为从0 (引导加载程序所在的位置)擦除闪存。 您是否编辑过此内容? 在调试模式下、您可以检查内存是否已通过内存浏览器擦除。

    我在安装此部件的驱动程序时遇到问题。 错误消息显示“The third party INF does not contain digital signature”(第三方 INF 不包含数字签名)。 我不愿意为当前 PC 关闭已签名的驱动程序实施。 您是否按照第6部分步骤 B 操作并遇到此错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Peter:

    感谢您的介绍、现在我想知道 TI-RTOS 团队是否可以评论是否需要使用最新的 Tiva 补丁驱动程序(我在该主题前面链接过)来解决该问题。 如果示例中提到的是随 TI-RTOS 软件包一起发布的 TivaWare 驱动程序、我认为可能是这样的、因为我们发布的补丁驱动程序主要是为了解决 Windows 中有符号的驱动程序问题、因此无需再关闭有符号的驱动程序实施。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我在第一个示例上设置了新的闪存设置、但在第二个示例上设置了新的闪存设置。

    我将告诉您这是否能解决它。

    谢谢

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

    说明中建议不包含驱动程序。 本教程指导用户从正常的 TivaWare 安装目录安装两个驱动程序。 最后一次安装的驱动程序是项目下载中包含的唯一驱动程序。 它可能是一次性的特殊驱动程序。

    我将尝试该补丁。

    更新:未安装驱动程序、并显示另一错误消息"Windows Could not find drivers for your device (Windows 无法找到适用于您的设备的驱动程序)"。

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

    项目映射文件:

    输出文件名:  

    入口点符号:"_c_int00" 地址:000099e9

    存储器配置

        名称       使用       的原始长度未使用 属性  填充

    ------------  ----  ------  ----  ----  --------  

     闪存         00004000 000fc000 00009bd0 000f2430 R X

     SRAM          20000000 00040000 00002048 0003dfb8 RW X

    设备管理器

    仍然没有乐趣。

    Sam

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

    Sam、

    我将提高这个线程的速度。 我要确认这一基本问题。 从我看到的内容来看、您似乎正在使用 Windows 10。 在这种环境下、当您使用命令 dfuprog 将 Tiva 板从运行时模式转换为 DFU 模式时、它无法这样做。 器件处于某种未知状态、无法正确枚举。 我是否正确?

    此外、Ralph 还表示、由于 USB 枚举中的一些更改、USB 堆栈中的复合器件支持当前在 Windows 10上无法正常工作。 不好。

    最后、您是否正在寻找复合功能、因为该器件没有按钮?

    谢谢、
    ~Ramsey

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

    是的、Windoz 10。

    尝试避免在器件中添加按钮、而不是交易断路器。

    按钮版本运行良好、因此我可以解决该问题。

    谢谢、

    Sam

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

    我关闭已签名的驱动程序、在发出 dfuprog -m 命令后、我看到与 sam 相同的错误。

    供应商 ID 似乎已更改。

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

    Sam、

    进一步探讨这一点。 构建复合设备 并非唯一的选择。

    我不知道您的器件连接到 PC 时会做什么、但我假设它将与某些软件实体通信。 如果您可以控制此操作、则您的软件实体可以向器件发送命令(使用其主接口)以进入 DFU 模式。 设备将重新启动并准备升级。

    复合器件示例只是一个如何使用单独接口进入 DFU 模式的图示。 但是、如果您可以控制主接口、那么您可以将该接口用于运行时模式和 DFU 控制。

    ~Ramsey

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

    Sam、

    如果您希望采用单接口方法、我将附加一个文件、其中包含一个用于从 USB 运行时模式切换到 USB DFU 模式的函数。

    e2e.ti.com/.../DFU_5F00_sample_5F00_code.zip

    从 USB 运行时模式切换到 USB DFU 模式需要执行多个步骤。 这包括终止当前 USB 接口和从 USB 总线分离。 后面是一些有关中断、复位 USB 控制器和 PLL 频率编程的硬件详细信息。 最后一步是再次连接到 USB 总线、并重新枚举为 USB DFU 器件。 示例代码在 TM4C1294器件上的 ROM 代码的帮助下执行这些步骤。

    当应用程序决定从运行时模式切换到 DFU 模式时,根据 需要关闭应用程序服务,然后 调用 DFU_renumerate ()函数。

    ~Ramsey

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

    谢谢。  很抱歉、回复时间太长、个人问题不在市区。

    听起来像是很多杂耍和步骤、可能会在现场出错。

    由于硬件(按钮)解决方案看起来可靠、我想我可能只需要构建一个硬件解决方案、例如从触摸屏激活的板载电路、以将板置于 DFU 模式。

    Sam

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

    Sam、

    明白。 使用按钮可能是明智的决定。 祝你好运。

    ~Ramsey

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

    我可以将其标记为已解决吗?

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

    是的