69
I-jet設定ガイド Rev.1.6 IAR システムズ株式会社

IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

Embed Size (px)

Citation preview

Page 1: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

I-jet設定ガイド Rev.1.6

IAR システムズ株式会社

Page 2: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

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を元に作成されております。

Page 3: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 1

I-jetでデバッグするまでのステップ

Page 4: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

I-jetでデバッグするまでのステップ

4

USB接続

MCUと通信

ダウンロード(ROM)

デバッグ開始

SWOトレース

ダウンロード(RAM)

*Cortex-M3/4のみ

メモリ構成設定 *必要に応じ、初回のみ

Page 5: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

デバッグログ例

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やプロジェクトによりログの中身は変動します

Page 6: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 2

接続できない(MCUと通信できない)ときの確認

Page 7: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

7

1. USBデバイスとしてPCに認識されていますか?

2. USBデバイスとして正常に動作していますか?

3. 回路・接続は正しいですか?

4. 書き込まれているプログラムでJTAGポートを別用途に使用していませんか?

5. コネクタ・ケーブルに接触不良等はありませんか?

6. ICEはI-jetが選択されていますか?

7. 電源供給は正しく行われていますか?

8. 接続速度は適正ですか?

9. I-jetのインジケータがエラーになっていませんか?

Page 8: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

8

USBデバイスとしてPCに認識されていますか?

• Windows OSのデバイスマネージャから確認

Page 9: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

9

USBデバイスとして正常に動作していますか?

• EWARM付属のEmuDiagアプリケーションより確認

⇒Part 7を参照

