U-Boot无法控制的调试步进

时间:2017-08-17 18:35:38

标签: u-boot texas-instruments jtag

我在调试U-Boot时遇到了一些问题。我认为这是由于RAM配置错误,但我想对其进行一些澄清。

我的测试方法如下,基于these instructions for the BeagleBone Black

  1. 没有内存/图像的加载板
  2. 通过JTAG在处理器手册(TI AM5728,地址0x40300000)中指定的正确地址将u-boot-spl.bin加载到SRAM存储器并加载u-boot-spl ELF符号
  3. 将PC寄存器设置为U-Boot-SPL的起始地址(0x40300000)
  4. 运行SPL,并在收到如下消息后暂停: u-boot-spl no MMC warning

  5. 此时我知道由于spl_relocate_stack_gd()已被调用,U-Boot已从SRAM重新定位到DDR3 RAM。

  6. 通过JTAG加载U-Boot,由于具有重定位的上下文,PC会自动更改为地址0x80800000。
  7. 从这里开始我将恢复应用程序以进入U-Boot控制台并从gd->relocaddr获取bdinfo,但即使是单一步进程序也会导致U-Boot无法响应,并且PC移动到地址0x0000000C。

    我的猜测是,这是因为SDRAM配置不正确,导致错误的读取,考虑到第一条指令是分支,这可能导致错误的PC值。

    问题在于,当我使用TI AM5728 EVM尝试使用已知正确的RAM配置时,会发生同样的事情。但是当我使用只有u-boot.img和MLO的SD卡启动EVM时,我会到达U-Boot命令行。

    EVM bdinfo

    我是否会因为这可能是RAM而疯狂?既然我有相同SoC的工作RAM配置做同样的行为的证据,或者还有其他我缺少的东西? printf()似乎不起作用,并且启用DEBUG宏也不会向控制台打印任何内容。

0 个答案:

没有答案