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.

[参考译文] AM263P4-Q1:不同内核上的不同软件

Guru**** 2556390 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1532575/am263p4-q1-different-software-on-different-cores

器件型号:AM263P4-Q1
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

嘿、专家、

我有一些关于 μ µC 不同内核的问题。

作为 SW、我要使用:
CCS 12.8.1.00005
SDK 10_00_00_35
Uniflash 8.1.4983

我们计划对不同的软件使用不同的内核。 是否有任何关于如何刷写到不同内核的示例或分步指南?

想象一下我有 2 个软件。 一个用于 core1、一个用于 core2。 我是否必须在 CCS 中更改任何工程选项以说明软件属于哪个内核?
还是全部由 SBL 处理?  
为了将软件 A 复制到内核 1 并将软件 B 复制到内核 2、我必须在 SBL 中进行哪些更改?
如何使用 uniflash 工具进行闪存? 我可以逐个刷写这两个软件、还是将它们打包到一个映像中? 我该怎么做?

此致、

Marcel

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

    任何多核工程(a.ka.系统工程)都将输出一个.appimage(现在迁移到多核.elf)文件、该文件包含该工程中编译的所有内核的程序。 TI 的库存 SBL 能够识别闪存中的文件格式、并会将正确的程序加载到正确的内核中并启动软件。

    这里详细介绍了这些概念 :AM263Px MCU+ SDK:了解多核 ELF 映像格式

    下面介绍了如何使用 UniFlash*来刷写 SBL 和.appimage: AM263Px MCU+ SDK:刷写工具

    *我的建议是获取最新版本 9.2。 早期版本不适用于更高版本的开发板。

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

    我仍然不知道从何处选择我的软件编译的核心。 这是 CCS 中的任何设置吗?
    根据我的理解、Uniflash 无法刷写多核 elfs。 那么、是否也可以逐步刷写软件? 例如、第一个闪存过程是 core1 和 SBL 的 SW、第二个是内核 2 的 SW 刷写。


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍然无法从何处选择我的软件编译的核心。 CCS 中是否有任何设置?

    我想您可以从三个要点中选择特定的内核:

    1) 在 系统项目中、将单个项目与用于调试的内核相关联:

    使用系统工程从头开始创建一个,简化多核调试启动

    -或者选择一个多核示例并以此为基础进行构建:例如 C:\ti\mcu_plus_sdk_am263px_09_02_00_56\examples\drivers\ipc\ipc_notify_echo\am263px-cc

    2) 如果您使用的是 SYSCFG、请在顶部的选项卡中选择要分配资源的内核。

    3) 最后一步是示例工程中所示的“makefile system_ccs_bootimage_gen“、它采用核心工程 elfs 并生成组合的.appimage 文件。 根据您的工程对其进行编辑并分配给内核。

    如果我理解正确、Uniflash 无法刷写多核 elfs。

    是的、这是一个公平的观点。 您必须坚持使用 RPRC .appimages。 这个将在 SDK 11 中弃用。 我不确定 TI 更新适用于 SDK 11 的 UniFlash 的计划。

    那么是否也可以逐步刷写软件? 例如、第一个闪存过程是 core1 和 SBL 的 SW、第二个是内核 2 的 SW 刷新。

    我不明白这个问题。 为什么这种复杂性?

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

    您好:Marcel、

    为您提供更好的环境:

    AM26x 器件是多核和外部闪存、R5F0 内核负责运行引导加载程序、在 R5F0 上运行的 RBL 负责从外部闪存获取 SBL 并执行它。 然后、辅助引导加载程序负责获取应用程序 blob(所有内核组合)、解析应用并为所有其他内核加载应用。

    同样从软件工具来看、引导加载程序 (SBL) 会解析 mcelf 映像 blob、分离每个内核的二进制文件并相应地加载。

    现在、若要 刷写.mcelf 映像格式、Uniflash 工具支持刷写、它同时支持 mcelf 和 rprc。

    从开发角度来看、您可以分别为每个内核开发应用、作为编译后处理步骤的一部分、将其组合在一起、以便生成用于刷写的通用映像 blob。

    它还有助于对所有内核执行单个刷写步骤。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Uniflash 工具支持刷写、它同时支持 mcelf 和 rprc。

    这是个好消息、但与此信息不同:

    AM263Px MCU+ SDK:了解多核 ELF 映像格式

    请更新文档。

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

    感谢 Kier 将其提醒注意、这将在下一版本中更新。

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

    谢谢你。

    只是更多的观察。 UniFlash 9.2 的文件过滤器不包含.mcelf。

    如果得到支持、这将使这种情况得到非正式的确认。

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

    当然、Kier、我将为此创建一个内部 TT。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2) 如果您使用的是 SYSCFG、请在顶部的选项卡中选择要分配资源的内核。

    当然、顶部有选项卡、您在这里的意思是:


    3) 最后一步是“makefile system_ccs_bootimage_gen“、如示例工程所示、该示例工程采用核心工程 elfs 并生成组合的.appimage 文件。 编辑此文件以适合您的项目并分配给内核。

    makefile 的第一行显示其自动生成的文件。 你能告诉我什么时候更新? 如果我编辑它,它不会被覆盖当有一个新的自动生成?


    那么、是否也可以逐步刷写软件? 例如、第一个闪存过程是 core1 和 SBL 的 SW、第二个是内核 2 的 SW 刷写。

    我不明白这个问题。 为什么这种复杂性?

    [/报价]

    我们有一组 6 块 PCB。 5 应刷写为 SW1、1 应刷写为 SW1+SW2。 因此、对我来说、第一个想法是 SW1 有一个 SVN 文件夹、SW2 有一个文件夹。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    顶部有标签、您在这里的意思是:

    我在您的屏幕截图中没有看到任何选项卡、但我的意思是这些选项卡:

    在系统工程中、有多个.syscfg 文件、但它在 CCS 中显示为一个配置 GUI 并带有多个选项卡。

    makefile 的第一行显示其自动生成。 您能告诉我更新的时间吗?

    好地方! 不、我很确定它不是自动生成的、也许是在过去。 无论如何,我已经手动修改了这个文件几次,以适应我的项目,它永远不会被覆盖。

    我们有一套 6 块 PCB。 5 应刷写为 SW1、1 应刷写为 SW1+SW2。 因此、对我来说、第一个想法是 SW1 有一个 SVN 文件夹、SW2 有一个文件夹。  [/报价]

    我仍然没有完全掌握您的用例、但建议您修改文件 makefile_system_ccs_bootimage_gen  以生成两个.appimage 文件。

    1) SW1.appimage、包含 R5FSS0_0 的代码

    2) SW1+SW2.appimage、包含  R5FSS0_0 和 R5FSS1_0 的代码(例如)。

    然后、您将 1) 或 2) 闪存到外部闪存。 然后、 单个通用 SBL 可以从其标头计算.appimage 中有多少个内核程序、将一个或多个程序加载到 RAM 中并相应地引导一个或多个内核。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“47999" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1532575/am263p4-q1-different-software-on-different-cores/5909627 #5909627“]
    顶部有个选项卡、您在这里的意思是:

    我在您的屏幕截图中没有看到任何选项卡、但我的意思是这些选项卡:

    在系统工程中、有多个.syscfg 文件、但它在 CCS 中显示为一个配置 GUI 并带有多个选项卡。

    [/报价]

    是的、我很困惑、因为我没有找到任何选项卡。 只有当您有系统项目时才会获得这些选项卡。 我想当你有一个“正常“项目,你可以把核心更改为闪存,就像我在我的屏幕截图中显示的一样。

    [引述 userid=“47999" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1532575/am263p4-q1-different-software-on-different-cores/5909627 #5909627“]

    我仍然没有完全掌握您的用例、但建议您修改文件 makefile_system_ccs_bootimage_gen  以生成两个.appimage 文件。

    1) SW1.appimage、包含 R5FSS0_0 的代码

    2) SW1+SW2.appimage、包含  R5FSS0_0 和 R5FSS1_0 的代码(例如)。

    然后、您将 1) 或 2) 闪存到外部闪存。 然后、 单个通用 SBL 可以从其标头计算.appimage 中有多少个内核程序、将一个或多个程序加载到 RAM 中并相应地引导一个或多个内核。

    [/报价]

    我觉得这主要是一个文件排序问题、我可以处理这个问题。

    感谢您的帮助!