• 検索結果がありません。

つのプ ロ グ ラ ムのデバ ッ グ

1 つのプ ロ グ ラ ムのデバ ッ グ

1 つのプ ロ グ ラ ム をデバ ッ グする には、 次の手順に従い ます。

1. プ ロ セ ッ サを接続 し ます。

2. ELFフ ァ イ ルを ダ ウ ン ロ ー ド し ます。

3. 必要なブ レー ク ポ イ ン ト お よ びウ ォ ッ チポ イ ン ト を設定 し ます。

4. con コ マ ン ド を使用 し てプ ロ セ ッ サの実行を開始す る か、stp コ マン ド を使用 し てプ ロ グ ラ ムの

命令を順に実行 し ます。

5. state コ マ ン ド を使用 し てプ ロ セ ッ サの ス テー タ ス を確認 し ます。

6. 必要に応 じ て stop コ マ ン ド を使用 し 、 プ ロ セ ッ サ を停止 し ます。

7. プ ロ セ ッ サが停止 し た ら 、 レ ジ ス タ お よ び メ モ リ に対 し て読み出 し お よ び書 き 込みを実行 し ます。

8. プ ロ グ ラ ム を再実行す る には、run コ マン ド を使用 し ます。

XMD ユーザー コ マ ン ド R

複数プ ロ セ ッ サ環境でのプ ロ グ ラ ムのデバ ッ グ

複数プ ロ セ ッ サ環境でプ ロ グ ラ ム をデバ ッ グす る には、 次の手順に従い ます。

1. プ ロ セ ッ サ 1 に接続 し ます。

2. debugconfig コ マン ド を使用 し て リ セ ッ ト 時の動作を設定 し ます。 リ セ ッ ト 時の動作は、 シ ス

テ ム アーキテ ク チ ャ に よ り 異な り ます。「デバ ッ グセ ッ シ ョ ンの設定」 を参照 し て く だ さ い。

3. ELFフ ァ イ ルを ダ ウ ン ロ ー ド し ます。

4. 必要なブ レー ク ポ イ ン ト お よ びウ ォ ッ チポ イ ン ト を設定 し ます。

5. con コ マ ン ド を使用 し てプ ロ セ ッ サの実行を開始す る か、stp コ マン ド を使用 し てプ ロ グ ラ ムの

命令を順に実行 し ます。

6. プ ロ セ ッ サ 2 に接続 し ます。

7. debugconfig コ マン ド を使用 し て リ セ ッ ト 時の動作を設定 し ます。 リ セ ッ ト 時の動作は、 シ ス

テ ム アーキテ ク チ ャ に よ り 異な り ます。「デバ ッ グセ ッ シ ョ ンの設定」 を参照 し て く だ さ い。

8. ELFフ ァ イ ルを ダ ウ ン ロ ー ド し ます。

9. 必要なブ レー ク ポ イ ン ト お よ びウ ォ ッ チポ イ ン ト を設定 し ます。

10. con コ マ ン ド を使用 し てプ ロ セ ッ サの実行を開始す る か、stp コ マン ド を使用 し てプ ロ グ ラ ムの 命令を順に実行 し ます。

11. targets コ マ ン ド を使用 し てシ ス テ ムの タ ーゲ ッ ト を リ ス ト し ます。 各 タ ーゲ ッ ト には タ ーゲ ッ ト ID が付け ら れてい ます。 ア ク テ ィ ブな タ ーゲ ッ ト は、 ア ス タ リ ス ク (*) で示 さ れます。

12. targets <target id> コ マン ド を使用 し て タ ーゲ ッ ト を切 り 替え ます。

13. state コ マ ン ド を使用 し てプ ロ セ ッ サの ス テー タ ス を確認 し ます。

14. stop コ マ ン ド を使用 し て、 プ ロ セ ッ サを停止 し ます。

15.プ ロ セ ッ サが停止 し た ら 、 レ ジ ス タ お よ び メ モ リ に対 し て読み出 し お よ び書 き 込みを実行 し ます。

16.プ ロ グ ラ ム を再実行す る には、run コ マン ド を使用 し ます。

デバ ッ グ セ ッ シ ョ ン でのプ ロ グ ラ ムの実行

1. プ ロ セ ッ サに接続 し ます。

2. ELFフ ァ イ ルを ダ ウ ン ロ ー ド し ます。

