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.

[参考译文] TMS320F28377D:通过 USB 升级 TMS320F28377D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/782414/tms320f28377d-upgrading-tms320f28377d-through-usb

器件型号:TMS320F28377D

大家好、

我正在尝试使用 usb_fash_programr.exe 应用程序升级 CPU1和 CPU2中的固件、在 CCS 和 JTAG 仿真器 XDS200上工作时遇到一些问题。我使用的命令行为:  

usb_flash_programr.exe F2837xD_usb_flash_kernels_cpu01.dat blinky_dc_cpu01.dat F2837xD_usb_flash_kernels_cpu02.dat blinky_dc_cpu02.dat

1)有时我可以成功发送前三个文件、但在发送第四个文件时、CPU2执行在 函数 c2Brrom_handle_idle_lpm 中的指令 asm (" ESTOP0")处停止:

然后、如果我快速恢复 CPU2执行、我还可以发送第四个文件、以便升级成功:

我还可以看到 CPU1闪烁和 CPU2闪烁应用正在运行、因为 F2837x controlCARD R1.3中的 LED 闪烁。

2) 2)有时我只能发送第一个文件、然后出现"Error 枚举器件接口":

然后、如果我停止 CPU1和 CPU2执行、我可以在 CCS 中看到以下内容:

CPU1执行在 while (g_UsbRxBuffer =0){;}在内核函数 USB_GetWordData 中停止:

在我看来、它正在等待 USB 缓冲器被填满、因此我拔下 USB 连接器并重新插入。 然后 、我尝试通过再次执行 usb_fash_programr.exe 应用程序来恢复升级:

usb_flash_programr.exe F2837xD_usb_flash_kernels_cpu01.dat blinky_dc_cpu01.dat F2837xD_usb_flash_kernels_cpu02.dat blinky_dc_cpu02.dat

然后、操作失败:

我可以看到、CPU1的执行在内核中的 Example_Error 函数处停止:

有人能帮我解决这些问题吗?

非常感谢您的参与、

Andreu

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

    请查看这是否有帮助: e2e.ti.com/.../1671181

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

    您好、Vamsi、

    非常感谢您的快速回答。

    我已经阅读过这篇文章、我认为我正在遵循主要步骤。 您认为我错过了一个重要问题吗? 哪一个?

    对我来说、这篇文章看起来没有关闭、因为上次 Shef 的消息从未得到回复。

    此致、

    Andreu

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

    您是否浏览过帖子的所有6页? (您可以使用页面底部的"前进">""按钮进行遍历)。
    如果不是、请查看第4页(e2e.ti.com/.../1671181)
    谢夫说他改变了等待时间,你做了什么类似的事情吗?

    看一下您的描述、我觉得这与某种超时有关、因此建议您发表此帖子。
    如果没有帮助、请告诉我。

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

    您好、Vamsi、

    我很抱歉。 我没有意识到有更多的页面、我可以使用"前进"按钮查看它们。

    正如您所说、在阅读第4页后、我设法再次构建 usb_flash_programr.exe 应用程序、增加 了 USB_TIMEOUT_MS 常量的值。

    我现在可以成功发送文件、但在发送第四个文件时、CPU2执行会在 函数 c2Brrom_handle_idle_lpm 中的指令 asm (" ESTOP0")处持续停止。然后、我快速恢复 CPU2执行、我也可以发送第四个文件、以便升级成功。 我想它在 ESTOP0指令处停止、因为仿真器已连接。 我是对的吗?

    无论如何、我不确定这是否是解决方案、因为我已经进行了多次测试、  USB_TIMEOUT_MS 常量的值甚至低于原始值(5000ms)、并且工作方式相同、现在没有错误。 也许、它也与我的计算机硬件或其工作负载有关。 这需要我这边做更多的测试。

    另一方面、我还有关于 USB 固件升级的其他问题:使用 serial_flash_programming 应用程序可以锁定/解锁 DCSM 区域 Z1 Z2。 是否可以通过 USB 实现相同的操作?

    非常感谢您的参与、

    Andreu

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

    如果您没有连接仿真器、则 Estop 将不起作用。 CPU 将继续运行。

    您可以向内核添加功能以执行所需的操作。 为此、我们提供了内核和 USB 闪存编程器的源代码。 请随意修改源代码以满足您的需求。

    SAL