我在调试U-Boot时遇到了一些问题。我认为这是由于RAM配置错误,但我想对其进行一些澄清。
我的测试方法如下,基于these instructions for the BeagleBone Black
此时我知道由于spl_relocate_stack_gd()
已被调用,U-Boot已从SRAM重新定位到DDR3 RAM。
从这里开始我将恢复应用程序以进入U-Boot控制台并从gd->relocaddr
获取bdinfo
,但即使是单一步进程序也会导致U-Boot无法响应,并且PC移动到地址0x0000000C。
我的猜测是,这是因为SDRAM配置不正确,导致错误的读取,考虑到第一条指令是分支,这可能导致错误的PC值。
问题在于,当我使用TI AM5728 EVM尝试使用已知正确的RAM配置时,会发生同样的事情。但是当我使用只有u-boot.img和MLO的SD卡启动EVM时,我会到达U-Boot命令行。
我是否会因为这可能是RAM而疯狂?既然我有相同SoC的工作RAM配置做同样的行为的证据,或者还有其他我缺少的东西? printf()
似乎不起作用,并且启用DEBUG宏也不会向控制台打印任何内容。