AVR用C-SPYのブレークポイント
テクニカル・ノート 88367
アーキテクチャ:
AVR
コンポーネント:
debugger
更新日:
2018/08/26 3:07
はじめに
C-SPYでは、機能が異なるブレークポイントがいくつか用意されています。本テクニカルノートは、IAR Embedded Workbench for AVRに適用されます。
ブレークポイントはどのように設定されますか?
C-SPYは、ブレークポイントを使用してコードの実行を制御します。
一時ブレークポイント
Cまたはアセンブラのコードにステップインすると、実行される可能性があるすべての分岐先に対し、一時ブレークポイントが複数設定されます。
- 「一直線に」実行されるコードの場合、ブレークポイントは1つだけ設定されます。この場合、C-SPYを実行すると、ブレークポイントの次のステートメントでコードが停止します。
- ステートメントに実行可能な2つの分岐先が存在する場合、ブレークポイントを2つ設定する必要があります。
- 関数呼び出しの場合、ブレークポイントが1つ必要になります。「ステップオーバー」か「ステップイン」かによって置き方が異なります。
- switchステートメントの場合、通常、ブレークポイントが複数必要になります。
固定ブレークポイント
「固定ブレークポイント」とは、ユーザまたはC-SPYによって固定の場所に設定されたブレークポイント、CLIBのgetchar/putchar/exit、DLIBのdebugbreakのことです(プロジェクト(Project) > オプション(Options) > リンカ(Linker) > 出力(Output) > フォーマット(Format)のランタイム管理モジュール付き(With runtime control modules)の設定により異なります)。
ハードウェア上でデバッグする場合、どんな種類のブレークポイントを使用できますか?
ハードウェア上でデバッグする場合(すなわち、シミュレータを使わずにデバッグする場合)、2種類のブレークポイント、すなわち、ハードウェアブレークポイントとソフトウェアブレークポイントを使用できます。
ハードウェアブレークポイント
PCの実行アドレスが特定のアドレスに到達すると、チップによるコードの実行が停止します。
ソフトウェアブレークポイント
プログラム内に「ブレーク」命令を設定します。
使用できるハードウェアブレークポイントの数には限りがあります。使用できるソフトウェアブレークポイントの数は、専らコードのメモリサイズによって制限されます。ただし、ソフトウェアブレークポイントを使用するとフラッシュメモリの寿命が短くなる可能性があるため、コスト高になります。
XMEGAデバイスではブレークポイントはどのように使用されますか?
Atmel XMEGAデバイスでは、通常、使用できるハードウェアブレークポイントの数は非常に限られています。これらのブレークポイントは、主に、「一時ブレークポイント」として使用されます。使用可能なハードウェアブレークポイントがない場合、ソフトウェアブレークポイントが使用されます。
全ての製品名は、それぞれの所有者の商標または登録商標です。