ハードウェアブレーク

Note

SOLID-1.3.0 以降で使用できます。

概要

ハードウェアブレークポイントを使用すると、任意のアドレスへのメモリアクセスを捕捉して、 CPUを停止させる事ができます。ハードウェアリソースを使用するため、CPUによって設定できる点数が 異なりますが、一般的に2~6点設定可能です。


使用方法

新しいブレークポイントの作成方法は以下のとおりです。

  1. [デバッグ] メニュー の [ウィンドウ] - [ハードウェアブレークポイント] を選択します。

  2. ウィンドウが開いたら、新しいハードウェアブレークポイント をクリックします。

../_images/new-hwbp.png
  1. アドレスやCPUステータスなどを入力し、OKをクリックします。

    アドレス には、変数などのシンボル名を直接入力できます。 変数のアドレスを設定したい場合は、シンボル名の先頭に & を付けてください。

    タスクID は、現状では設定しても無視されます。将来のSDKのバージョンアップで、 タスクIDを指定したブレークポイントをサポートする予定です。

../_images/hwbp-settings.png

これで設定は完了です。


設定の変更

既に存在するブレークポイントの設定を変更するには、 変更したいブレークポイントの行を右クリックし、場所 を選択します。

../_images/hwbp-edit.png

ハードウェアブレークポイントの設定ウィンドウが表示されるので、 変更後に OK をクリックしてください。


設定項目

アドレス

CPUステータス で、メモリアクセス/メモリリード/メモリライト のいずれかを設定している場合には、 メモリアクセスが行われるアドレスを入力します。 また、実行 を選択している場合には、命令のアドレスや関数名を入力します。

変数がスコープ内であれば、ローカル変数のシンボル名でも設定可能ですが、 スタック上のアドレスが設定されてしまいます。スコープ外になった場合に、 意図した変数へのアクセス以外でも停止してしまう事があるので注意してください。

CPUステータス

メモリアクセス

メモリへのリードアクセス/ライトアクセスの両方で停止。

メモリリード

メモリへのリードアクセスで停止。

メモリライト

メモリへのライトアクセスで停止。

実行

命令実行での停止。

バイトカウント

CPUステータス が、メモリアクセス/メモリリード/メモリライトの場合に有効です。 指定されたアドレスから何バイト有効にするかを設定します。アクセス幅でない事に注意してください。 例えば、アドレス0x8000に対して2バイトを指定した場合、0x8000、0x8001に対してのアクセスは有効ですが、 0x8002に対してのアクセスは無視されます。

マスク指定

アドレスの一部を'x'で指定すると、ドントケア付きのアドレスを記述できます。 これにより、範囲指定のブレークポイント設定を実現できます。0xF8xxx000 のように、 アドレスの途中のみをマスクするような指定は出来ません。

Note

ターゲットCPUによっては使用できない可能性があります。

  • 例: 0xF8000000 から 0xF8FFFFFF までの範囲でヒットする指定。

../_images/hwbp-addr-mask.png

タスクID

未サポートです。設定は無視されます。