I-jet 設定ガイド Rev.1.6 IAR システムズ株式会社
1. I-jetでデバッグするまでのステップ 2. 接続できない (MCUと通信できない) ときの確認 3. ダウンロードできないときの確認 4. 正常にデバッグできないときの確認 5. SWOトレースできないときの確認 6. [ メモリ構成 ] の設定方法 7. EmuDiagの使い方 8. 良くあるエラーメッセージと対処方法 9. 参考資料 10. 本資料で解決しない場合は 本資料は EWARM6.50.2/6.50.6/6.60.1 を元に作成されております 2
PART 1 I-jet でデバッグするまでのステップ
I-jet でデバッグするまでのステップ USB 接続 メモリ構成設定 * 必要に応じ 初回のみ MCU と通信 ダウンロード (ROM) ダウンロード (RAM) デバッグ開始 SWO トレース *Cortex-M3/4 のみ 4
デバッグログ例 USB 接続 MCU 接続 ダウンロード (ROM) デバッグ ロードされたマクロファイル : C: Program Files (x86) IAR Systems ARM 6502 arm config flashloader ST FlashSTM32F10xxx.mac I-jet/JTAGjet ドライバをロードしています Probe: Probe SW module ver 1.08 Probe: Opened connection to I-jet:72072 Probe: USB connection verified (3980 packets/sec) Probe: I-jet FW ver 2, HW rev A Probe: IJET-ARM20 adapter detected Emulation layer version 3.12 Emulation layer status 0x0 CPU status - NO POWER JTAG clock detected: 12MHz Connecting Cortex-M core ID = 0x14770011 on DAP port 0 Debug resources: 6 instruction comparators, 4 data watchpoints. CPU status OK LowLevelReset(script, delay 200) Calling reset script: C: Program Files (x86) IAR Systems ARM 6502 arm config debugger ST STM32.ProbeScript@ConnectUnderReset Connecting Cortex-M core ID = 0x14770011 on DAP port 0 Debug resources: 6 instruction comparators, 4 data watchpoints. -I- execuserflashinit! ロードされたデバッギー : C: Program Files (x86) IAR Systems ARM 6502 arm config flashloader ST FlashSTM32F10xxxRAM16K.out ターゲットリセットフラッシュメモリへの D: arm examples ST STM32F10x IAR-STM32-SK GettingStarted Flash Debug Exe GettingStarted.out のダウンロードロードされたマクロファイル : C: Program Files (x86) IAR Systems ARM 6502 arm config debugger ST Trace_STM32F1xx.dmac ロードされたデバッギー : D: arm examples ST STM32F10x IAR-STM32-SK GettingStarted Flash Debug Exe GettingStarted.out LowLevelReset(software, delay 200) LowLevelReset(script, delay 200) Calling reset script: C: Program Files (x86) IAR Systems ARM 6502 arm config debugger ST STM32.ProbeScript@ConnectUnderReset Connecting Cortex-M core ID = 0x14770011 on DAP port 0 Debug resources: 6 instruction comparators, 4 data watchpoints. SWO: CPU clock = 72000kHz, Auto divider = 4 ダウンロードが完了し 検証に成功しました LowLevelReset(software, delay 200) SWO: CPU clock = 72000kHz, Auto divider = 4 ターゲットリセット 上記は一例であり ターゲット MCU やプロジェクトによりログの中身は変動します 5
PART 2 接続できない (MCU と通信できない ) ときの確認
接続できない (MCU と通信できない ) ときの確認 1. USBデバイスとしてPCに認識されていますか? 2. USBデバイスとして正常に動作していますか? 3. 回路 接続は正しいですか? 4. 書き込まれているプログラムでJTAGポートを別用途に使用していませんか? 5. コネクタ ケーブルに接触不良等はありませんか? 6. ICEはI-jetが選択されていますか? 7. 電源供給は正しく行われていますか? 8. 接続速度は適正ですか? 9. I-jetのインジケータがエラーになっていませんか? 7
接続できない (MCU と通信できない ) ときの確認 USB デバイスとして PC に認識されていますか? Windows OS のデバイスマネージャから確認 8
接続できない (MCU と通信できない ) ときの確認 USB デバイスとして正常に動作していますか? EWARM 付属の EmuDiag アプリケーションより確認 Part 7 を参照 9
接続できない (MCU と通信できない ) ときの確認 回路 接続は正しいですか? デバッグ接続をご確認ください JTAG/SWD 接続 JTAG/SWD - MIPI-10 JTAG/SWD - MIPI-20 MIPI-20 - ARM-20 JTAG アダプタ回路図 各ピンの説明など 詳細は下記資料をご参照ください http://www.iar.com/global/kk_pages/userguide/i-jet-arm.jpn.pdf 10
接続できない (MCU と通信できない ) ときの確認 回路 接続は正しいですか? Vtref( 電源監視 ) は必須です GND は全ての pin 接続してください GND が少ないために不安定となるケースが多くあります JTAG 接続 SWD 接続 必須 オプション 11
接続できない (MCU と通信できない ) ときの確認 回路 接続は正しいですか? JTAG/SWD インタフェースはプロジェクトオプションで選択します 前ページの JTAG 接続 /SWD 接続のどちらを使用するか選択する コアにより SWD 対応非対応あり 注意 [ 低レベルインタフェースのライブラリ実装 ] にて [SWO 経由 ] が指定されているとインタフェースで JTAG を選択できません 12
接続できない (MCU と通信できない ) ときの確認 書き込まれているプログラムで JTAG ポートを別用途に使用していませんか? Flash メモリに JTAG 端子を GPIO あるいはその他のポートに切り替えるコードが入っていると I-jet からデバッグ接続を行うことができません ベンダ提供の Flash 書き込みツールなどで Flash 消去を行なってください 13
接続できない (MCU と通信できない ) ときの確認 コネクタ ケーブルに接触不良等はありませんか? ケーブル コネクタに破損はありませんか? 抜き差しの際にゆるんでいませんか? ケーブルの向きはあっていますか? 14
接続できない (MCU と通信できない ) ときの確認 ICE は I-jet が選択されていますか? ボードにあった給電は行われていますか? ICE から給電 or 外部電源 ICE から給電の場合 I-jet は正しく設定されていますか? 15
接続できない (MCU と通信できない ) ときの確認 電源供給は正しく行われていますか? デバッガのオプション画面で ドライバに [I-jet/JTAGjet] が選択されていますか? 16
接続できない (MCU と通信できない ) ときの確認 電源供給は正しく行われていますか? ボードにあった給電は行われていますか? ICE から給電 or 外部電源 ICE から給電の場合 I-jet は正しく設定されていますか? 17
接続できない (MCU と通信できない ) ときの確認 接続速度は適正ですか? 接続速度を手動で遅くしたら動作しますか? JTAG 接続の適切速度は 回路設計 距離 コネクタ仕様などにより異なります 遅くすることで より安定動作します 18
接続できない (MCU と通信できない ) ときの確認 I-jet のインジケータがエラーになっていませんか? 19
PART 3 ダウンロードできないときの確認
ダウンロードできないときの確認 1. メモリマッピングはMCUと合っていますか? 2. ダウンロード設定は適切ですか? 3. リセットの方式は適切ですか? 4. セットアップマクロは適切ですか? 5. RAM 上にはダウンロードできますか? 6. 接続速度は適切ですか? 21
ダウンロードできないときの確認 メモリマッピングは MCU と合っていますか? ダウンロード領域でない領域にデータが配置されていませんか? リンカ設定ファイルおよび map ファイルを確認 22
ダウンロードできないときの確認 ダウンロード設定は適切ですか? フラッシュローダを使用する にチェックが入っていますか? ROM 領域にダウンロードする際には 専用のフラッシュローダが必要です 23
ダウンロードできないときの確認 リセットの方式は適切ですか? 適切なリセット方式は CPU 種類 デバッグの方式などにより異なります デフォルトで動作確認されていますが 他方式が適切なケースがあります Disabled(no reset): Software: Hardware: Core: Systems (default) : リセットを行いません PC ( プログラムカウンタ ) をプログラム開始アドレスに設定します ( ソフトウェアリセット ) JTAG コネクタの nreset 端子をトグルしてリセットします リセットタイミングは Duration Delay after オプションにて設定可能です VECTRESET ビットを経由してコアをリセットします ペリフェラルは影響を受けません Cortex-M デバイスのみ使用可能です コアとペリフェラルをリセットします Cortex-M デバイスのみ使用可能です 24
ダウンロードできないときの確認 セットアップマクロは適切ですか? 起動時に特別な処理が必要な場合 C-SPY マクロを呼びだす必要があります 外部メモリアクセス用のレジスタ設定 ベクタテーブルオフセットの設定など 25
ダウンロードできないときの確認 RAM 上にはダウンロードできますか? 状況切り分けのために RAM 上にダウンロードできるか確認することが有効です RAM 上へのダウンロードはフラッシュローダを必要としないので フラッシュローダの問題かそれ以外の問題が切り分けができます 26
ダウンロードできないときの確認 接続速度は適切ですか? 基本的な接続ができていても ダウンロードするためには接続速度の見直しが必要となることがあります 27
PART 4 デバッグできないときの確認
デバッグできないときの確認 1. リセットの方式は適切ですか? 2. セットアップマクロは適切ですか? 3. リセットハンドラからの動作は確認できますか? 29
デバッグできないときの確認 リセットの方式は適切ですか? デバッグの方法により 適切なリセット方式を選択する必要があるケースがあります 異なるリセット方式を試行してください Disabled(no reset): Software: Hardware: Core: Systems (default) : リセットを行いません PC をプログラム開始アドレスに設定します ( ソフトウェアリセット ) JTAG コネクタの nreset 端子をトグルしてリセットします リセットタイミングは Duration Delay after オプションにて設定可能です VECTRESET ビットを経由してコアをリセットします ペリフェラルは影響を受けません Cortex-M デバイスのみ使用可能です コアとペリフェラルをリセットします Cortex-M デバイスのみ使用可能です 30
デバッグできないときの確認 セットアップマクロは適切ですか? デバッグの方式によっては C-SPY マクロでデバッグ初期化を行う必要があるケースがあります ベクタテーブルのオフセット ETM トレース用レジスタの設定など [ デバッグ ] [ 設定 ] [ セットアップマクロ ] の指定マクロを見直してください 31
デバッグできないときの確認 リセットハンドラからの動作は確認できますか? main 関数にたどり着くまでに何らかの問題が発生している可能性があります [ デバッグ ] [ 設定 ] [main to] のチェックを外してください 32
PART 5 SWO トレースできないときの確認
SWO トレースできないときの確認 1. SWD 接続が選ばれていますか? 2. SWOピンの接続は適切ですか? 3. プロトコル設定は適切ですか? 4. トレース機能は正しく設定されていますか? 5. データ量は適切ですか? 34
SWO トレースできないときの確認 SWD 接続が選ばれていますか? SWO トレースを行うにはデバッグインタフェースとして JTAG 接続ではなく SWD 接続を使用する必要があります [ デバッグ ] [I-jet] [JTAG/SWD] で [SWD] を選択してください 35
SWO トレースできないときの確認 SWO ピンの接続は適切ですか? コネクタの SWO ピンと MCU が結線されているか確認してください 36
SWO トレースできないときの確認 プロトコル設定は適切ですか? SWO トレースプロトコルは 速度設定が必要です 自動が動作しないときはマンチェスタまたは UART 方式を指定してください UART を選択したときは [CPU クロック ] に実際のデバッグ中の CPU 速度を指定してください SWO プリスケーラは値を大きくするほど安定します 37
SWO トレースできないときの確認 トレース機能は正しく設定されていますか? 各種トレース機能が正しく設定されている必要があります トレース機能ウィンドウを開いたあと 有効化 されていますか? [ ヘルプ ] [ デバッグガイド ] のトレース関連項目を参照ください 38
SWO トレースできないときの確認 データ量は適切ですか? データ量が多すぎるとオーバーフローが発生します 複数機能を有効にするとデータ量が多くなります 正常に動作するデータ量から 安定動作するデータ量を設定してください [ ヘルプ ] [ デバッグガイド ] のトレース関連項目を参照ください 39
PART 6 [ メモリ構成 ] の設定
[ メモリ構成 ] の設定 [ メモリ構成 ] の目的 メモリ領域を適切に指定することで 不要あるいは意図せぬメモリアクセスを防止し 効果的なデバッグを実現します 41
[ メモリ構成 ] の設定 設定ファイルの連携 プロジェクトで指定したデバイス記述ファイルに適切なメモリ構成情報が含まれている場合 その情報が引き渡されます 42
[ メモリ構成 ] の設定 デフォルト設定とプロジェクト毎のカスタマイズ デバイス毎のデフォルト設定 プロジェクト毎のカスタマイズ設定 初期は上の [ デフォルト設定 ] が反映されてます 43
[ メモリ構成 ] の設定 キャッシュタイプの説明 キャッシュタイプ RAM ターゲット実行時でないとき ( ブレーク時 ) はメモリからのリードは 1 度だけ行われます また ブレーク時のメモリへの書き込みは C-SPY 内でキャッシュされ 実行再開時にまとめフラッシュされます ROM/ フラッシュ ダウンロード時にメモリを C-SPY 内にキャッシュされ デバッグセッション中は読み書きが発生しません デバッグセッション中に不揮発データ領域などとして変更が生じる場合は 該当領域を RAM の領域として指定しないと 変更が画面に反映されません Uncached/SFR キャッシュは行わず デバッグセッション中の読み書きは都度メモリアクセスが発生します 44
[ メモリ構成 ] の設定 ゾーンの説明 Memory デフォルトの指定となり 通常は問題ありません Memory8/16/32/64 I/O レジスタなどの要件により 8,16,32,64 ビットとしてのアクセスが必要となる場合は 適宜指定をしてください 45
[ メモリ構成 ] の設定 手動指定 デバイス定義ファイルで 十分なメモリ構成情報がない状態でデバッグを開始すると下記のダイアログが表示されます [ 新規 ][ 編集 ] ボタンをクリックし デバイスに合わせて適切に指定してください キャッシュ指定によるメモリアクセス効率化を考慮しない場合 暫定的にメモリ全領域を SFR 領域と指定することでデバッグ動作可能です カスタム作成した設定は プロジェクトの settings project.dni ファイルに保存されます 46
PART 7 EmuDiag の使い方
EmuDiag の使い方 48 EmuDiag の主な機能 1. USB デバイスとしての診断 2. FW のアップデート 3. ターゲット電圧の確認 4. JTAG スキャンチェーンの確認 5. MCU との接続確認 6. 適正接続速度の確認 詳細は Program Files IAR Systems Embedded Workbench 6.x arm bin jet emudiag.pdf を参照
EmuDiag の使い方 EmuDiag の起動 EWARM インストール先にある arm bin jet フォルダを開き EmuDiag.exe を起動 診断するエミュレータ (I-jet) を選択してください 通常は [Connect to an Emulator Automatically] で問題ありません 49
EmuDiag の使い方 メイン画面 FW のアップデート USB 接続の確認 デバッグ接続の確認 ターゲット電圧の確認 診断したい項目に応じてボタンをクリックします 50
EmuDiag の使い方 USB 接続の確認 結果が [NO ERRORS] となることを確認します 51
EmuDiag の使い方 ターゲット電圧の確認 ターゲットボードに電源を供給した状態で Vref に適切な値が表示されているか確認します 52
EmuDiag の使い方 MCU との接続確認 (SWD 接続 ) 1:ARM-SWD 20/10pin を選択 3:JTAG Clock を 10kHz に設定 2:Use SWD CoreSight Port にチェック 4:Test をクリック CPU 情報を取得できたら JTAG Clock を上げて最適値を確認 53
EmuDiag の使い方 MCU との接続確認 (JTAG 接続 ) 1:JTAG Header を設定 2:JTAG Clock を 25kHz に設定 3:Autodetect を実行 CPU 情報を取得できたら JTAG Clock を上げて最適値を確認 54
PART 8 よくあるエラーメッセージと対処方法
致命的なエラー : プローブがありません PC から I-jet が認識されていません デバイスドライバがインストールされているか? PC と I-jet が USB で接続されているか? 確認してください 56
致命的なエラー : プローブへの接続に失敗しました 使用しようとした I-jet が有効ではありません 他のアプリケーション (EWARM または EmuDiag) で既に使用されていないか確認してください 57
Warning: I-jet FW is outdated 現在使用している I-jet の FW より新しい FW が EWARM に同梱されています Emudiag を使用して FW のアップデートすることを推奨します 58
ターゲットシステムのメモリレイアウトに一致しません I-jet のメモリ構成設定と ビルドされたプログラムの設定 (ROM/RAM/SFR) が適合しません I-jet メニューの [ メモリ構成 ] を開き 実体と合わせて調整してください 詳細は [ ヘルプ ] [Embedded Workbench デバッグガイド ] の [ メモリ構成 ] 関連トピックスを参照ください 59
RAM に指定されたメモリに C 変数が配置されていません リンカによって配置された変数が RAM 以外の領域に配置されています 意図した配置 ( 暫定的に全領域 SFR 指定にした など ) ではない場合 [ メモリ構成 ] から修正してください 60
CPU ステータス 電源なし 61 VTRef がターゲットマイコンの電圧を検出できていません 電源が供給されているか VTRef が適切に接続されているか確認してください
CPU ステータスの読み込みに失敗しました 電源の供給はされていますが JTAG 通信ができていません リセットの方式が適切か? 信号線が適切に接続されているか? JTAG/SWD 設定は正しいか? 最小接続なのに JTAG 接続が選択されていないか? 確認してください 62
フラッシュローダプログラムでエラーが報告されました 起動初期の基本的な接続 通信はできていますが フラッシュローダの実行時にエラーが発生しています リセット方式が適切か setup マクロが必要でないか 使用しているフラッシュローダが実際に使用するボード構成と合致しているか確認してください フラッシュローダの詳細は [Program Files] [IAR Systems] [IAR Embedded Workbench for ARM ***] [arm] [doc] FlashLoaderGuide.JPN.pdf を参照ください 63
PART 9 参考資料
参考資料 デバッグガイド [ ヘルプ ] [Embedded Workbench デバッグガイド ] デバッグ全般 C-SPY マクロ トレース設定 メモリ構成など I-jet ユーザガイド [ ヘルプ ] [I-jet User Guide] I-jet ハードウェア仕様など EmuDiag マニュアル [EWARM] [arm] [bin] [jet] [EmuDiag.pdf] EmuDiag アプリケーションの使用方法 C/C++ 開発ガイド [ ヘルプ ] [C/C++ 開発ガイド ] リンカ設定方法など 65
PART 10 本資料で解決しない場合は
本資料で解決しない場合は support.jp@iar.com に下記情報をご提供ください 1. どの段階で問題となっているか 1. 下記チェックリストをダウンロードし 確認結果を記載ください http://www.iarsys.co.jp/archive/info/resources/i-jet_check_list_jpn.xlsx 2. 問題の発生確率 (100%? たまに?) 3. EWARM のバージョン 4. MCU 情報 / 基板情報 5. ログ情報 3 点 ( 次ページ参照 ) 6. エラーの場合 スクリーンショット 7. プロジェクト一式 無理な場合は *.ewp ファイル *ewd ファイルと Settings **.dni ファイル 67
本資料で解決しない場合は ログ情報 a. デバッグログ テキストファイルに貼り付けてください b. 通信ログ デフォルトだと ewp ファイルと同じディレクトリに cspycomm.log が生成されます 68
本資料で解決しない場合は ログ情報 c. フラッシュローダログ.ewp ファイルと同じディレクトリに空の [flash0.trace] ファイルを作成してください 次回デバッグセッション開始時にログが追記されます 69