1. Run/Debug Configuration 概要
Nios® II SBT for Eclipse (以下 SBT ) の Run/Debug Configuration の Target Connection タブには 図1 のようなオプションがあります。
この記事では、これらのオプション設定を変えることで何が変わるのか紹介します。
デバッグを行う為に、下図2 のように Nios® II の "debug_reset_request" を各種 IP の reset 入力に接続しておいてください。
また、リセット信号の接続については下記のコンテンツも参照ください。
まとめの章に、リセット信号接続時の注意事項について掲載しております。
図1: デフォルト設定の Debug Configuration
図2: Nios® II の "debug_reset_request" を各種 IP の reset 入力に接続
2. 各種オプションの内容
表1 に、各種オプションの内容とデフォルトの設定を示します。
なお、表の No. 欄に記載している番号は、図1 に記載の番号と対応しています。
表1: 各種オプションの内容とデフォルト設定
No. | オプション名 | オプション内容 | デフォルト |
① | Disable 'Nios® II Console' view | SBT 上で Nios® II Console を使用しないようにする | OFF |
② | Ignore mismatched system ID | System ID のチェックを無視する | OFF |
③ | Ignore mismatched system timestamp | System Timestamp のチェックを無視する | OFF |
④ | Download ELF to selected target system | .text を設定した領域に ELF をダウンロードする | ON |
⑤ | Start processor | Run/Debug の実行後 Nios® II を動作させる | ON |
⑥ | Reset the selected target system | Run/Debug の実行前に Nios® II を Reset させる | OFF |
① は、Nios® II Command Shell のコマンド "nios2-terminal" を使用する際に ON にします。
②,③ は、System ID Peripheral Core で設定した情報を元に行う、ソフトウェアとデザインの整合性チェックを無視する際に ON にします。
④,⑤,⑥ は、デバッグ手法によって設定を変更する必要がありますので 3章、4章、5章でご紹介します。
3. 実行 メモリー に ELF ファイルをダウンロードしデバッグをする方法
実行メモリーが RAM の構成において、ELF ファイルを 実行 RAM に直接ダウンロードし、デバッグを行う場合、表2 のようにオプション設定をしてデバッグを実行します。
表2: 実行メモリー に ELF ファイルをダウンロードさせデバッグをする設定
No. | オプション名 | 設定内容 |
④ | Download ELF to selected target system | ON |
⑤ | Start processor | ON |
⑥ | Reset the selected target system | ON or OFF |
デバッグの前にリセットをかけたい場合は ⑥ をONにし、リセットをかけたくない場合は ⑥ を OFF にします。
4. すでに動作しているソフトウェアに対してデバッグをアタッチする方法
実行メモリーが RAM の構成において、すでに ROM にソフトウェアを格納していて、Nios® II のリセット解除後、ソフトウェアが起動している状態でデバッグを行いたい場合に有効です。
表3 のようにオプションを設定してデバッグを実行すると、すでに動作しているソフトウェアにデバッグをアタッチすることができます。
表3: すでに動作しているソフトウェアに対してデバッグをアタッチする設定
No. | オプション名 | 設定内容 |
④ | Download ELF to selected target system | OFF |
⑤ | Start processor | ON |
⑥ | Reset the selected target system | ON or OFF *(1) |
すでに動作している為、RAM に対して ELF ファイルをダウンロードする必要はありません。④ をOFFにします。
また、デバッグの前にリセットをかけたい場合は ⑥ をONにし、動作中の状態のままデバッグを行いたい場合は ⑥ を OFF にします。*(1)
⚠ 注意点
*(1) : 4章 の方法は Nios® II が起動している必要がありますので、"⑥ Reset the selected target system" を ON にして実行すると、"Downloading ELF process failed" が発生する事があります。その際は、OFF にして実行ください。
5. XIP 構成におけるデバッグの方法
XIP とは、Execute in Place という Nios® II の Boot 方式になります。
ソフトウェアが格納されている Boot ROM 上で、Nios® II を実行する構成です。
詳細や XIP 構成を構築する方法は下記コンテンツを参照ください。
📖 Nios® II Boot の構成 と 各 Boot Option における設定について
XIP でデバッグを行うには以下の2点が必須になります。
- Nios® II パラメーター設定の JTAG Debug タブの "Hardware Breakpoints" を 2 以上に設定し、SBT でハードウェア・ブレイクポイントの設定をしておく
- 実際に ROM にソフトウェアを書き込み、XIP で Nios® II を動作できるようにしておく
ブレイクポイントについては、下記を参照ください。
📖 Nios® II デバッグ手法 Software Breakpoint と Hardware Breakpoint
⚠ 注意点
XIP の場合、ソフトウェア・ブレイクポイントを使用することができませんので、ハードウェア・ブレイクポイントを実装する必要があります。また、ハードウェア・ブレイクポイントは Nios® II / Fast でしか実装できませんので、XIP のデバッグは Nios® II / Economy では行うことができません。
手順は下記になります。
(1) Nios® II パラメーター設定 JTAG Debug タブの "Hardware Breakpoints" を 2 以上に設定
(図3 参照)
(2) Generate HDL を行い、Quartus Prime でコンパイルし、SOF ファイルを生成
(3) SBT にて、ハードウェア・ブレイクポイントを設定(参照:図4)
(設定する行番号の左横を右クリック→ Add Breakpoint → Type : Hardware にして OK)
(4) ソフトウェアの Build と mem_init による HEX を生成
(5) Convert programming File で SOF と HEX を JIC ファイルに変換
(6) Boot ROM に JIC を書き込み、電源を入れなおして Nios® II を動作させる
(7) Nios® II が動作している状態で、SBT の Debug Configuration を起動して
"Download ELF to Selected target system" のチェックボックスを外して Debug を実行
図3: Nios® II パラメーター設定 Hardware Breakpoints
図4: SBT における ハードウェア・ブレイクポイントの設定
実際のオプション設定は 表4 になります。
表4: XIP 構成におけるデバッグの設定
No. | オプション名 | 設定内容 |
④ | Download ELF to selected target system | OFF |
⑤ | Start processor | ON |
⑥ | Reset the selected target system | ON or OFF |
すでに動作している為、ELF ファイルをダウンロードする必要はありません。④ をOFFにします。
また、デバッグの前にリセットをかけたい場合は ⑥ をONにし、動作中の状態のままデバッグを行いたい場合は ⑥ を OFF にします。
以上が Run/Debug Configuration の各種オプションの紹介になります。
この記事では、Debug / Run Configuration の設定方法について紹介させて頂きました。
Debug / Run Configuration 設定を適用した後、実際に Debug / Run を実行した際にエラーが発生する場合には、以下の記事の情報もご参考にしてください。実行時のトラブル事例について紹介しています。
おすすめページ
弊社では Nios® II に関する各種情報とまとめた「Nios® II まとめページ」をご用意しております。本記事以外にも有用な情報が満載ですのでこちらも併せてご確認ください。