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.
工具与软件:
您好!
我运行的是没有操作系统的 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 "
如果 RBL 无法启动、初始故障排除步骤包括:
如果时钟和数据线等硬件元件正常工作、请重点关注闪存配置。 具体而言、验证闪存模式。 许多闪存器件支持 SFDP (串行闪存可发现参数)模式、如闪存器件用户手册中所述。 例如、某些闪存器件仅以 SFDP 模式运行。
在 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);
这是正确的理解。
请务必记住、只要您能够看到从0x60000000开始的 SoC 存储器空间中的闪存内容、这是因为启用了 DAC、如果禁用了 DAC、则将无法这样做。
其余的 点也是正确的。
感谢您提供详细的说明、我将其标记为 TI 认为已经解决。
此致、
Vaibhav