IAR Embedded Workbench for ARM ·...
Transcript of IAR Embedded Workbench for ARM ·...
I-jet設定ガイド Rev.1.6
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を元に作成されております。
PART 1
I-jetでデバッグするまでのステップ
I-jetでデバッグするまでのステップ
4
USB接続
MCUと通信
ダウンロード(ROM)
デバッグ開始
SWOトレース
ダウンロード(RAM)
*Cortex-M3/4のみ
メモリ構成設定 *必要に応じ、初回のみ
デバッグログ例
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.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 ターゲットリセット
USB接続
MCU接続
ダウンロード (ROM)
デバッグ ※上記は一例であり、ターゲットMCUやプロジェクトによりログの中身は変動します
PART 2
接続できない(MCUと通信できない)ときの確認
接続できない(MCUと通信できない)ときの確認
7
1. USBデバイスとしてPCに認識されていますか?
2. USBデバイスとして正常に動作していますか?
3. 回路・接続は正しいですか?
4. 書き込まれているプログラムでJTAGポートを別用途に使用していませんか?
5. コネクタ・ケーブルに接触不良等はありませんか?
6. ICEはI-jetが選択されていますか?
7. 電源供給は正しく行われていますか?
8. 接続速度は適正ですか?
9. I-jetのインジケータがエラーになっていませんか?
接続できない(MCUと通信できない)ときの確認
8
USBデバイスとしてPCに認識されていますか?
• Windows OSのデバイスマネージャから確認
接続できない(MCUと通信できない)ときの確認
9
USBデバイスとして正常に動作していますか?
• EWARM付属のEmuDiagアプリケーションより確認
⇒Part 7を参照
接続できない(MCUと通信できない)ときの確認
10
回路・接続は正しいですか?
• デバッグ接続をご確認ください
• JTAG/SWD接続
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
各ピンの説明など、詳細は下記資料をご参照ください。
接続できない(MCUと通信できない)ときの確認
11
回路・接続は正しいですか?
• Vtref(電源監視)は必須です。
• GNDは全てのpin接続してください。
• GNDが少ないために不安定となるケースが多くあります。
必須 オプション
JTAG接続 SWD接続
接続できない(MCUと通信できない)ときの確認
12
回路・接続は正しいですか?
• JTAG/SWDインタフェースはプロジェクトオプションで選択します。
※注意
[低レベルインタフェースのライブラリ実装] にて [SWO経由] が指定されていると
インタフェースでJTAGを選択できません。 前ページのJTAG接続/SWD接続のどちらを
使用するか選択する
※コアによりSWD対応非対応あり
接続できない(MCUと通信できない)ときの確認
13
書き込まれているプログラムでJTAGポートを別用途に使用していませんか?
• Flashメモリに、JTAG端子をGPIOあるいはその他のポートに
切り替えるコードが入っていると、I-jetからデバッグ接続を行うことが
できません。
• ベンダ提供のFlash書き込みツールなどで、Flash消去を行なって
ください。
接続できない(MCUと通信できない)ときの確認
14
コネクタ・ケーブルに接触不良等はありませんか?
• ケーブル・コネクタに破損はありませんか?
• 抜き差しの際にゆるんでいませんか?
• ケーブルの向きはあっていますか?
接続できない(MCUと通信できない)ときの確認
15
ICEはI-jetが選択されていますか?
• ボードにあった給電は行われていますか?
• ICEから給電 or 外部電源
• ICEから給電の場合、I-jetは正しく設定されていますか?
接続できない(MCUと通信できない)ときの確認
16
電源供給は正しく行われていますか?
• デバッガのオプション画面で、ドライバに
[I-jet/JTAGjet]が選択されていますか?
接続できない(MCUと通信できない)ときの確認
17
電源供給は正しく行われていますか?
• ボードにあった給電は行われていますか?
• ICEから給電 or 外部電源
• ICEから給電の場合、I-jetは正しく設定されていますか?
接続できない(MCUと通信できない)ときの確認
18
接続速度は適正ですか?
• 接続速度を手動で遅くしたら動作しますか?
※JTAG接続の適切速度は、回路設計、距離、コネクタ仕様などに
より異なります。
遅くすることで、より安定動作します。
接続できない(MCUと通信できない)ときの確認
19
I-jetのインジケータがエラーになっていませんか?
PART 3
ダウンロードできないときの確認
ダウンロードできないときの確認
21
1. メモリマッピングはMCUと合っていますか?
2. ダウンロード設定は適切ですか?
3. リセットの方式は適切ですか?
4. セットアップマクロは適切ですか?
5. RAM上にはダウンロードできますか?
6. 接続速度は適切ですか?
ダウンロードできないときの確認
22
メモリマッピングはMCUと合っていますか?
• ダウンロード領域でない領域にデータが配置されていませんか?
⇒リンカ設定ファイルおよびmapファイルを確認
ダウンロードできないときの確認
23
ダウンロード設定は適切ですか?
• 「フラッシュローダを使用する」にチェックが入っていますか?
• ROM領域にダウンロードする際には、専用のフラッシュローダが
必要です。
ダウンロードできないときの確認
24
リセットの方式は適切ですか?
• 適切なリセット方式はCPU種類、デバッグの方式などにより異なります。
デフォルトで動作確認されていますが、他方式が適切なケースがあります。
Disabled(no reset): Software:
Hardware:
Core:
Systems (default) :
リセットを行いません。
PC (プログラムカウンタ)をプログラム開始アドレスに設定します(ソフトウェアリセット)。
JTAG コネクタの nRESET 端子をトグルしてリセットします。リセットタイミングは Duration・Delay after
オプションにて設定可能です。
VECTRESET ビットを経由してコアをリセットします。ペリフェラルは影響を受けません。Cortex-M
デバイスのみ使用可能です。
コアとペリフェラルをリセットします。Cortex-M デバイスのみ使用可能です。
ダウンロードできないときの確認
25
セットアップマクロは適切ですか?
• 起動時に特別な処理が必要な場合、C-SPYマクロを呼びだす必要が
あります。
※外部メモリアクセス用のレジスタ設定、ベクタテーブルオフセットの設定
など
ダウンロードできないときの確認
26
RAM上にはダウンロードできますか?
• 状況切り分けのために、RAM上にダウンロードできるか確認することが
有効です。
※RAM上へのダウンロードはフラッシュローダを必要としないので、
フラッシュローダの問題かそれ以外の問題が切り分けができます。
ダウンロードできないときの確認
27
接続速度は適切ですか?
• 基本的な接続ができていても、ダウンロードするためには接続速度の
見直しが必要となることがあります。
PART 4
デバッグできないときの確認
デバッグできないときの確認
29
1. リセットの方式は適切ですか?
2. セットアップマクロは適切ですか?
3. リセットハンドラからの動作は確認できますか?
デバッグできないときの確認
30
リセットの方式は適切ですか?
• デバッグの方法により、適切なリセット方式を選択する必要が
あるケースがあります。
⇒異なるリセット方式を試行してください。
Disabled(no reset): Software:
Hardware:
Core:
Systems (default) :
リセットを行いません。
PC をプログラム開始アドレスに設定します(ソフトウェアリセット)。
JTAG コネクタの nRESET 端子をトグルしてリセットします。リセットタイミングは Duration・Delay after
オプションにて設定可能です。
VECTRESET ビットを経由してコアをリセットします。ペリフェラルは影響を受けません。Cortex-M
デバイスのみ使用可能です。
コアとペリフェラルをリセットします。Cortex-M デバイスのみ使用可能です。
デバッグできないときの確認
31
セットアップマクロは適切ですか?
• デバッグの方式によっては、C-SPYマクロでデバッグ初期化を
行う必要があるケースがあります。
※ベクタテーブルのオフセット、ETMトレース用レジスタの設定など
⇒[デバッグ]→[設定]→[セットアップマクロ]の指定マクロを見直してください。
デバッグできないときの確認
32
リセットハンドラからの動作は確認できますか?
• main関数にたどり着くまでに何らかの問題が発生している可能性が
あります。
⇒[デバッグ]→[設定]→[main to]のチェックを外してください。
PART 5
SWOトレースできないときの確認
SWOトレースできないときの確認
34
1. SWD接続が選ばれていますか?
2. SWOピンの接続は適切ですか?
3. プロトコル設定は適切ですか?
4. トレース機能は正しく設定されていますか?
5. データ量は適切ですか?
SWOトレースできないときの確認
35
SWD接続が選ばれていますか?
• SWOトレースを行うにはデバッグインタフェースとしてJTAG接続ではなく
SWD接続を使用する必要があります。
⇒[デバッグ]→[I-jet]→[JTAG/SWD]で[SWD]を選択してください。
SWOトレースできないときの確認
36
SWOピンの接続は適切ですか?
• コネクタのSWOピンとMCUが結線されているか確認してください。
SWOトレースできないときの確認
37
プロトコル設定は適切ですか?
• SWOトレースプロトコルは、速度設定が必要です。
自動が動作しないときはマンチェスタまたはUART方式を指定してください。
UARTを選択したときは[CPUクロック]に実際のデバッグ中のCPU速度を
指定してください。
※SWOプリスケーラは値を大きくするほど安定します。
SWOトレースできないときの確認
38
トレース機能は正しく設定されていますか?
• 各種トレース機能が正しく設定されている必要があります。
・トレース機能ウィンドウを開いたあと「有効化」されていますか?
⇒[ヘルプ]→[デバッグガイド]のトレース関連項目を参照ください。
SWOトレースできないときの確認
39
データ量は適切ですか?
• データ量が多すぎるとオーバーフローが発生します。
• 複数機能を有効にするとデータ量が多くなります。
⇒正常に動作するデータ量から、安定動作するデータ量を設定
してください。
⇒[ヘルプ]→[デバッグガイド]のトレース関連項目を参照ください。
PART 6
[メモリ構成]の設定
[メモリ構成]の設定
41
[メモリ構成]の目的
• メモリ領域を適切に指定することで、不要あるいは意図せぬメモリ
アクセスを防止し、効果的なデバッグを実現します。
[メモリ構成]の設定
42
設定ファイルの連携
• プロジェクトで指定したデバイス記述ファイルに適切なメモリ構成情報が
含まれている場合、その情報が引き渡されます。
[メモリ構成]の設定
43
デフォルト設定とプロジェクト毎のカスタマイズ
デバイス毎のデフォルト設定
プロジェクト毎のカスタマイズ設定
※初期は上の[デフォルト設定]が反映されてます
[メモリ構成]の設定
44
キャッシュタイプの説明
キャッシュタイプ
• RAM
• ターゲット実行時でないとき(ブレーク時)は
メモリからのリードは1度だけ行われます。
また、ブレーク時のメモリへの書き込みは
C-SPY内でキャッシュされ、実行再開時に
まとめフラッシュされます。
• ROM/フラッシュ
• ダウンロード時にメモリをC-SPY内にキャッシュ
され、デバッグセッション中は読み書きが発生
しません。
• デバッグセッション中に不揮発データ領域など
として変更が生じる場合は、該当領域をRAMの
領域として指定しないと、変更が画面に
反映されません。
• Uncached/SFR
• キャッシュは行わず、デバッグセッション中の
読み書きは都度メモリアクセスが発生します。
[メモリ構成]の設定
45
ゾーンの説明 • Memory
• デフォルトの指定となり、通常は問題ありません。
• Memory8/16/32/64
• I/Oレジスタなどの要件により、8,16,32,64ビット
としてのアクセスが必要となる場合は、適宜
指定をしてください。
[メモリ構成]の設定
46
手動指定
デバイス定義ファイルで、十分なメモリ構成情報がない状態でデバッグを開始すると
下記のダイアログが表示されます。
[新規][編集]ボタンをクリックし、デバイスに合わせて
適切に指定してください。
※キャッシュ指定によるメモリアクセス効率化を
考慮しない場合、暫定的にメモリ全領域をSFR領域と
指定することでデバッグ動作可能です。
※カスタム作成した設定は、プロジェクトの
settings¥project.dniファイルに保存されます。
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の使い方
49
EmuDiagの起動
診断するエミュレータ(I-jet)を選択してください。
通常は[Connect to an Emulator Automatically]で問題ありません。
EWARMインストール先にあるarm¥bin¥jetフォルダを開き、
EmuDiag.exeを起動
EmuDiagの使い方
50
メイン画面
診断したい項目に応じてボタンをクリックします。
FWのアップデート
USB接続の確認
デバッグ接続の確認
ターゲット電圧の確認
EmuDiagの使い方
51
USB接続の確認
結果が[NO ERRORS]となることを確認します。
EmuDiagの使い方
52
ターゲット電圧の確認
ターゲットボードに電源を供給した状態で
Vrefに適切な値が表示されているか確認します。
EmuDiagの使い方
53
MCUとの接続確認(SWD接続)
CPU情報を取得できたら、JTAG Clockを上げて最適値を確認。
1:ARM-SWD 20/10pinを選択
3:JTAG Clockを10kHzに設定
2:Use SWD CoreSight Portにチェック 4:Testをクリック
EmuDiagの使い方
54
MCUとの接続確認(JTAG接続)
CPU情報を取得できたら、JTAG Clockを上げて最適値を確認。
1:JTAG Headerを設定
2:JTAG Clockを25kHzに設定
3:Autodetectを実行
PART 8
よくあるエラーメッセージと対処方法
致命的なエラー:プローブがありません
56
PCからI-jetが認識されていません。
・デバイスドライバがインストールされているか?
・PCとI-jetがUSBで接続されているか?
確認してください。
致命的なエラー:プローブへの接続に失敗しました
57
使用しようとしたI-jetが有効ではありません。
・他のアプリケーション(EWARMまたはEmuDiag)で既に使用されていないか
確認してください。
Warning: I-jet FW is outdated
58
現在使用しているI-jetのFWより新しいFWがEWARMに同梱されています。
Emudiagを使用して、FWのアップデートすることを推奨します。
ターゲットシステムのメモリレイアウトに一致しません。
59
I-jetのメモリ構成設定と、ビルドされたプログラムの設定(ROM/RAM/SFR)が適合しません。
I-jetメニューの[メモリ構成]を開き、実体と合わせて調整してください。
※詳細は[ヘルプ]→[Embedded Workbench デバッグガイド]の[メモリ構成]関連トピックスを参照ください
RAMに指定されたメモリにC変数が配置されていません
60
リンカによって配置された変数が、RAM以外の領域に配置されています。
意図した配置(暫定的に全領域SFR指定にした、など)ではない場合、[メモリ構成]から
修正してください。
CPUステータス – 電源なし
61
VTRefがターゲットマイコンの電圧を検出できていません。
・電源が供給されているか
・VTRefが適切に接続されているか
確認してください。
CPUステータスの読み込みに失敗しました
62
電源の供給はされていますが、JTAG通信ができていません。
・リセットの方式が適切か?
・信号線が適切に接続されているか?
・JTAG/SWD設定は正しいか? 最小接続なのにJTAG接続が選択されていないか?
確認してください。
フラッシュローダプログラムでエラーが報告されました。
63
起動初期の基本的な接続、通信はできていますが、フラッシュローダの実行時にエラーが発生しています。
・リセット方式が適切か
・setupマクロが必要でないか
・使用しているフラッシュローダが実際に使用するボード構成と合致しているか
確認してください
※フラッシュローダの詳細は
[Program Files]→[IAR Systems]→[IAR Embedded Workbench for ARM ***]→[arm]→[doc]
FlashLoaderGuide.JPN.pdfを参照ください。
PART 9
参考資料
参考資料
65
• デバッグガイド
• [ヘルプ]→[Embedded Workbenchデバッグガイド]
• デバッグ全般、C-SPYマクロ、トレース設定、メモリ構成など
• I-jetユーザガイド
• [ヘルプ]→[I-jet User Guide]
• I-jetハードウェア仕様など
• EmuDiagマニュアル
• [EWARM]→[arm]→[bin]→[jet]→[EmuDiag.pdf]
• EmuDiagアプリケーションの使用方法
• C/C++開発ガイド
• [ヘルプ]→[C/C++ 開発ガイド]
• リンカ設定方法など
PART 10
本資料で解決しない場合は・・・
本資料で解決しない場合は・・・
67
[email protected]に下記情報をご提供ください
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ファイル
本資料で解決しない場合は・・・
68
ログ情報
a. デバッグログ
b. 通信ログ
テキストファイルに貼り付けてください。
デフォルトだとewpファイルと同じディレクトリにcspycomm.logが生成されます。
本資料で解決しない場合は・・・
69
ログ情報
c. フラッシュローダログ
.ewpファイルと同じディレクトリに空の[flash0.trace]ファイルを作成してください。
次回デバッグセッション開始時にログが追記されます。