ハードウェアブレーク
Note
SOLID 1.3.0 以降で使用できます。
概要
ハードウェアブレークポイントを使用すると、任意のアドレスへのメモリアクセスを捕捉して、 CPUを停止させる事ができます。ハードウェアリソースを使用するため、CPUによって設定できる点数が 異なりますが、一般的に2~6点設定可能です。
使用方法
新しいブレークポイントの作成方法は以下のとおりです。
メニューから
を選択します。ウィンドウが開いたら、 新しいハードウェアブレークポイント をクリックします。
アドレスやCPUステータスなどを入力し、OKをクリックします。
アドレス には、変数などのシンボル名を直接入力できます。 変数のアドレスを設定したい場合は、シンボル名の先頭に
&
を付けてください。タスクID は、現状では設定しても無視されます。将来のSDKのバージョンアップで、 タスクIDを指定したブレークポイントをサポートする予定です。
これで設定は完了です。
設定の変更
既に存在するブレークポイントの設定を変更するには、 変更したいブレークポイントの行を右クリックし、 場所 を選択します。
ハードウェアブレークポイントの設定ウィンドウが表示されるので、 変更後に OK をクリックしてください。
設定項目
- アドレス
CPUステータス で メモリアクセス/メモリリード/メモリライト のいずれかを設定している場合には、 メモリアクセスが行われるアドレスを入力します。 また、実行 を選択している場合には、命令のアドレスや関数名を入力します。
変数がスコープ内であれば、ローカル変数のシンボル名でも設定可能ですが、 スタック上のアドレスが設定されてしまいます。スコープ外になった場合に、 意図した変数へのアクセス以外でも停止してしまう事があるので注意してください。
- CPUステータス
メモリアクセス
メモリへのリードアクセス/ライトアクセスの両方で停止。
メモリリード
メモリへのリードアクセスで停止。
メモリライト
メモリへのライトアクセスで停止。
実行
命令実行での停止。
- バイトカウント
CPUステータス が メモリアクセス/メモリリード/メモリライト の場合に有効です。 指定されたアドレスから何バイト有効にするかを設定します。アクセス幅でない事に注意してください。 例えば、アドレス
0x8000
に対して2バイトを指定した場合、0x8000
、0x8001
に対してのアクセスは有効ですが、0x8002
に対してのアクセスは無視されます。- マスク指定
アドレスの一部を
x
で指定すると、ドントケア付きのアドレスを記述できます。 これにより、範囲指定のブレークポイント設定を実現できます。0xF8xxx000
のように、 アドレスの途中のみをマスクするような指定は出来ません。Note
ターゲットCPUによっては使用できない可能性があります。
例:
0xF8000000
から0xF8FFFFFF
までの範囲でヒットする指定。
- タスクID
未サポートです。設定は無視されます。