2013-03-14 13 views
0

我試圖弄清楚在調試U-boot端口時發生了什麼。我已經在我的主板上加載了U-boot,並通過BDI2000進行了調試。當我通過start.S中步驟我一直運行到這個錯誤:使用BDI2000的u-boot調試PowerPC4xx

(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 

這是我第一次板卡提升,所以任何指針你可能會非常有幫助。

謝謝!

回答

1

由於某些原因,GDB只讀入正在運行的模塊的asm。通過使用BDI進入其他領域,我可以在沒有「無法訪問內存」問題的情況下從GDB執行步驟。

如果您有任何問題隨時給我發消息。

Thx

0

這似乎是PowerPC代碼。我的經驗表明您的內存地址尚未映射。默認情況下啓動代碼將訪問非易失性存儲器(NVM)代碼(例如:ROM,EEPROM,Flash ...),並且有責任設置或定義RAM所在的位置。通常,這些信息是從NVM中提取的,並寫入到內存管理設備或PowerPC芯片中,以使處理器知道RAM。沒有看到整個代碼,很難評估它是否正確設置。另一種可能性是BDI的配置文件沒有描述地址0x300000