0

U-bootポートをデバッグしようとしているときに何が起こっているのかを理解しようとしています。ボードにU-bootをロードし、デバッグ用にBDI2000をセットアップしました。start.SIをステップスルーすると、次のエラーが発生し続けます。

(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

これは私の最初のボードですので、あなたが持っているかもしれないどんなポインタも非常に役に立ちます。

ありがとう!

4

2 に答える 2

1

何らかの理由で、GDBは実行中のモジュールのasmのみを読み込みます。BDIを使用して他の領域にステップインすることで、「メモリにアクセスできません」の問題なしにGDBからステップインできます。

ご不明な点がございましたら、お気軽にメッセージをお送りください。

どうも

于 2013-03-14T20:03:33.847 に答える
0

これはPowerPCコードのようです。私の経験では、メモリアドレスはまだマップされていません。起動コードはデフォルトで不揮発性メモリ(NVM)コード(例:ROM、EEPROM、フラッシュ...)にアクセスし、RAMの配置場所を設定または定義する責任があります。通常、この情報はNVMから取得され、プロセッサにRAMを認識させるために、メモリ管理デバイスまたはPowerPCチップ内に書き込まれます。コード全体を見ずに、正しく設定されているかどうかを評価することは困難です。もう1つの可能性は、BDIの構成ファイルがアドレス0x300000にあるものを記述していないことです。

于 2015-10-21T23:45:52.873 に答える