3. <exit> 関数でブ レー ク ポ イ ン ト を設定 し ます。

4. con コ マ ン ド を使用 し てプ ロ セ ッ サの実行を開始 し ます。

5. state コ マ ン ド を使用 し てプ ロ セ ッ サの ス テー タ ス を確認 し ます。

6. stop コ マ ン ド を使用 し て、 プ ロ セ ッ サを停止 し ます。

7. プ ロ セ ッ サが停止 し た ら 、 レ ジ ス タ お よ び メ モ リ に対 し て読み出 し お よ び書 き 込みを実行 し ます。

8. プ ロ グ ラ ム を再実行す る には、run コ マン ド を使用 し ます。

自動例外 ト ラ ッ プ でのセー フ モー ド の使用

XMD では、 エ ラ ーが発生 し た場合にプ ロ グ ラ ムの例外を ト ラ ッ プで き ます。 エ ラ ーには、 不正な 命令の実行やバ スエ ラ ーな ど があ り ます。 次の手順に従い ます。

1. プ ロ グ ラ ム を ダ ウ ン ロ ー ド し ます。

第 11 : Xilinx Microprocessor Debugger (XMD)

R

2. safemode on コ マン ド を実行 し ます。

3. con コ マ ン ド を使用 し てプ ロ グ ラ ム を開始 し ます。

例外が発生す る と 、 プ ロ グ ラ ム が停止 し ま す。 こ の機能は、GUI デバ ッ ガ (Insight GDB ま たは

SDK) で作業する 際に有益です。

• SDK を使用す る 場合、 プ ロ グ ラ ム を実行す る 前に [Initialization] タ ブで [Enable Safemode]

チ ェ ッ ク ボ ッ ク ス を オンに し て く だ さ い。

• GDB を使用す る 場合、 プ ロ グ ラ ム を実行す る 前に、 プ ロ グ ラ ム を ダ ウ ン ロ ー ド し て XMD ン ソ ールで safemode on コ マ ン ド を実行 し て く だ さ い。

例外が発生す る と プ ロ グ ラ ムが停止 し 、GUI に例外を発生 さ せた コ ー ド 行が表示 さ れます。

プ ロ セ ッ サのデ フ ォル ト 例外設定

次の表に、 例外 ト ラ ッ プのデフ ォ ル ト 設定を プ ロ セ ッ サの タ イ プ別に示 し ます。

表 11-5 : PowerPC プ ロ セ ッ サの例外設定

例外 ID ト ラ ッ プ 例外名

0 な し 外部 ク リ テ ィ カル割 り 込み例外

1 あ り 外部バ スエ ラ ー例外

2 あ り デー タ格納例外

3 あ り 命令格納例外

4 な し 外部非 ク リ テ ィ カル割 り 込み例外

5 な し 不整列デー タ ア ク セ ス例外

6 あ り 不正 op コ ー ド 例外

7 あ り FPU 使用不可例外

8 な し シ ス テ ム読み出 し 命令

9 あ り APU 使用不可例外

10 な し プ ロ グ ラ マブルイ ン タ ーバル タ イ マの タ イ ム ア ウ ト 例外 11 な し 固定 イ ン ターバル タ イ マの タ イ ム ア ウ ト 例外

12 な し ウ ォ ッ チ ド ッ グ タ イ マの タ イ ム ア ウ ト 例外

13 な し デー タ TLB ミ ス例外

14 な し 命令 TLB ミ ス例外

15 な し デバ ッ グ イ ベン ト 例外

16 あ り アサー ト エ ラ ー

17 あ り プ ロ グ ラ ム終了

XMD ユーザー コ マ ン ド R

例外設定の上書き

デフ ォ ル ト の例外設定を上書 き す る には、 次の 2 つの方法があ り ます。

1. 次の コ マ ン ド を使用 し ます。

xmdconfig [-mb_trap_mask|-ppc_trap_mask] [MASK]

こ の コ マ ン ド では、 現在の XMD セ ッ シ ョ ンのすべての タ ーゲ ッ ト にマ ス ク が設定 さ れます。

すべての XMD セ ッ シ ョ ン に独自のデフ ォ ル ト 設定 を定義す る には、 その コ マ ン ド を ホーム

デ ィ レ ク ト リ にあ る .xmdrc フ ァ イ ルに記述 し ます。

