使用BDI2000 PowerPC4xx进行u-boot调试

时间:2013-03-14 16:45:10

标签: u-boot

我试图弄清楚在尝试调试U-boot端口时发生了什么。我已经在我的主板上安装了U-boot,并通过BDI2000设置进行调试。当我逐步开始。我一直遇到这个错误:

(gdb) si
314     mtspr   SPRN_SRR0,r0
(gdb) si
315     mtspr   SPRN_SRR1,r0
(gdb) si
316     mtspr   SPRN_CSRR0,r0
(gdb) si
317     mtspr   SPRN_CSRR1,r0
(gdb) si
320     mtspr   SPRN_MCSRR0,r0
(gdb) si
321     mtspr   SPRN_MCSRR1,r0
(gdb) si
322     mfspr   r1,SPRN_MCSR
(gdb) si
323     mtspr   SPRN_MCSR,r1
(gdb) si
333     lis r1,0x0030   /* store gathering & broadcast disable */
(gdb) si
Cannot access memory at address 0x300000
(gdb) si
_start_440 () at start.S:334
334     ori r1,r1,0x6000    /* cache touch */
Cannot access memory at address 0xfffff03c
(gdb) bt
#0  _start_440 () at start.S:334
#1  0xfffff18c in rsttlb () at start.S:480
Backtrace stopped: frame did not save the PC

这是我的第一个董事会,所以你可能会有任何指示非常有帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

由于某种原因,GDB只读取正在运行的模块的asm。通过使用BDI进入其他区域,我可以从GDB继续执行而无需“无法访问内存”问题。

如果您有任何问题,请随时给我发消息。

THX

答案 1 :(得分:0)

这似乎是PowerPC代码。我的经验表明你的内存地址尚未映射。默认情况下启动代码将访问非易失性存储器(NVM)代码(例如:ROM,EEPROM,Flash ...),并且负责设置或定义RAM所在的位置。通常,此信息从NVM中提取,并写入内存管理设备或PowerPC芯片内,以使处理器识别RAM。如果没有看到整个代码,就很难评估它是否设置正确。另一种可能性是BDI的配置文件没有描述地址0x300000

的内容