I-jet設定ガイドRev.1.7
IARシステムズ株式会社
1. I-jetでデバッグするまでのステップ
2. 接続できない(MCUと通信できない)ときの確認
3. ダウンロードできないときの確認
4. 正常にデバッグできないときの確認
5. SWOトレースできないときの確認
6. [メモリ構成]の設定方法
7. EmuDiagの使い方
8. 良くあるエラーメッセージと対処方法
9. 参考資料
10. 本資料で解決しない場合は・・・
2
目次
※本資料はEWARM6.50.2/6.50.6/6.60.1を元に作成されております。
I-jetでデバッグするまでのステップ
3
Part 1
4
I-jetでデバッグするまでのステップ
USB接続
MCUと通信
ダウンロード(ROM)
デバッグ開始
SWOトレース
ダウンロード(RAM)
*Cortex-M3/4/7のみ
メモリ構成設定 *必要に応じ、初回のみ
5
デバッグログ例ロードされたマクロファイル: 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.outLowLevelReset(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 ターゲットリセット
USB接続
MCU接続
ダウンロード(ROM)
デバッグ
※上記は一例であり、ターゲットMCUやプロジェクトによりログの中身は変動します
接続できない(MCUと通信できない)ときの確認
6
Part 2
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接続
10
接続できない(MCUと通信できない)ときの確認
JTAG/SWD - MIPI-20
JTAG/SWD - MIPI-10
MIPI-20 - ARM-20 JTAG アダプタ回路図
http://www.iar.com/Global/KK_pages/UserGuide/I-jet-ARM.JPN.pdf
各ピンの説明など、詳細は下記資料をご参照ください。
• 回路・接続は正しいですか?– Vtref(電源監視)は必須です。
– GNDは全てのpin接続してください。
• GNDが少ないために不安定となるケースが多くあります。
11
接続できない(MCUと通信できない)ときの確認
必須 オプション
JTAG接続 SWD接続
• 回路・接続は正しいですか?– JTAG/SWDインタフェースはプロジェクトオプションで選択します。
12
接続できない(MCUと通信できない)ときの確認
※注意[低レベルインタフェースのライブラリ実装] にて [SWO経由] が指定されているとインタフェースでJTAGを選択できません。
前ページのJTAG接続/SWD接続のどちらを使用するか選択する※コアによりSWD対応非対応あり
• 書き込まれているプログラムでJTAGポートを別用途に使用していませんか?
– Flashメモリに、JTAG端子をGPIOあるいはその他のポートに切り替えるコードが入っていると、I-jetからデバッグ接続を行うことができません。
– ベンダ提供のFlash書き込みツールなどで、Flash消去を行なってください。
13
接続できない(MCUと通信できない)ときの確認
• コネクタ・ケーブルに接触不良等はありませんか?
– ケーブル・コネクタに破損はありませんか?
– 抜き差しの際にゆるんでいませんか?
– ケーブルの向きはあっていますか?
14
接続できない(MCUと通信できない)ときの確認
• 電源を確認ください– ボードにあった給電は行われていますか?
• ICEから給電 or 外部電源
– ICEから給電の場合、I-jetは正しく設定されていますか?
15
接続できない(MCUと通信できない)ときの確認
• ICEはI-jetが選択されていますか?– デバッガのオプション画面で、ドライバに
[I-jet/JTAGjet]が選択されていますか?
16
接続できない(MCUと通信できない)ときの確認
• 接続速度は適正ですか?– 接続速度を手動で遅くしたら動作しますか?
※JTAG接続の適切速度は、回路設計、距離、コネクタ仕様などにより異なります。遅くすることで、より安定動作します。
17
接続できない(MCUと通信できない)ときの確認
I-jetのインジケータがエラーになっていませんか?
18
接続できない(MCUと通信できない)ときの確認
• ダウンロードできないときの確認
19
Part 3
1. メモリマッピングはMCUと合っていますか?
2. ダウンロード設定は適切ですか?
3. リセットの方式は適切ですか?
4. セットアップマクロは適切ですか?
5. RAM上にはダウンロードできますか?
6. 接続速度は適切ですか?
20
ダウンロードできないときの確認
• メモリマッピングはMCUと合っていますか?– ダウンロード領域でない領域にデータが配置されていませんか?
⇒リンカ設定ファイルおよびmapファイルを確認
21
ダウンロードできないときの確認
• ダウンロード設定は適切ですか?– 「フラッシュローダを使用する」にチェックが入っていますか?
• ROM領域にダウンロードする際には、専用のフラッシュローダが必要です。
22
ダウンロードできないときの確認
• リセットの方式は適切ですか?– 適切なリセット方式はCPU種類、デバッグの方式などにより異なります。デフォルトで動作確認されていますが、他方式が適切なケースがあります。
23
ダウンロードできないときの確認
Disabled(no reset):Software:
Hardware:
Core:
Systems (default) :
リセットを行いません。PC (プログラムカウンタ)をプログラム開始アドレスに設定します(ソフトウェアリセット)。JTAG コネクタの nRESET端子をトグルしてリセットします。リセットタイミングは Duration・Delay after
オプションにて設定可能です。VECTRESET ビットを経由してコアをリセットします。ペリフェラルは影響を受けません。Cortex-M
デバイスのみ使用可能です。コアとペリフェラルをリセットします。Cortex-M デバイスのみ使用可能です。
• セットアップマクロは適切ですか?– 起動時に特別な処理が必要な場合、C-SPYマクロを呼びだす必要があります。※外部メモリアクセス用のレジスタ設定、ベクタテーブルオフセットの設定など
24
ダウンロードできないときの確認
• RAM上にはダウンロードできますか?– 状況切り分けのために、RAM上で動作するプログラムを作成し、ダウンロードできるか確認することが有効です。※RAM上へのダウンロードはフラッシュローダを必要としないので、フラッシュローダの問題かそれ以外の問題が切り分けができます。
25
ダウンロードできないときの確認
• 接続速度は適切ですか?• 基本的な接続ができていても、ダウンロードするためには接続速度の見直しが必要となることがあります。
26
ダウンロードできないときの確認
• デバッグできないときの確認
27
Part 4
1. リセットの方式は適切ですか?
2. セットアップマクロは適切ですか?
3. リセットハンドラからの動作は確認できますか?
28
デバッグできないときの確認
• リセットの方式は適切ですか?– デバッグの方法により、適切なリセット方式を選択する必要があるケースがあります。⇒異なるリセット方式を試行してください。
29
デバッグできないときの確認
Disabled(no reset):Software:
Hardware:
Core:
Systems (default) :
リセットを行いません。PC をプログラム開始アドレスに設定します(ソフトウェアリセット)。JTAG コネクタの nRESET端子をトグルしてリセットします。リセットタイミングは Duration・Delay after
オプションにて設定可能です。VECTRESET ビットを経由してコアをリセットします。ペリフェラルは影響を受けません。Cortex-M
デバイスのみ使用可能です。コアとペリフェラルをリセットします。Cortex-M デバイスのみ使用可能です。
• セットアップマクロは適切ですか?– デバッグの方式によっては、C-SPYマクロでデバッグ初期化を行う必要があるケースがあります。※ベクタテーブルのオフセット、ETMトレース用レジスタの設定など⇒[デバッグ]→[設定]→[セットアップマクロ]の指定マクロを見直してください。
30
デバッグできないときの確認
• リセットハンドラからの動作は確認できますか?– main関数にたどり着くまでに何らかの問題が発生している可能性があります。⇒[デバッグ]→[設定]→[main to]のチェックを外してください。
31
デバッグできないときの確認
• SWOトレースできないときの確認
32
Part 5
1. SWD接続が選ばれていますか?
2. SWOピンの接続は適切ですか?
3. プロトコル設定は適切ですか?
4. トレース機能は正しく設定されていますか?
5. データ量は適切ですか?
33
SWOトレースできないときの確認
• SWD接続が選ばれていますか?• SWOトレースを行うにはデバッグインタフェースとしてJTAG接続ではなく
SWD接続を使用する必要があります。⇒[デバッグ]→[I-jet]→[JTAG/SWD]で[SWD]を選択してください。
34
SWOトレースできないときの確認
• SWOピンの接続は適切ですか?
– コネクタのSWOピンとMCUが結線されているか確認してください。
35
SWOトレースできないときの確認
• プロトコル設定は適切ですか?– SWOトレースプロトコルは、速度設定が必要です。自動が動作しないときはマンチェスタまたはUART方式を指定してください。UARTを選択したときは[CPUクロック]に実際のデバッグ中のCPU速度を指定してください。※SWOプリスケーラは値を大きくするほど安定します。
36
SWOトレースできないときの確認
• トレース機能は正しく設定されていますか?
– 各種トレース機能が正しく設定されている必要があります。・トレース機能ウィンドウを開いたあと「有効化」されていますか?⇒[ヘルプ]→[デバッグガイド]のトレース関連項目を参照ください。
37
SWOトレースできないときの確認
• データ量は適切ですか?
– データ量が多すぎるとオーバーフローが発生します。
• 複数機能を有効にするとデータ量が多くなります。⇒正常に動作するデータ量から、安定動作するデータ量を設定してください。
⇒[ヘルプ]→[デバッグガイド]のトレース関連項目を参照ください。
38
SWOトレースできないときの確認
• [メモリ構成]の設定
39
Part 6
• [メモリ構成]の目的– メモリ領域を適切に指定することで、不要あるいは意図せぬメモリアクセスを防止し、効果的なデバッグを実現します。
40
[メモリ構成]の設定
• 設定ファイルの連携– プロジェクトで指定したデバイス記述ファイルに適切なメモリ構成情報が含まれている場合、その情報が引き渡されます。
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ファイルに保存されます。
• EmuDiagの使い方
46
Part 7
• EmuDiagの主な機能1. USBデバイスとしての診断
2. FWのアップデート
3. ターゲット電圧の確認
4. JTAGスキャンチェーンの確認
5. MCUとの接続確認
6. 適正接続速度の確認
47
EmuDiagの使い方
※詳細はProgram Files¥IAR Systems¥Embedded Workbench 6.x¥arm¥bin¥jet
emudiag.pdfを参照
• EmuDiagの起動– EWARMインストール先にあるarm¥bin¥jetフォルダを開き、
– EmuDiag.exeを起動
48
EmuDiagの使い方
診断するエミュレータ(I-jet)を選択してください。通常は[Connect to an Emulator Automatically]で問題ありません。
• メイン画面
49
EmuDiagの使い方
診断したい項目に応じてボタンをクリックします。
FWのアップデート
USB接続の確認
デバッグ接続の確認
ターゲット電圧の確認
• USB接続の確認
50
EmuDiagの使い方
結果が[NO ERRORS]となることを確認します。
• ターゲット電圧の確認
51
EmuDiagの使い方
ターゲットボードに電源を供給した状態でVrefに適切な値が表示されているか確認します。
• MCUとの接続確認(SWD接続)
52
EmuDiagの使い方
CPU情報を取得できたら、JTAG Clockを上げて最適値を確認。
1:ARM-SWD 20/10pinを選択
3:JTAG Clockを10kHzに設定
2:Use SWD CoreSight Portにチェック4:Testをクリック
• MCUとの接続確認(JTAG接続)
53
EmuDiagの使い方
CPU情報を取得できたら、JTAG Clockを上げて最適値を確認。
1:JTAG Headerを設定
2:JTAG Clockを25kHzに設定
3:Autodetectを実行
• よくあるエラーメッセージと対処方法
54
Part 8
55
致命的なエラー:プローブがありません
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ステータス –電源なし
VTRefがターゲットマイコンの電圧を検出できていません。・電源が供給されているか・VTRefが適切に接続されているか確認してください。
61
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++ 開発ガイド]
• リンカ設定方法など
64
参考資料
• 本資料で解決しない場合は・・・
65
Part 10
[email protected]に下記情報をご提供ください
1. どの段階で問題となっているか
1. 下記チェックリストをダウンロードし、確認結果を記載ください。>>I-jet チェックリスト
2. 問題の発生確率(100%? たまに?)
3. EWARMのバージョン
4. MCU情報/基板情報
5. ログ情報3点(次ページ参照)
6. エラーの場合、スクリーンショット
7. プロジェクト一式
※無理な場合は*.ewpファイル、*ewdファイルとSettings¥**.dniファイル
8. 保守契約番号もしくはライセンス番号※有効な保守契約が無い場合にはご回答できません。
66
本資料で解決しない場合は・・・
• ログ情報
67
本資料で解決しない場合は・・・
a. デバッグログ
b. 通信ログ
テキストファイルに貼り付けてください。
デフォルトだとewpファイルと同じディレクトリにcspycomm.logが生成されます。
• ログ情報
68
本資料で解決しない場合は・・・
c. フラッシュローダログ
.ewpファイルと同じディレクトリに空の[flash0.trace]ファイルを作成してください。次回デバッグセッション開始時にログが追記されます。
• 保守契約番号もしくはライセンス番号保守契約時に発行される番号
• もしくは、ライセンス番号Embedded Workbenchから[ヘルプ]-[ライセンスマネージャ]
IAR License Manager上でクリック(表示はライセンスのタイプによって異なります)、
ライセンスの詳細画面にライセンス番号は表示されます
69
本資料で解決しない場合は・・・
クリック
70
【お問合せフォーム】
www.iar.com/customer_jp
【e-mail】
IARシステムズ株式会社東京都千代田区神田須田町
1-21-5 C-5ビル 5階
IAR製品に関するお問い合わせは