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.

[参考译文] TM4C129ENCPDT:基于闪存的 USB 引导加载程序、未知器件

Guru**** 2445440 points
Other Parts Discussed in Thread: EK-TM4C129EXL, TM4C129ENCPDT, EK-TM4C1294XL, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/632490/tm4c129encpdt-flash-based-usb-bootloader-unknown-device

器件型号:TM4C129ENCPDT
主题中讨论的其他器件:EK-TM4C129EXLEK-TM4C1294XLUNIFLASH

您好!
我们正在尝试在 TM4C129ENCPDT (修订版 A2)控制器上实现基于闪存的 USB 引导加载程序。 最终、这将位于我们的定制板上、但作为参考、我们提供了 EK-TM4C129EXL launchpad。
由于这些示例没有针对电路板的确切引导加载程序、因此参考配置来自 dk-tm4c129/boot_emac_flash/bl_config.h、其中以太网配置(线路856...904)已交换用于 USB 配置(线路916...1241)。 这是 dk-tm4c123g/boot_USB/BL_config.h 交叉参考的
其他源来自/boot_loader/for the code composer build - bl_usb.c and its dependencies、bl_startup_ccs.s 和链接器 bl_link_ccs.cmd。  Code Composer 为 v7.3.0.00019。
到目前为止:
我在 bl_config.h 中添加了#define TARGET_IS_TM4C129_RA2、以进行特定于修订版的配置。
项目属性- ARM 链接器-高级选项-运行时环境-初始化模型-更改为-ram_model。 这样就消除了链接器警告。 否则、USB 会从主机接收定期的 USB_Y_RESET 消息(BL_USB.c 第463行)。
项目使用这些设置进行编译、而不会出现任何警告或错误。 调试代码时、代码似乎通过 USB 初始化函数运行、然后卡在 UpdateUSB while (g_ui32CommandFlags =0)(BL_USB.c 第1811行)循环中。 Windows (Windows 7和10) 无法识别设备:



LaunchPad 本身切换到 OTG 电源、并断开调试 USB 电缆。 我尝试 了 http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/602844/2217914 发布的#5、这似乎正常。 这表示擦除闪存后、似乎有某种基于 ROM 的引导加载程序可以正常工作。 我已附上所使用的示例项目。 作为参考、我还阅读了 spmu301d (Tivaware Bootloader 用户指南)。

我在这里错过了什么?

此致、

Keijo
e2e.ti.com/.../Flash_5F00_boot_5F00_loader_5F00_dfu.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于从闪存运行的程序、更改为 RAM 运行时初始化是不正确的。 如果我理解您要做的事情、我认为您是以艰难的方式来做的。 如果您需要 DFU 引导加载程序、则可以使用基于 ROM 的引导加载程序(即使在闪存中有应用程序代码也是如此)。 请参阅以下演示程序以获取示例:
    C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c1294xl\boot_demo1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的快速回复。

    我们需要实现基于闪存的引导加载程序、除非基于 ROM 的引导加载程序可以处理解密和 CRC 校验、我没有找到任何信息。  正如我所理解的,实际基于闪存的引导加载程序将在 ProcessorInit()之后从 SRAM 运行。

    您链接的示例使用的是/boot_serial/基于闪存的引导加载程序,必须对其进行修改才能使用 USB -特别是 BL_config.h 中的设置,我对吗?

    目前、我采用了/boot_serial/项目并修改了 USB 的 bl_config.h。 在使用 UNIFLASH 将其加载到0x0000并将 BOOT_DE演 示1加载到0x4000之后、我看到 LED 闪烁、这意味着 BOOT_DE演 示1正常工作。 按下按钮后、引导加载程序会被调用、并且 Windows 无法识别 USB 器件、这与我之前遇到的问题相同。 这意味着 buggy bl_config.h? 我随函附上 it.e2e.ti.com/.../6064.bl_5F00_config.h

    此致、

    Keijo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我了解您需要执行基于闪存的定制 USB 引导加载程序。