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:OSPI BL

Guru**** 2680595 points

Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1580169/am263p4-ospi-bl

器件型号: AM263P4
Thread 中讨论的其他器件: UNIFLASH、SYSCONFIG、MCU-PLUS-SDK AM263PX

是否可以在 AM263Px 控制器上对 OSPI SBL(次级引导加载程序)进行一次编程、以便在每次上电复位时、它都会自动从 OSPI 初始化应用程序、而无需调试器或仿真器?

此致  

Shashank B.

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

    您好、Shashank、

    如果我正确理解了问题、您希望运行次级引导加载程序(下电上电后且 ROM 引导加载程序运行)、并从 OSPI 闪存加载应用程序(假设应用程序已经刷写到 AM263Px)?

    如果是、

    您可以使用 UniFlash 工具并使用 SBL OSPI .tiimage、选择所需的应用映像并将其刷写到器件中(在 UART 引导模式中)、然后将引导模式更改为 OSPI 并进行下电上电。

    UniFlash 工具

    AM263x Px_Bootmodes

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我的问题是:是否应该在每次上电复位后再次刷写 SBL 映像?

    此致、

    Shashank B,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以在 AM263Px 控制器上对 OSPI SBL(次级引导加载程序)进行一次编程、以便在每次上电复位时、它都会自动从 OSPI 初始化应用程序、而无需调试器或仿真器?

    这就是默认情况下该器件的工作原理。

    是否应该在每次上电复位后再次刷写 SBL 映像?

    编号 SBL 永久保留在 OSPI 闪存中、与应用程序相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的问题是:SBL 映像是否应该在每次上电复位后再次刷写?

    您好、Shashank、

    您不需要在每次迭代中刷写 SBL、但根据我们到目前为止的对话以及在另一个 E2E 上、您不会“刷写“SBL、而是将.out 二进制文件加载到 RAM 中、这将在电源复位时被擦除。 若要每次运行 SBL、您必须“刷写“SBL 映像。 如果使用 SBL OSPI、还会需要应用程序映像(默认情况下位于地址 0x81000)、请参阅之前回复中的链接以了解如何使用刷写工具。

    您还可以在 UniFlash:https://www.ti.com/video/6362394255112 上观看此视频培训

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我在尝试加载图像时遇到错误。 有关详细信息、请参阅随附的屏幕截图。

    此致、

    Shashank B

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

    您好、Shashank B、

    您能否提供以下详细信息:

    是连接到 PC 和 AM263Px 的 XDS 电缆(XDS/JTAG 端口在电源端口旁边)。 如果已连接、您是否可以重启并再次尝试连接? 此外、确保没有 CCS 调试会话并行运行/UART 终端打开、阻止 XDS 端口。

    2.此处的引导模式是什么?  

    3.使用的 CCS 和 UniFlash 版本是什么?

    4.能否导航至: ccsxxxx\ccs\ccs_base\common\uscif\xds110 并启动命令提示符终端并输入以下命令:

    这里、我的控制卡上的 XDS 固件版本是 3.0.0.38、而 CCS2030 中提供的版本是相同的。 如果版本不匹配、您可以按照同一文件夹中的自述文件升级固件版本。

    Regads、
    Shaunak

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

    现在工作正常。

    谢谢。此致、
    Shashank B.

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

    我无法使用 OSPI SBL 多核 ELF 示例引导多核环境。 我使用 UniFlash 将多核环境加载到 OSPI 中、但无法引导。 如何使用可用的示例正确加载和引导多核环境?

    此致、

    Shashank B

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

    您好、Shashank、

    您能分享一些更多信息吗? 无法引导到底是什么意思? UniFlash 是否显示加载成功? 您是否在刷写之前切换引导模式、刷写之后再重新上电?

    您能否分享刷写应用程序的地址? 这是默认的 SDK 应用是否提供了默认的 sbl-ospi 多核 elf?

    如果可能、您还可以共享 SDK 版本以及您正在使用的 EVK(如果您也可以共享 PROC#版本、如 PROC E2、PROC A,这将非常有用)。 它会粘贴在 controlCARD 或您拥有的 LaunchPad 上的一个白色标签。

    如何使用可用的示例正确加载和引导多核环境?

    您只需配置正确的引导模式、加载 SBL tiimage、在正确的地址加载多核 appimage mcelf、然后进行闪存、然后将引导模式更改为 OSPI、然后进行下电上电。 应用程序应该启动正常。

    此致、
    Shaunak

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

    我将加载多核环境映像、 ospi_sbl_morple_elf 中的示例 MCU_PLUS_SDK_am263px_10_02_00_15 、使用 Uniflash(加载成功)导入 OSPI。 之后、我通过 CCS 加载符号以检查代码是否正在运行。

    应届毕业生

    Shashank

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

    要尝试调试 SBL、您需要在 SBL 应用程序开始时放置一个无限 while 循环。 在运行时、SBL 应该已经由 ROM 加载并执行、除非代码中有某种阻塞器(无限循环)、否则无法停止。

    如果您检查 SBL 代码、文件开头会有一个无限循环函数、只需 在 main() 开头调用 loop_forever()。 然后、重新编译 SBL 应用程序并在调试编译中使用此.tiimage。 现在、当您将此代码刷写到器件中时、您的代码将滞留在此循环中、您现在可以加载符号、然后手动从此循环中退出。

    为了检查 SBL 是否正常工作、我建议您同时使用 SBL .tiimage 刷写实际应用程序。 如果 SBL 正常运行、应用映像将从闪存复制到 RAM 并按预期执行。

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

    为此、我已经在每个核心工程中使用了无限 while 循环。  

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

    调试应用程序、而不是调试 SBL。

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

    您好、Shashank、

    如果您的 SBL 工作正常、那么在应用程序启动之前、您会看到一些日志、例如、如果我只是使用 hello_world 应用程序、我会在 SBL 将控制权移交给应用程序之前看到 SBL OSPI 日志。 在您的案例中、由于应用程序有一个 while 循环、因此您能否确认是否看到 SBL OSPI 日志? 我附上了一个参考示例:

    如果以红色突出显示的部分正常、我们至少要确认 SBL 工作正常、然后我们您的应用处于无限 while 循环中、您可以直接连接到内核、暂停处理器并看到代码卡在循环中(这应该可以实现,因为代码是从闪存复制的并从 RAM 执行)。

    此致、
    Shaunak

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

    我的问题是:如何启动多核环境? 是示例  ospi_sbl_morple_elf  是否足以启动多核系统?

    此致

    Shashank B

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

    您好、Shashank、

    请以此方式理解。 断电复位后、ROM 将加载 SBL(在本例中为 sbl_ospi_multiple_elf)。 然后、SBL 将加载您的应用程序映像。 对于单核/多核环境、此流程保持不变。 应用程序映像使用.mcelf 格式(即您正在使用的所有内核(无论是单核环境还是多核环境)的组合二进制文件)。

    SBL 将仅在 SOC 上执行所需的初始化、然后尝试加载和启动已刷写的应用程序映像。

    因此、SBL OSPI 多核 ELF 足以引导多核系统、但您还需要将应用程序刷写到 0x81000 偏移处、以便 SBL 引导应用程序映像。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/EXAMPLES_DRIVERS_SBL_OSPI.html

    ROM 引导加载程序详细说明: https://dev.ti.com/tirex/explore/content/am26x_academy_10_02_00_03/_build_am26x_academy_10_02_00_03/source/boot/top_level_boot_flow.html

    SBL 进行了详细说明: https://dev.ti.com/tirex/explore/content/am26x_academy_10_02_00_03/_build_am26x_academy_10_02_00_03/source/boot/secondary_boot_flow.html

    我使用 UniFlash 将多核环境加载到 OSPI 中、但不会引导

    我想知道您面临的具体“故障/问题“。

    使用闪存进行刷写时、请确保选择 sbl_ospi_morple_elf .tiimage 以及应用程序.mcelf 映像。

    1.刷写时 UniFlash 工具中是否弹出任何错误?

    2.尝试关闭并运行应用程序时,您是否在日志中看到任何错误?

    希望您参考的是刷写文档: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/TOOLS_FLASH.html#TOOLS_TI_UNIFLASH_TOOL

    (除非在应用程序中配置了 XIP 以便从闪存而不是 RAM 运行、否则请勿选择 XIP 文件、仅 SBL 和应用程序映像就足够了)。

    例如、如果您刷写 hello world 应用程序、则将看到 SBL OSPI 日志、然后在所有内容都正确启动时记录 hello world 应用程序。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    如何创建 HSMRT 工程和 HSMRT SBL 工程? 在 R5F SBL 中、我们将加载 HSM 映像、具体情况是什么? 是 HSM 运行时应用程序还是 HSM SBL?

    此外、在 HS-SE 模式下、我们是否需要为 HSM 开发我们自己的 SBL、或者是否提供?

    此致、

    Shashank B,

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

    您好、Shashank、

    此外、在 HS-SE 模式下、我们是否需要为 HSM 开发我们自己的 SBL、或者是否提供了它?

    对于 HS-SE 器件、请下载并使用 TIFS SDK。 您可以使用 TI 提供的 SBL、使用您在将器件从 HSFS -> HSSE 转换时已编程的密钥对其进行签名。 您不需要开发整个 SBL、只需确保使用正确的密钥进行签名即可。

    如何创建 HSMRT 工程和 HSMRT SBL 工程? 在 R5F SBL 中、我们将加载 HSM 映像、具体情况是什么? 是 HSM 运行时应用程序还是 HSM SBL?

    HSMRT 固件 为 R5F 内核提供各种基础安全服务。 无需构建/创建此工程。 您可以使用 SDK 项目/映像。 没有“HSM SBL“的概念。 在 R5F 内核的上下文中、只需加载“HSMRT"固“固件、该固件在 SDK 中以“.h"文件“文件的形式提供。

    有关 HSMRT 服务的详细信息、请访问: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/SECURITY_PAGE.html

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/11_00_00_19/exports/docs/api_guide_am263px/hsmclient_8h.html

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    在尝试从 TIFS_AM263Px SDK 导入工程时、无法在 CCS 中加载工程。 它显示一个错误、说明未下载 MCU_PLUS_SDK_AM263Px v0.0、即使我在 PC 的 TI 文件夹中安装了 MCU_PLUS_SDK_AM263Px_10_02_00_15。尝试从 TIFS_AM263Px SDK 导入工程时、无法在 CCS 中加载工程。 在 PC 的 TI 文件夹中安装了 MCU_PLUS_SDK_AM263Px_10_02_00_15、但系统显示的错误表明未下载 MCU_PLUS_SDK_AM263Px v0.0。

    此致、

    Shashank B,

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

    您好、Shashank、

    您可以尝试以下操作:

    1.在任何代码编辑器(如 VS 代码,甚至记事本)中,打开 example.projectspec 文件以获取您正在使用的任何示例。

    2.搜索  
    product=“sysconfig;com.ti.TIFS_AM263PX;com.ti.MCU_PLUS_SDK_AM263PX;“

    3.将其替换为:
    products=“sysconfig;com.ti.TIFS_AM263PX;MCU-PLUS-SDK;AM263PX;“

    4.保存文件、尝试在 CCS 中重新导入。

    此致、
    Shaunak

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

    Shaunak,

    编译工程时、我遇到以下错误:

    此致、

    Shashank B

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

    尊敬的 Shaunak:

    1.在调试 OSPI SBL 代码时、我在 SBLmain() 函数的开头添加了一个无限 while 循环、并由可以手动更改的变量控制。 ospi_sbl将映像刷写到 OSPI 闪存中、将器件设置为 DevBoot 模式并应用上电复位后、我在 CCS 中加载了符号、但 CCS 报告执行已结束

    2.OSPI_SBLOSPI_SBL_MULTICORE_ELF示例之间的区别是什么? 两者看起来都能够加载多个内核。

    此致、

    Shashank B

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

    尊敬的 Shaunak:

    • 第一个问题已解决 方法是将引导模式引脚更改为 OSPI 引导模式 。 不过、 CCS In-To 函数调试无法正常运行 (即使我已在文件中启用)DEBUG_ENABLEdevconfig.mak

    • 请确认我的理解是否正确:

      • OSPI_SBL 而增加 RPRC 映像 (紧凑,可加载,中间格式,可以组合用于多核映像)。

      • OSPI_SBL_DOOR_ELF 加载 A 多核 ELF 映像 ,这是一个直接的 MCELF .out 添加到工程。

    • 建议采用哪种方法 用于加载多核映像— MCELF(多核 ELF) RPRC 映像

    此致、

    Shashank

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid=“650262" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1580169/am263p4-ospi-bl/6132396 第一个问题已解决 方法是将引导模式引脚更改为 OSPI 引导模式 。 不过、 CCS In-To 函数调试无法正常运行 、尽管我已DEBUG_ENABLEdevconfig.mak文件中启用。

    调试 SBL 时、您实际上并不需要使用 DBG_ENABLE、除非您使用的是 HSSE 器件、我相信您正确使用了 HSFS 器件?

    通常、一旦 ROM 将控制权移交给 SBL、您应该在 SBL 中的条目顶部进入 while 循环设置、并且在连接调试器时(HSFS 器件应该能够直接连接)、您可以看到代码、退出循环并正常调试。

    [quote userid=“650262" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1580169/am263p4-ospi-bl/6132396
    • 请确认我的理解是否正确:

      • OSPI_SBL 而增加 RPRC 映像 (紧凑,可加载,中间格式,可以组合用于多核映像)。

      • OSPI_SBL_DOOR_ELF 加载 A 多核 ELF 映像 ,这是一个直接的 MCELF .out 添加到工程。

    • 建议采用哪种方法 用于加载多核映像— MCELF(多核 ELF) RPRC 映像

    [/报价]

    ID 建议使用 SBL OSPI 多核 Elf、因为已弃用 RPRC 格式、mcelf 格式是 SDK 中的默认格式

    此致、
    Shaunak