2017-08-14 39 views
0

私はTexas Instruments AM5728に基づいて開発中のカスタムボードにU-Bootを移植する作業を行っていますが、U-Bootのデバッグに問題があります。私はJTAGを介してU-Boot SPLをロードしてデバッグすることができますが、SPLが終了した後はJ-TAGを介してU-Bootがロードされるとハードウェアブレークポイントに達することはできません。これは、U-Bootバイナリにデバッグシンボルテーブルがどこに存在するかを知らないことが主な原因です。私はU-BootでDEBUGマクロを有効にしていて、成功していないので、デバッグシンボルを取得できれば、実際に何らかのエラーが発生した場合でも対応できます。U-Bootデバッグシンボルを取得する方法

ビルドプロセス/ Makefileからデバッグシンボルを取得する方法はありますか?

答えて

2

ここにはいくつか注意が必要です。まず、SPL/U-ブート-SPLU-ブートはU-ブートのため、あなたが行っているAM5728の場合、ELFファイルは、MLOU-boot.imgをへのロードをすべきですそれらを起動するメモリ。 2つ目のことは、U-Bootのかなり早い段階で、メモリにロードされた場所から、計算して実行を再開するアドレスに移動することです。この値を取得する最も簡単な方法は、迅速にシステムが起動すると仮定すると、次のとおりです。

=> bdinfo 
... 
relocaddr = 0xFFF6D000 
reloc off = 0x7F76D000 

これらの値はシステムに依存しているが、あなたのシステムメモリ内の絶対アドレスの両方を伝えると、アドレスにリンクに追加するオフセット与えられた関数がどこにあるのかを知る。 u-boot.mapファイルには、すべての機能がリンクされている場所が一覧表示されます。デバッガに何がどこにあるかを伝える方法は、問題のデバッガによって異なります。たとえば、gdbでは、シンボルファイルを再ロードし、新しいrelocaddr値を与えます。

+0

私が持っていた問題は、私がコンソールで起動しないということでした。 'u-boot.map'ファイルにrelocaddrやrelocを見つけるために何かがありますか? –

+0

再配置の前にデバッグを開始することができ、 'gd'を調べることができます。また、gd-> relocaddrが設定されているときに表示されます。 –

+0

これは最初の質問で範囲外ですが、デバッガでgd-> relocaddrを参照する行にブレークポイントを置くことができないため、デバッグするのが非常に難しいことがわかりました。同時に、board_init_fのデバッグシンボルはありません。これらを有効にする方法はありますか? DEBUGを定義しても、デバッグメッセージが表示されないことがわかりました。 –

関連する問題