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.

[参考译文] LP-AM261:从 OSPI 引导不符合预期

Guru**** 2873830 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/1630571/lp-am261-boot-from-ospi-is-not-as-expected

器件型号: LP-AM261
Thread 中讨论的其他器件: UNIFLASH

我能够通过 UART 模式将.out 文件刷写到 R5_0 内核、并经过修改使用 sbl_null cfg 来添加二进制.out 文件

我还证明了 cfg 文件以供参考。 并添加了日志。

 

刷写完成后更改为 OSPI 模式。 我只能看到默认的 SBL 日志、但预期的.out 未执行。

请务必建议缺失的配置/过程

启动后的 UART 日志:

INFO:bootloader_socLoadHsmRtFw:82:Device Type:HSFS
INFO:bootloader_socLoadHsmRtFw:84:HSMRT 大小(以字节为单位):27603.
INFO:bootloader_socLoadHsmRtFw:97:HSM 运行时固件加载完成...
正在启动 NULL 引导加载程序...
信息:bootloader_runCpu:205:cpu r5f0-1 初始化为 500000000 Hz!!
kpi_data:[bootloader_profile] CPU 时钟    :500.000MHz
kpi_data:[bootloader_profile]引导介质   :未定义
kpi_data:[bootloader_profile]引导映像大小 :0 KB
kpi_data:[bootloader_profile]当前核心  :
kpi_data:【引导加载程序配置文件】System_init            :     79us
kpi_data:[bootloader profile] Drivers_open           :     22us
kpi_data:【引导加载程序配置文件】LoadHsmRtFw            :   24774us
kpi_data:【引导加载程序配置文件】SBL 结束              :   9629us
kpi_data:[bootloader_profile] SBL 所用总时间       :   34504us

引导加载程序执行完成为空...
INFO:bootloadSelfCpu:257:CPU r5f0-0 已初始化为 500000000 Hz!!
INFO:bootloader_runSelfCpu:267:全部完成、正在重新设置自身...

default_sbl_null_eth.cfg 

C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot>python uart_uniflash.py -p COM16 --cfg=“C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot\sbl_prebuilt\am261x-lp\default_sbl_null_eth.cfg“

正在解析配置文件...
正在解析配置文件...成功。 找到 3 个命令!!!

正在执行命令 1(共 3 个)...
找到闪存写入器...正在发送 sbl_prebuilt/am261x-lp/sbl_uart_uniflash.release.tiimage

已在 6.37s 内发送大小为 51601 字节的闪存写入器 sbl_prebuilt/am261x-lp/sbl_uart_uniflash.release.tiimage。

正在执行第 2 个命令(共 3 个)...
命令参数:--file=sbl_prebuilt/am261x-lp/sbl_null.release.tiimage --operation=flash --flash-offset=0x0
在 20.05s 内发送大小为 182940 字节的 sbl_prebuilt/am261x-lp/sbl_null.release.tiimage。
【状态】成功!!!

正在执行第 3 个命令(共 3 个)...
命令参数:--file=sbl_prebuilt/am261x-lp/enet_cpsw_tcpserver_am261x-lp_r5fss0-0_freertos_ti-arm-clang.bin --operation=flash-sector-write --flash-offset=0x81000
发送 sbl_prebuilt/am261x-lp/enet_cpsw_tcpserver_am261x-lp_r5fss0-0_freertos_ti-arm-clang.bin:242844 字节[00:23,11142.78bySending sbl_prebuilt/am                                                                在 24.91s 内发送大小为 242392 字节的 sbl_prebuilt/am261x-LP/enet_cpsw_tcpserver_am261x-lp_r5fss0-0_freertos_ti-arm-clang.bin。
【状态】成功!!!

将执行配置文件中的所有命令!!!

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

    尊敬的 Mallikarjuanreddy:

    感谢您的查询!!

    正如我看到从 quary 你试图使用 uart_uniflash python 脚本编程闪存.

    这里需要注意以下几点:

    1. SBL null 负责 R5F CPU 的上电和时钟设置、并在“WFI"循环“循环中复位并运行所有 CPU

    2. SBL NULL 不引导任何应用程序二进制文件。  

    3.为了引导任何应用程序二进制文件,应使用/修改 mcelf_sbl_ospi.cfg 文件与 default_sbl_null.cfg 存在于同一 sbl_prebuilt 文件夹中。

    4.更新第 24/25 行中的应用程序映像路径。 确保二进制文件的类型为 release.mcelf

    5.注释掉第 27/28 行中的 XIP 文件路径不使用。

    6.对 UART 刷写执行相同的步骤[确保在刷写时将展台模式设置为 UART]、仅更改 mcelf_sbl_ospi.cfg

    python uart_uniflash.py -p COM16 -cfg=“C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot\sbl_prebuilt\am261x-lp\mcelf_sbl_ospi.cfg“



    此致、
    Rijohn

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

    嗨、Rijohn、

    感谢您的澄清。

    我们是否需要进行刷写所需的 mcelf 文件、因为可以使用.out 或.bin 文件

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

    尊敬的  Mallikarjuanreddy:

    是的、应用程序映像 应位于 11.0 SDK 版本的.mcelf 中。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/11_01_00_19/exports/docs/api_guide_am261x/TOOLS_FLASH.html#TOOLS_FLASH_UART_UNIFLASH

    此致、
    Rijohn

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

    嗨、Rijohn、

    好的、在 SDK 文档中、我发现我们需要使用 genimage.py (C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot\multiple-elf) 将.out 转换为 mcelf 格式

    因此、在此过程中、我发现了几个错误

    日志:

    C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot\multiple-elf>python genimage.py --core-img=“0":“:“r0.out"--output="app.mclf"“--output="app.mclf"</s>“ “
    回溯(最近一次呼叫):
    中的文件“C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot\multiple-elf\genimage.py“第 40 行
    从 modules.otfecc_structs 导入*
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^μ s
    中的文件“C:\ti\mcu_plus_sdk_am261x_11_01_00_19\tools\boot\multiple-elf\modules\otfecc_structs.py“第 35 行
    从构造导入结构、int16ul、int16ub、\
    ModuleNotFoundError:没有名为“struct"的“的模块

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

    尊敬的 Mallikarjuanreddy:

    从错误日志中可以看出、此错误是由于 C:\ti\mcu_plus_sdk_am261x_11_01_00_19\requirements.txt 中缺少提到的 python 软件包所致

    您能否确保完成以下步骤:

    1. 在此路径中打开终端并执行:pip install -r requirements.txt

    2. 如需更多信息、请访问: https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/11_01_00_19/exports/docs/api_guide_am261x/SDK_DOWNLOAD_PAGE.html

    3. 安装所有软件包后、根据您的活动构建配置、再次从 CCS 重新编译工程、Release/Debug 文件夹(与.out 文件相同的位置)中应存在.mcelf 格式映像。

    此致、

    Rijohn

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

    嗨、Rijohn、

    感谢您的更新和链接

    这就解决了问题