2. 次の コ マ ン ド を使用 し ます。

safemode -config mode [MASK]

こ の コ マ ン ド では、現在の タ ーゲ ッ ト にのみマ ス ク が設定 さ れます。 プ ロ グ ラ ムのデバ ッ グ中、

ト ラ ッ プ設定を変更す る のに便利な方法です。

メ モ : タ ーゲ ッ ト への接続を切断する と 、 現在の タ ーゲ ッ ト は破棄 さ れます。

セー フ モー ド 設定の表示

現在のセーフ モー ド 設定を表示す る には、 次の コ マン ド を入力 し ます。

safemode -info

セーフ モー ド では、XMD に よ り ト ラ ッ プす る 例外ハン ド ラ にブ レー ク ポ イ ン ト が設定 さ れます。

• MicroBlaze では、 すべての例外に よ り PC 0x20 に移動 し ます。

• PowerPC プ ロ セ ッ サでは、ELF フ ァ イ ルか ら 例外ハン ド ラ の場所が検出 さ れます。

表 11-6 : MicroBlaze の例外設定

例外 ID ト ラ ッ プ 例外名

0 あ り 高速シ ンプ レ ッ ク ス リ ン ク 例外

1 な し 不整列デー タア ク セ ス例外

2 あ り 不正 op コ ー ド 例外

3 あ り 命令バ スエ ラ ー例外

4 あ り デー タバ スエ ラ ー例外

5 あ り 0 での除算例外

6 あ り 浮動小数点例外

7 あ り 特権命令例外

8 あ り デー タ 格納例外

9 あ り 命令格納例外

10 あ り デー タ TLB ミ ス 例外

11 あ り 命令 TLB ミ ス 例外

12 あ り アサー ト エ ラ ー

13 あ り プ ロ グ ラ ム終了

第 11 : Xilinx Microprocessor Debugger (XMD)

R

こ の検出は、 ほ と ん ど の ス タ ン ド ア ロ ン ま たは Xilkernal プ ロ ジ ェ ク ト で機能 し ます。 別の ソ フ ト ウ ェ ア プ ラ ッ ト フ ォーム を使用 し てい る 場合、 検出が う ま く 機能 し ない可能性があ り ます。 その場 合は、 次の コ マ ン ド を使用 し て例外ハン ド ラ のア ド レ ス を設定 し て く だ さ い。

safemode -config [exception_id] [exception_handler_addr]

connect コ マ ン ド のオプ シ ョ ン

XMD では、異な る タ ーゲ ッ ト (プ ロ セ ッ サ ま たはペ リ フ ェ ラ ル) でプ ロ グ ラ ム をデバ ッ グで き ます。

XMD と タ ーゲ ッ ト の通信を確立する には、XMD を タ ーゲ ッ ト に接続す る 必要があ り ます。接続が 確立 さ れ る と 、 各 タ ーゲ ッ ト に固有の タ ーゲ ッ ト ID が割 り 当て ら れ ます。プ ロ セ ッ サに接続す る

と 、GDB サーバーが起動 し 、GDB ま たは SDK と の通信が可能にな り ます。

構文

connect {mb | ppc | mdm} <Connection_Type> [Options]

次のセ ク シ ョ ンで、 異な る タ ーゲ ッ ト の接続オプシ ョ ンについて説明 し ます。

PowerPC プ ロ セ ッ サ

ザ イ リ ン ク ス Virtex®デバ イ ス には、PowerPC (405 お よ び 440) プ ロ セ ッ サ コ アが 1 つ ま たは 2 つ含ま れてい ます。 XMD は、 ボー ド 上の JTAG 接続を介 し て こ れ ら の PowerPC プ ロ セ ッ サに接 続 し ます。ま た、TCP ソ ケ ッ ト イ ン タ ーフ ェ イ ス を介 し て IBM PowerPC プ ロ セ ッ サ命令セ ッ ト シ ミ ュ レー タ (ISS) に も 接続 さ れ ます。

PowerPC プ ロ セ ッ サに接続す る には、connect ppc コ マ ン ド を使用 し て、 リ モー ト の GDB サーバー を起動 し ま す。 XMD が PowerPC プ ロ セ ッ サに接続 さ れた ら 、XMD を介 し て powerpc-eabi-gdb ま たは SDK PowerPC に接続 し 、 デバ ッ グ を実行 し ます。