Page 10: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(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

各ピンの説明など、詳細は下記資料をご参照ください。

Page 11: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

11

回路・接続は正しいですか?

• Vtref(電源監視)は必須です。

• GNDは全てのpin接続してください。

• GNDが少ないために不安定となるケースが多くあります。

必須 オプション

JTAG接続 SWD接続

Page 12: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

12

回路・接続は正しいですか?

• JTAG/SWDインタフェースはプロジェクトオプションで選択します。

※注意

[低レベルインタフェースのライブラリ実装] にて [SWO経由] が指定されていると

インタフェースでJTAGを選択できません。 前ページのJTAG接続/SWD接続のどちらを

使用するか選択する

※コアによりSWD対応非対応あり

Page 13: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

13

書き込まれているプログラムでJTAGポートを別用途に使用していませんか?

• Flashメモリに、JTAG端子をGPIOあるいはその他のポートに

切り替えるコードが入っていると、I-jetからデバッグ接続を行うことが

できません。

• ベンダ提供のFlash書き込みツールなどで、Flash消去を行なって

ください。

Page 14: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

14

コネクタ・ケーブルに接触不良等はありませんか?

• ケーブル・コネクタに破損はありませんか?

• 抜き差しの際にゆるんでいませんか?

• ケーブルの向きはあっていますか?

Page 15: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

15

ICEはI-jetが選択されていますか?

• ボードにあった給電は行われていますか?

• ICEから給電 or 外部電源

• ICEから給電の場合、I-jetは正しく設定されていますか?

Page 16: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

16

電源供給は正しく行われていますか?

• デバッガのオプション画面で、ドライバに

[I-jet/JTAGjet]が選択されていますか?

Page 17: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

17

電源供給は正しく行われていますか?

• ボードにあった給電は行われていますか?

• ICEから給電 or 外部電源

• ICEから給電の場合、I-jetは正しく設定されていますか?

Page 18: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

18

接続速度は適正ですか?

• 接続速度を手動で遅くしたら動作しますか?

※JTAG接続の適切速度は、回路設計、距離、コネクタ仕様などに

より異なります。

遅くすることで、より安定動作します。

Page 19: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

接続できない(MCUと通信できない)ときの確認

19

I-jetのインジケータがエラーになっていませんか?

Page 20: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 3

ダウンロードできないときの確認

Page 21: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

21

1. メモリマッピングはMCUと合っていますか?

2. ダウンロード設定は適切ですか?

3. リセットの方式は適切ですか?

4. セットアップマクロは適切ですか?

5. RAM上にはダウンロードできますか?

6. 接続速度は適切ですか?

Page 22: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

22

メモリマッピングはMCUと合っていますか?

• ダウンロード領域でない領域にデータが配置されていませんか?

⇒リンカ設定ファイルおよびmapファイルを確認

Page 23: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

23

ダウンロード設定は適切ですか?

• 「フラッシュローダを使用する」にチェックが入っていますか?

• ROM領域にダウンロードする際には、専用のフラッシュローダが

必要です。

Page 24: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

24

リセットの方式は適切ですか?

• 適切なリセット方式はCPU種類、デバッグの方式などにより異なります。

デフォルトで動作確認されていますが、他方式が適切なケースがあります。

Disabled(no reset): Software:

Hardware:

Core:

Systems (default) :

リセットを行いません。

PC (プログラムカウンタ)をプログラム開始アドレスに設定します(ソフトウェアリセット)。

JTAG コネクタの nRESET 端子をトグルしてリセットします。リセットタイミングは Duration・Delay after

オプションにて設定可能です。

VECTRESET ビットを経由してコアをリセットします。ペリフェラルは影響を受けません。Cortex-M

デバイスのみ使用可能です。

コアとペリフェラルをリセットします。Cortex-M デバイスのみ使用可能です。

Page 25: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

25

セットアップマクロは適切ですか?

• 起動時に特別な処理が必要な場合、C-SPYマクロを呼びだす必要が

あります。

※外部メモリアクセス用のレジスタ設定、ベクタテーブルオフセットの設定

など

Page 26: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

26

RAM上にはダウンロードできますか?

• 状況切り分けのために、RAM上にダウンロードできるか確認することが

有効です。

※RAM上へのダウンロードはフラッシュローダを必要としないので、

フラッシュローダの問題かそれ以外の問題が切り分けができます。

Page 27: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ダウンロードできないときの確認

27

接続速度は適切ですか?

• 基本的な接続ができていても、ダウンロードするためには接続速度の

見直しが必要となることがあります。

Page 28: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 4

デバッグできないときの確認

Page 29: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

デバッグできないときの確認

29

1. リセットの方式は適切ですか?

2. セットアップマクロは適切ですか?

3. リセットハンドラからの動作は確認できますか?

Page 30: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

デバッグできないときの確認

30

リセットの方式は適切ですか?

• デバッグの方法により、適切なリセット方式を選択する必要が

あるケースがあります。

⇒異なるリセット方式を試行してください。

Disabled(no reset): Software:

Hardware:

Core:

Systems (default) :

リセットを行いません。

PC をプログラム開始アドレスに設定します(ソフトウェアリセット)。

JTAG コネクタの nRESET 端子をトグルしてリセットします。リセットタイミングは Duration・Delay after

オプションにて設定可能です。

VECTRESET ビットを経由してコアをリセットします。ペリフェラルは影響を受けません。Cortex-M

デバイスのみ使用可能です。

コアとペリフェラルをリセットします。Cortex-M デバイスのみ使用可能です。

Page 31: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

デバッグできないときの確認

31

セットアップマクロは適切ですか?

• デバッグの方式によっては、C-SPYマクロでデバッグ初期化を

行う必要があるケースがあります。

※ベクタテーブルのオフセット、ETMトレース用レジスタの設定など

⇒[デバッグ]→[設定]→[セットアップマクロ]の指定マクロを見直してください。

Page 32: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

デバッグできないときの確認

32

リセットハンドラからの動作は確認できますか?

• main関数にたどり着くまでに何らかの問題が発生している可能性が

あります。

⇒[デバッグ]→[設定]→[main to]のチェックを外してください。

Page 33: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 5

SWOトレースできないときの確認

Page 34: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

SWOトレースできないときの確認

34

1. SWD接続が選ばれていますか?

2. SWOピンの接続は適切ですか?

3. プロトコル設定は適切ですか?

4. トレース機能は正しく設定されていますか?

5. データ量は適切ですか?

Page 35: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

SWOトレースできないときの確認

35

SWD接続が選ばれていますか?

• SWOトレースを行うにはデバッグインタフェースとしてJTAG接続ではなく

SWD接続を使用する必要があります。

⇒[デバッグ]→[I-jet]→[JTAG/SWD]で[SWD]を選択してください。

Page 36: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

SWOトレースできないときの確認

36

SWOピンの接続は適切ですか?

• コネクタのSWOピンとMCUが結線されているか確認してください。

Page 37: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

SWOトレースできないときの確認

37

プロトコル設定は適切ですか?

• SWOトレースプロトコルは、速度設定が必要です。

自動が動作しないときはマンチェスタまたはUART方式を指定してください。

UARTを選択したときは[CPUクロック]に実際のデバッグ中のCPU速度を

指定してください。

※SWOプリスケーラは値を大きくするほど安定します。

Page 38: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

SWOトレースできないときの確認

38

トレース機能は正しく設定されていますか?

• 各種トレース機能が正しく設定されている必要があります。

・トレース機能ウィンドウを開いたあと「有効化」されていますか?

⇒[ヘルプ]→[デバッグガイド]のトレース関連項目を参照ください。

Page 39: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

SWOトレースできないときの確認

39

データ量は適切ですか?

• データ量が多すぎるとオーバーフローが発生します。

• 複数機能を有効にするとデータ量が多くなります。

⇒正常に動作するデータ量から、安定動作するデータ量を設定

してください。

⇒[ヘルプ]→[デバッグガイド]のトレース関連項目を参照ください。

Page 40: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 6

[メモリ構成]の設定

Page 41: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

[メモリ構成]の設定

41

[メモリ構成]の目的

• メモリ領域を適切に指定することで、不要あるいは意図せぬメモリ

アクセスを防止し、効果的なデバッグを実現します。

Page 42: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

[メモリ構成]の設定

42

設定ファイルの連携

• プロジェクトで指定したデバイス記述ファイルに適切なメモリ構成情報が

含まれている場合、その情報が引き渡されます。

Page 43: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

[メモリ構成]の設定

43

デフォルト設定とプロジェクト毎のカスタマイズ

デバイス毎のデフォルト設定

プロジェクト毎のカスタマイズ設定

※初期は上の[デフォルト設定]が反映されてます

Page 44: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

[メモリ構成]の設定

44

キャッシュタイプの説明

キャッシュタイプ

• RAM

• ターゲット実行時でないとき(ブレーク時)は

メモリからのリードは1度だけ行われます。

また、ブレーク時のメモリへの書き込みは

C-SPY内でキャッシュされ、実行再開時に

まとめフラッシュされます。

• ROM/フラッシュ

• ダウンロード時にメモリをC-SPY内にキャッシュ

され、デバッグセッション中は読み書きが発生

しません。

• デバッグセッション中に不揮発データ領域など

として変更が生じる場合は、該当領域をRAMの

領域として指定しないと、変更が画面に

反映されません。

• Uncached/SFR

• キャッシュは行わず、デバッグセッション中の

読み書きは都度メモリアクセスが発生します。

Page 45: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

[メモリ構成]の設定

45

ゾーンの説明 • Memory

• デフォルトの指定となり、通常は問題ありません。

• Memory8/16/32/64

• I/Oレジスタなどの要件により、8,16,32,64ビット

としてのアクセスが必要となる場合は、適宜

指定をしてください。

Page 46: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

[メモリ構成]の設定

46

手動指定

デバイス定義ファイルで、十分なメモリ構成情報がない状態でデバッグを開始すると

下記のダイアログが表示されます。

[新規][編集]ボタンをクリックし、デバイスに合わせて

適切に指定してください。

※キャッシュ指定によるメモリアクセス効率化を

考慮しない場合、暫定的にメモリ全領域をSFR領域と

指定することでデバッグ動作可能です。

※カスタム作成した設定は、プロジェクトの

settings¥project.dniファイルに保存されます。

Page 47: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 7

EmuDiagの使い方

Page 48: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

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を参照

Page 49: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

EmuDiagの使い方

49

EmuDiagの起動

診断するエミュレータ(I-jet)を選択してください。

通常は[Connect to an Emulator Automatically]で問題ありません。

EWARMインストール先にあるarm¥bin¥jetフォルダを開き、

EmuDiag.exeを起動

Page 50: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

EmuDiagの使い方

50

メイン画面

診断したい項目に応じてボタンをクリックします。

FWのアップデート

USB接続の確認

デバッグ接続の確認

ターゲット電圧の確認

Page 51: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

EmuDiagの使い方

51

USB接続の確認

結果が[NO ERRORS]となることを確認します。

Page 52: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

EmuDiagの使い方

52

ターゲット電圧の確認

ターゲットボードに電源を供給した状態で

Vrefに適切な値が表示されているか確認します。

Page 53: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

EmuDiagの使い方

53

MCUとの接続確認(SWD接続)

CPU情報を取得できたら、JTAG Clockを上げて最適値を確認。

1:ARM-SWD 20/10pinを選択

3:JTAG Clockを10kHzに設定

2:Use SWD CoreSight Portにチェック 4:Testをクリック

Page 54: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

EmuDiagの使い方

54

MCUとの接続確認(JTAG接続)

CPU情報を取得できたら、JTAG Clockを上げて最適値を確認。

1:JTAG Headerを設定

2:JTAG Clockを25kHzに設定

3:Autodetectを実行

Page 55: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 8

よくあるエラーメッセージと対処方法

Page 56: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

致命的なエラー:プローブがありません

56

PCからI-jetが認識されていません。

・デバイスドライバがインストールされているか?

・PCとI-jetがUSBで接続されているか?

確認してください。

Page 57: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

致命的なエラー:プローブへの接続に失敗しました

57

使用しようとしたI-jetが有効ではありません。

・他のアプリケーション(EWARMまたはEmuDiag)で既に使用されていないか

確認してください。

Page 58: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

Warning: I-jet FW is outdated

58

現在使用しているI-jetのFWより新しいFWがEWARMに同梱されています。

Emudiagを使用して、FWのアップデートすることを推奨します。

Page 59: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

ターゲットシステムのメモリレイアウトに一致しません。

59

I-jetのメモリ構成設定と、ビルドされたプログラムの設定(ROM/RAM/SFR)が適合しません。

I-jetメニューの[メモリ構成]を開き、実体と合わせて調整してください。

※詳細は[ヘルプ]→[Embedded Workbench デバッグガイド]の[メモリ構成]関連トピックスを参照ください

Page 60: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

RAMに指定されたメモリにC変数が配置されていません

60

リンカによって配置された変数が、RAM以外の領域に配置されています。

意図した配置(暫定的に全領域SFR指定にした、など)ではない場合、[メモリ構成]から

修正してください。

Page 61: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

CPUステータス – 電源なし

61

VTRefがターゲットマイコンの電圧を検出できていません。

・電源が供給されているか

・VTRefが適切に接続されているか

確認してください。

Page 62: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

CPUステータスの読み込みに失敗しました

62

電源の供給はされていますが、JTAG通信ができていません。

・リセットの方式が適切か?

・信号線が適切に接続されているか?

・JTAG/SWD設定は正しいか? 最小接続なのにJTAG接続が選択されていないか?

確認してください。

Page 63: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

フラッシュローダプログラムでエラーが報告されました。

63

起動初期の基本的な接続、通信はできていますが、フラッシュローダの実行時にエラーが発生しています。

・リセット方式が適切か

・setupマクロが必要でないか

・使用しているフラッシュローダが実際に使用するボード構成と合致しているか

確認してください

※フラッシュローダの詳細は

[Program Files]→[IAR Systems]→[IAR Embedded Workbench for ARM ***]→[arm]→[doc]

FlashLoaderGuide.JPN.pdfを参照ください。

Page 64: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 9

参考資料

Page 65: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

参考資料

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++ 開発ガイド]

• リンカ設定方法など

Page 66: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

PART 10

本資料で解決しない場合は・・・

Page 67: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

本資料で解決しない場合は・・・

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ファイル

Page 68: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

本資料で解決しない場合は・・・

68

ログ情報

a. デバッグログ

b. 通信ログ

テキストファイルに貼り付けてください。

デフォルトだとewpファイルと同じディレクトリにcspycomm.logが生成されます。

Page 69: IAR Embedded Workbench for ARM · フラッシュメモリへのD:¥arm¥examples¥ST¥STM32F10x¥IAR-STM32-SK¥GettingStarted¥Flash Debug¥Exe¥GettingStarted.outのダウンロード

本資料で解決しない場合は・・・

69

ログ情報

c. フラッシュローダログ

.ewpファイルと同じディレクトリに空の[flash0.trace]ファイルを作成してください。

次回デバッグセッション開始時にログが追記されます。