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.

[参考译文] TMS320F2800157:通过 UART 进行 C2000固件更新

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1516585/tms320f2800157-c2000-firmware-updates-over-uart

器件型号:TMS320F2800157
主题:C2000WARE 中讨论的其他器件

工具/软件:

这是我之前在这里发布的一个问题的后续问题。

TMS320F2800157:通过 SPI 实现的 C2000固件更新- C2000微控制器论坛- C2000Tm︎ 微控制器- TI E2E 支持论坛

我正在考虑将处理器间通信更改为 UART (从 SPI)。 我期望这可以简化 闪存内核的加载、并有望简化闪存内核实现/(或可用)。

1) 通过 UART 进行固件更新确实是一种更简单的解决方案吗?

2A)是否 需要根据 SDK 中的源代码构建闪存内核?

2B)如果是、这是源代码路径吗? {$SDK_INSTALL_PATH}\driverlib\f280015x\examples\flash

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

    更新了

    在原始帖子之后、我继续读取 SCI 引导加载程序。 下面、我粘贴了 SPRUIY4B 和 SPRABV4H 文档中与以下问题相关的摘录。

    1)我在解释文档时是否正确、表示主机微控制器可以实现 hex2000.exe 使用的协议?

    2)此解决方案是否无需使用"闪存内核"?.  

    参考1.

    SPRABV4H C2000微控制器的串行闪存编程(修订版 H)

    第"5个闪存内核 B"部分

    "闪存内核 B 运行于:•TMS320F2807x•TMS320F2837xD•TMS320F2837xS•TMS320F28004x•TMS320F2838x•TMS320F28002x•TMS320F28003x•TMS320F280013x•TMS320F280015x•TMS320F28P65x "

    "闪存内核 B 比内核 A 更强大。它与通信 C2000Ware 中提供的主机 PC 应用程序 (C2000Ware_x_xx_xx_xx > utilities > flash_programmers > serial_flash_programmer)、并就接收数据包和分配给它的命令的完成情况向主机提供反馈。"

    参考文献2.

    SPRUIY4B TMS320F280015x 实时微控制器技术参考手册(修订版 B)

    5.8.1引导加载程序数据流结构

    "本节详细介绍了允许在引导 ROM 和主机器件之间进行引导数据传输的数据传输协议或流结构。 此数据传输协议与 C2000器件上的相应引导加载程序兼容。"

    "表5-50和示例5-2显示了传入引导加载程序的数据流的结构。 所有引导加载程序的基本结构都相同、并且基于由 C54x 十六进制实用程序生成的 C54x 源数据流。 C28x 十六进制实用程序(hex2000.exe)已更新以支持此结构。 hex2000.exe 实用程序包含在 C2000代码生成工具中。 数据流结构中的所有值均以十六进制表示。 有关使用 C28x 十六进制实用程序将工程转换为此格式的更多详细信息、请参阅第5.8.2节。"

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

    您好、

    1)我在解释文档时是否正确、表示主机微控制器可以实现 hex2000.exe 使用的协议?

    是的、主机运行的 serial_flash_programr.exe 会发送 hex2000实用程序生成的格式的内核和应用程序十六进制文件。

    ROM 加载程序要求数据以数据流和引导表的形式呈现。 该结构对所有 ROM 加载程序都是通用的、器件特定 TRM 的引导加载程序数据流结构一节对其进行了详细介绍。

    2)此解决方案是否无需使用"闪存内核"?  [/报价]

    如果您希望对器件的闪存进行编程、则需要使用闪存内核(或使用在闪存中执行的自定义引导加载程序)。 这是因为 ROM 中包含的引导加载程序只能将代码加载到 RAM 中。

    有关十六进制实用程序和闪存内核的更多详细信息、请 参阅以下用户指南:https://www.ti.com/lit/sprujh3

    此致、

    马特

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

    更新2.

    在 上一次更新之后 、我继续读取 SCI 引导加载程序。  

    对于"主机微控制器"更新  TMS320F280015x、  似乎可以:

    • 将实用程序"serial_flash_programmer.exe"移植到主机 微控制器
    • 将 进入 SCI 引导加载程序模式所需的引导模式引脚路由到 主机 微控制器
    • 将  XRSn 通过  主机 微控制器的开漏(例如 MOSFET)输出路由、以允许其控制 TMS320F280015x 的复位

    对于移植、可以使用 C++项目。 它位于路径上:

    {$vmware_install_path}\utilities\flash_programmers\serial_flash_programmer\serial_flash_programmer.sln

    问题:

    1)解决方案是否精确?

    2)上面的解决方案,因为它看起来是直截了当的,或者有没有任何警告我失踪?

    3)这个解决方案似乎是常见的其他项目。 如果是、可能 serial_flash_programmer.sln 已经有一个 C 端口。  是这样吗?

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

    您好、

    我不相信可以将串行闪存编程器可执行文件移植到主机 MCU、因为它依赖于 Windows API。 该可执行文件应在 Windows 计算机上运行。 没有 serial_flash_programmer.sln 的 C 端口。

    此致、

    马特

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

    尊敬的 Matt:

    也许"移植"不是最好的术语。 我的意思是我要使用 serial_flash_programmer.sln 作为参考 以及 技术参考手册中的描述或协议、创建一个 C 模块、在主机微控制器上执行"serial_flash_programmer.exe"的功能。

    此致、

    Tollman