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.

[参考译文] RBL-AM243X:从闪存引导 MCU-PLUS-SDK

Guru**** 2124380 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/1450988/mcu-plus-sdk-am243x-rbl-boot-from-flash

器件型号:MCU-PLUS-SDK AM243X
主题中讨论的其他器件:UNIFLASHSysConfig

工具与软件:

您好!

我运行的是没有操作系统的 am243。  

我在电路板上运行示例 sbl_null.release.hs_fs.tiimage、我的电路板使用的是这款 S28HL01GTFPBHI030


然而、在我成功上传默认映像后、我切换到 ospi 引导模式。  

什么都不会从 uart0出来。

SBL_null 中闪存的默认设置是什么 ?我应该将闪存配置为该设置吗?


如何才能从其中进行调试?

谢谢。  

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

    我切换回 DEV 引导模式、并转储闪存、因此 sbl_null.release.hs_fs.tiimage   位于偏移量0x60000000处 、所有内容都完全相同。  

    1.问题可能是什么? 2.如何调试 RBL 无法启动问题?
    3.默认闪存配置是 RBL 预期的,例如:除了1s-1s,还有什么?





    sbl_null.release.hs_fs.tiimage  位于 C:\ti\mcu_plus_sdk_am243x_09_02_00_50\tools\boot\sbl_prebuild\am243x-evm 下

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

    尊敬的 Jun:

    但是、在我成功上传默认映像后、

    您是说您成功地使用 UART uniflash 刷写 SBL 空值(引导加载程序)?

    如果是、则 SBL null 不具有 OSPI 配置、但 UART uniflasher 将具有 OSPI 配置、因此在这一点上、您能否告诉我您在 UART uniflasher 中以哪种模式运行 OSPI 控制器/闪存?

    您是否更新了 SysConfig 的"Flash"选项卡中的闪存配置值? 因为不同的闪存器件具有不同的闪存配置。

    [报价用户 id="587615" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450988/mcu-plus-sdk-am243x-rbl-boot-from-flash "] sbl_null、

    我之前的调试中的 SBL 为空、根本没有 OSPI 设置。

    此致、

    Vaibhav

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

    大家好、Vaibhav、我已经解决了我的问题、现在我理解了一切。 你是对的、但这不是我所期望的答案。  

    "SBL 空值"不配置 OSPI 设置、因为由 RBL 负责。 从 SBL Null 引导后、可以通过存储器映射直接访问闪存内容。 例如、如果 我们将以下代码放在"SBL NULL"的开头:


    uint32_t * mem =(uint32_t *)(0x60000000)
    printf ("%x"、*mem);


    此操作将打印闪存映射存储器的内容。  我们可以继续打印和转储所有内容。  "printf ("%x"、mem[n])"、 您会发现它 是"SBL NULL "


    1.潜在问题

    如果 RBL 无法启动、初始故障排除步骤包括:

    • 使用示波器验证时钟信号。
    • 检查 OSPI 数据线是否具有正确的连接和功能。

    2.调试 RBL 引导失败

    如果时钟和数据线等硬件元件正常工作、请重点关注闪存配置。 具体而言、验证闪存模式。 许多闪存器件支持 SFDP (串行闪存可发现参数)模式、如闪存器件用户手册中所述。 例如、某些闪存器件仅以 SFDP 模式运行。

    3. RBL 预期的默认闪存配置

    在 SFDP 模式下、RBL 最初以1S-1S-1S 模式运行、然后重新配置为8D-8D-8D 模式。 然后、RBL 从地址0x0开始读取图像并从该图像引导。

    在启动的 TIA 图像的主函数开始时、转储内存将会显示闪存的内容、无论正在启动的特定映像是什么。

    谢谢、请回顾并给我一些分。  

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

    尊敬的 Jun:

    [报价用户 id="587615" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450988/mcu-plus-sdk-am243x-rbl-boot-from-flash/5569013 #5569013"]"SBL 空"不配置 OSPI 设置、因为此责任在于 RBL。 从 SBL Null 引导后、可以通过存储器映射直接访问闪存内容。 例如、如果 我们将以下代码放在"SBL NULL"的开头:


    uint32_t * mem =(uint32_t *)(0x60000000)
    printf ("%x"、*mem);


    此操作将打印闪存映射存储器的内容。  我们可以继续打印和转储所有内容。  "printf ("%x"、mem[n])"、 您将发现其 为"SBL NULL "

    这是正确的理解。

    请务必记住、只要您能够看到从0x60000000开始的 SoC 存储器空间中的闪存内容、这是因为启用了 DAC、如果禁用了 DAC、则将无法这样做。

    其余的 点也是正确的。

    感谢您提供详细的说明、我将其标记为 TI 认为已经解决。

    此致、

    Vaibhav