メ モ : XMD では、 仮想ア ド レ ス指定はサポー ト さ れません。 デバ ッ グは、 リ アルモー ド で実行 さ れてい る プ ロ グ ラ ムでのみ可能です。

PowerPC プ ロ セ ッ サ ハー ド ウ ェ アの接続

XMD PowerPC プ ロ セ ッ サハー ド ウ ェ アに接続す る 際、JTAG チ ェーン と PowerPC プ ロ セ ッ サ タ イ プお よ びシ ス テ ム内のプ ロ セ ッ サ を自動的に検出 し 、 最初のプ ロ セ ッ サに接続 し ます。こ のデ フ ォ ル ト 処理は、 次のオプシ ョ ン を使用 し て変更で き ます。

表 11-7 : connect コ マ ン ド のオプ シ ョ ン

オプ シ ョ ン 説明

ppc PowerPC プ ロ セ ッ サに接続 し ます。

mb MicroBlaze プ ロ セ ッ サに接続 し ます。

mdm MDM ペ リ フ ェ ラ ルに接続 し ます。

<Connection_Type> 接続方法を指定 し ます。 タ ーゲ ッ ト に よ っ て異な り ます。

[Options] 接続オプシ ョ ン。

connect コ マ ン ド のオプ シ ョ ン R

構文

connect ppc hw [-cable <JTAG Cable options>] {[-configdevice <JTAG chain options>]} [-debugdevice <PowerPC options>]

-cable のオプ シ ョ ン (JTAG ケーブル オプ シ ョ ン)

次のオプシ ョ ン を使用 し て、 タ ーゲ ッ ト と の接続に使用す る JTAG ケーブルを指定 し ます。

-configdevice のオプ シ ョ ン (JTAG チ ェ ーン オプ シ ョ ン)

次のオプシ ョ ン を使用 し て、JTAG チ ェ ーンに含ま れ る ザ イ リ ン ク ス以外のデバ イ ス に関す る 情報 を 指定 し ま す。 169 ページ の 「特殊な JTAG チ ェ ーン設定でのザ イ リ ン ク ス 以外のデバ イ ス のデ バ ッ グ セ ッ シ ョ ン例」 を参照 し て く だ さ い。

表 11-8 : -cable のオプ シ ョ ン (JTAG ケーブルオプ シ ョ ン)

オプ シ ョ ン 説明

fname <filename.svf> SVF (Serial Vector Format ) フ ァ イ ルの名前を指定 し ます。

frequency <cable speed in Hz>

ケーブルの ク ロ ッ ク ス ピー ド を Hz で指定 し ます。

有効なケーブル ス ピー ド は次の と お り です。

• パ ラ レ ルケーブル 4 : 5000000 (デフ ォ ル ト)、2500000、 200000

• プ ラ ッ ト フ ォーム USB : 24000000、12000000、6000000 (デフ ォル ト)30000001500000750000

port <port name> ポー ト を指定 し ます。 有効なポー ト 名は lpt1、lpt2、...usb21、 usb22... です。

type <cable_type> ケーブルの タ イ プを指定 し ます。 有効な ケーブル タ イ プは次の と お り です。

• xilinx_parallel3

• xilinx_parallel4

• xilinx_platformusb

• xilinx_svffile

xilinx_svffile に指定す る と 、fname オプシ ョ ンで指定 し た フ ァ イ

ルに JTAG コ マン ド が記述 さ れます。

表 11-9 : -configdevice のオプ シ ョ ン (JTAG チ ェ ーン オプ シ ョ ン)

オプ シ ョ ン 説明

devicenr <device position> JTAG チ ェーン内のデバ イ ス の位置を指定 し ます。デバ イ ス位置の番号は、1 か ら 開始 し ます。

irlength <length of the JTAG Instruction Register>

デバ イ ス の IR レ ジ ス タ の幅を指定 し ます。こ の情報 は、 デバ イ ス の BSDL フ ァ イ ルに記述 さ れてい ます。

idcode <device idcode> デバ イ ス の JTAG ID コ ー ド を指定 し ます。

jtagport <cpu> PowerPC プ ロ セ ッ サの JTAG ピ ン を FPGA ユーザー IO ピ ンに直接接続す る かを指定 し ます。

partname <device name> デバ イ ス名を指定 し ます。

関連したドキュメント