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:SBL OSPI 多核示例在 Bootloader_parseAndLoadMultiCoreELF 上失败

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534812/am263p4-sbl-ospi-multicore-example-fails-on-bootloader_parseandloadmulticoreelf

器件型号:AM263P4
Thread 中讨论的其他器件:UNIFLASHSYSCONFIG

工具/软件:

我目前使用的是以下设备:

  • CCS 版本 20.1.1.8
  • MCU_PLUS_SDK_am263px_10_02_00_15

我已导入示例工程 sbl_ospi_morple_elf_am263px-cc_r5fss0-0_nortos_ti-arm-clang 并进行了以下修改。

  • 在 OSPI 配置中、将引脚分配从任意更改为最初选择的引脚(避免了已知的 TI 错误、即“ANY"选择“选择会将 OSPI 引脚更改为错误的配置)
  • 更改 Booloader 配置、使所有内核都独立运行。
  • 在 main() 函数的顶部添加 loop_forever() 函数调用以允许调试。
  • 使用 Release 配置进行构建。

我还导入了 tmu_cores_support=am263px-cc_system_nortos 工程、以创建我认为应该是有效多核映像的工程。 这是在 Release 编译配置中构建的、没有对工程进行任何更改。

调试步骤:

  1. 关闭 CCS 并打开 Uniflash(在处理 XDS110 连接时,这两个无法同时可靠地打开)。
  2. 将 Uniflash 器件配置为 AM263PX、并将连接配置为 XDS110 USB 调试探针、然后按 START。
  3. 在 UniFlash Program 窗口中、选择 SBL 映像作为  sbl_ospi_morple_elf_am263px-cc_r5fss0-0_nortos_ti-arm-clang 的发布编译中的映像。 然后将应用程序映像设置为 tmu_cores_support=am263px-cc_system_nortos 发布版本中的映像
  4. 在应用程序映像中、将加载地址更改为 0x60081000(这是文档中所述的内容,也在 SysConfig 中针对 SBL ospi 多核示例进行了配置)。
  5. 点击“Load Image“(加载映像)并等待其完成。
  6. 关闭 UniFlash 并打开 CCS。
  7. 对电路板进行下电上电。
  8. 在没有 GEL 文件的情况下启动调试会话、并连接到内核 R5_0
  9. 从 sbl_ospi_Modore_elf_am263px-cc_r5fss0-0_nortos_ti-arm-clang 加载符号文件。 它应该放入 loop_forever() 函数中。
  10. 在调用  Bootloader_parseAndLoadMultiCoreELF () 函数的行设置断点。
  11. 将“loop"变量“变量的值更改为 0、然后允许调试会话运行。 它应到达之前设置的断点。
  12. 请注意、在调用 Bootloader_parseAndLoadMultiCoreELF () 之前、“status"变量“变量的值为 0。
  13. 检查 Bootloader_parseAndLoadMultiCoreELF() 函数、观察“status"变量“变量现在为–1。

我很有信心、我在这里可能遗漏了一些非常简单的东西。 实际上 、Bootloader_parseAndLoadMultiCoreELF () 函数似乎没有检测到有效的映像、但我无法确定这里配置的不正确。

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

    您能否共享正在加载的 Uniflash 工具映像以及哪个位置  

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

    e2e.ti.com/.../sbl_5F00_ospi_5F00_multicore_5F00_elf_5F00_am263px_2D00_cc_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.zip

    两个图像文件均已附加。

    如上所示运行 uniflash、SBL 位于 0x60000000、应用程序位于 0x60081000

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

    嗨、Nathan、您使用的 SBL 和应用程序映像组合错误:

    1.使用 sbl_ospi_multiple_mcelf.tiimage (SBL) 和 application.mcelf 映像

    或  

    2.使用 sbl_ospi.tiiimage (SBL) 和 application.appimge

    这将解决您的问题。

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

    已解决该问题的软件。

    很明显、在 UniFlash 中加载应用映像时、默认设置不会显示.mcelf 文件。 仅显示构建的.appimage 文件。 这误导了我认为只有.appimage 文件可以通过 UniFlash 被允许。

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

    我看到,对不起,Uniflash 工具没有显示 mcelf 作为支持的格式,我会提交一个错误来修复此问题。