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.

[参考译文] TMS320F28386S:正在创建字段引导加载程序

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1514250/tms320f28386s-creating-field-bootloader

部件号:TMS320F28386S
主题:C2000WARE 中讨论的其他器件

工具/软件:

早上好!  

我来简化一下问题。

我需要为此 MCU 实施自定义引导加载程序、因此 CPU1和 CM 内核的固件应能够通过相同的菊花串行接口进行更新。

我该怎么做?

谢谢你。

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

    您好:

    建议您参考 串行闪存编程应用手册 进行开发、本文档详细介绍了如何使用闪存内核更新 CPU1和 CM 内核。 虽然 SCI 闪存内核在 RAM 中执行、但可修改为从闪存运行。 可以在此处找到 SCI 闪存内核示例代码:

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

    我明白了。 问题是如何在没有 JTAG 的系列生产中启动闪存内核?

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

    您好、

    是否询问如何在不使用 JTAG 的情况下更新器件?

    器件当前的启动配置是什么? 您是否对 OTP 进行了编程、或者是否使用了默认引导模式?

    有关 C2000引导加载的更多详细信息、请参阅以下用户指南: https://www.ti.com/lit/ug/sprujh3/sprujh3.pdf

    此致、

    马特

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

    具体来说:生产设施接收放置了未编程 MCU 的电路板。 板载有 DIP 开关、其中一个是控制引导引脚、以将引导模式设置为 SCI 引导。 然后、在生产工厂的工程师必须将电路板连接到串行接口、并运行一些应用程序、以通过此接口对 CPU1和 CM 闪存映像进行编程。

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

    您好:

    将引导模式设置为 SCI 引导后、器件将使用 SCITXDA = GPIO29和 SCIRXDA = GPIO28在引导 ROM 中执行 SCI 引导加载程序。 ROM 引导加载程序只能将代码加载到 RAM 中、因此如果您要对闪存进行编程、需要使用闪存内核。

    我建议您参阅 《串行闪存编程应用手册》 进行开发、本文档详细介绍了如何使用闪存内核更新 CPU1和 CM 内核。

    您可以参阅此应用手册、了解如何将闪存内核加载到器件中以将 CPU1和 CM 的代码编程。简而言之、ROM 中的 SCI 引导加载程序将闪存内核加载到 RAM 中、然后闪存内核将应用程序代码加载到内核的闪存中。 有一个可执行文件、主机可以运行该文件以向器件发送代码、文档中也对此进行了详细介绍。

    此致、

    马特

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

    谢谢、很清楚。

    我假设、如果我将 UART_RX 和 SCIA_RX 引脚连接在一起、则 CPU1上的应用程序代码会启动、它会将 UART_TX 引脚映射到 带有 XBAR 的 GPIO29、并让 CM 内核在同一串行接口上处理通信协议。 之后、当需要更新固件时、我有2个选项、第一个选项可以分支到    CPU1和 CM 上 RAM 中的闪存内核以更新固件、或者、如果应用程序挂起、则使用 DIP 开关在加电时回退到 SCIA 上的库存引导加载程序。 对吧?

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

    您好、

    对于 SCI 闪存内核示例、CPU1保持对 SCI 外设的控制、并在 CM 内核函数请求时通过 IPC 发送数据。 换句话说、您可以使用 SCI 通过 CM 应用程序对闪存进行编程。

    "CPU1保持对 SCI 外设的控制、并在 CM 请求时发送其内核函数所需的 CM 数据。CM 内核可向 CPU1内核发出信号、指明它需要执行某个函数、例如 sciaGetWordData。 CPU1将获得执行该函数的结果并将其放入消息 RAM 中、以便 CM 复制并用于其任何命令。"

    有关 CPU1-CM 如何交互以下载 CM 内核和应用程序的具体详细信息、请参阅第5.2.2节 CPU1-CM 内核。

    此致、

    马特

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

    是的、很明显。 但在正常运行期间、而不是在固件更新期间、我需要 CM 来控制该串行端口以实现通信协议。

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

    您好、

    是的、这是可行的。 请注意、UART TX/RX 可路由到 GPIO42/43或 GPIO84/85引脚( 有关布线、请参阅数据表)。

    请参阅 C2000Ware 中的示例、以了解如何完成此配置(C2000Ware_5_04_00_00\driverlib\f2838x\examples\cm\uart)

    此致、

    马特

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

    是的、但我需要它与默认 SCA 端口(即29和28)使用相同的引脚、因为我需要在同一端口上使用引导加载程序和正常通信。 因此、我计划将 SCA RX 和 UART RX 连接在一起、并使用交叉开关将 UART TX 映射到 GPIO29。

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

    您好、

    是的、这可以使用 INPUTXBAR 和 OUTPUTXBAR 完成。

    此致、

    马特