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.

[参考译文] F28M35H52C:Concerto ARM &放大器;用于 LM 闪存的 C2000 .out 文件到.bin

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/570842/f28m35h52c-concerto-arm-c2000-out-files-to-bin-for-lm-flash

器件型号:F28M35H52C
Thread 中讨论的其他器件: controlSUITE

您好!

我想将我的两个 F28M35H52C Concerto .out 文件(一个用于 ARM、一个用于 C2000)转换为单个 bin 文件、该文件可以通过 LM 闪存编程器通过以太网传输、并加载到 RAM 中并引导。 是否有人可以为我提供一些关于使用两个.out 文件生成该 bin 文件的提示?  我尝试在 ARM .out 文件上使用 armhex -b、但该文件未引导、因此无法继续。

我的输出文件是为加载/运行 RAM 而构建的、它们确实运行(每个都会使一个单独的 LED 闪烁)、 但我不确定是否为 ENET ROM 引导模式设置了正确的地址(TRM 似乎表示在该模式下需要0x20005000的起始地址、我不确定为此设置了 cmd 文件)。 我已经测试过可以将文件从 LM 闪存传输到 ENET ROM 加载程序、因此我现在只需要帮助生成正确的 bin 文件。

谢谢、

Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Paul、
    M3上示例中的入口点应与起始地址(0x20005000)相对应。 例如,如果您看一下 blinky 双核示例(C:\ti\controlSUITE\device_support\f28m35x\v208\F28M35x_examples_Dual\blinki\m3),则会构建 M3上的代码,使 ResetISR 函数成为入口点。 应写入链接器命令文件、以便将.reshtisr 段加载到0x20005000。

    TRM 第6.8.1.1节的引导 ROM 一章介绍了如何为 M3构建二进制映像。

    以太网引导加载程序支持为 M3加载代码、而不是为 C28x 加载代码。 如果要使用以太网端口加载应用程序、M3应用程序必须处理此问题。 M3应用程序可以下载 C28x 应用程序、并使用 C28x ROM 中支持的 ROM 加载程序之一将其移动到 C28x RAM (例如:-使用 SERPLOOP 功能 M3可以将 C28x 应用程序放在 UART4上、C28x 可以从 SCIA 引导)。

    希望这对您有所帮助。

    此致
    Santosh Athuru
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的帮助。 第6.8.1.1节完美地显示了制造纸槽所需的工具。

    至于使用 M3加载 C28x、示例项目将非常有用。 我理解的是、M3程序在某种意义上充当网关、下载从主机接收到的 C28x 固件、然后通过内核 UART 将其传递到 C28x 上。 另一种方法是将以太网 ROM 引导加载程序加载到 RAM 中的组合映像、然后 m3引导并将与 C28x 固件相对应的映像部分发送到 C28x? 这将避免 M3打开一个插槽、并且必须在 LM 闪存之后在 PC 上启动一个单独的过程。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Paul、
    遗憾的是、我们没有 Concerto 的这种示例。 但是、您所概述的内容似乎是我处理它的方式。

    第一部分是将 C28x 应用程序连接到 M3存储器、如果应用程序可以放入可用的存储器中、则表示正常。 接下来是将其传递到 C28x。 如果必须将 C28x 应用程序加载到 RAM 中、则使用 SCIA 引导或使用内部环回功能的 SPIBoot 是一种方法、或者您可以将 CopyData 类型函数放入共享 RAM 中并将其分配给 C28x、并让 C28x 引导 ROM 使用调用此函数 来自 C-Boot ROM 支持的 MTOCIPC 命令的 IP 功能调用、用于将应用程序从共享 RAM 移动到 C28x RAM。

    如果使用 SCIA Boot for Ex:、则可以利用 ROM 中的 SCI 引导解析器来解析传入的 C28x 应用程序十六进制文件并加载到 C28x RAM。 C28x 引导格式在传统器件之间是相同的。 如果要使用自定义格式、则可以将解析器和复制数据函数放入共享 RAM 中、并可以使用 C-Boot ROM IPC 命令支持的 IPC Functioncall 命令。

    此致
    Santosh Athuru
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    再说一次、非常有帮助。 感谢您提出一些未来的道路、我将逐一进行调查。

    下面设置它的方法是否也起作用? M3将 bin 加载到共享 RAM 中(其中该 bin 是 M3程序加 C28x 有效载荷、如上所述)、C2000引导 ROM 跳转到闪存。 在闪存中、一个小型程序(在出厂时刷写一次、然后永不更改)会查找并将 C2000程序从共享 RAM 复制到 C28x RAM 中、然后跳转到该程序。 这似乎是最简单的方法、因为不使用奇特的 SCI/SPI/IPC 操作、但我还不知道您是否可以验证该方法。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Paul、

    是的、这也应该起作用、是的、这是处理这种情况的更简单方法。 您仍需要确定 C28x 有效载荷的格式、 闪存中的 C28x 程序如何从共享 RAM 中识别 C28x 应用程序的目标地址、闪存中的 C28x 程序如何知道它必须从共享 RAM 升级固件。

    此致
    Santosh Athuru