Everything
2.18 フック処理を設定する

この節では,フック処理機能を使用し,デバッグ・ツールにフックを設定するための操作方法について説明します。

フック処理を設定することで,ロード・モジュールのダウンロード前後やCPUリセット後に,I/Oレジスタ/CPUレジスタの値を自動的に変更することができます。

フック処理の設定は,プロパティ パネル[フック処理設定]タブ上の[フック処理設定]カテゴリ内で行います。

備考

たとえば,[ダウンロード前]プロパティでI/Oレジスタを設定することにより,ダウンロードを高速に行うことができます。
また,外部RAMへのダウンロードも,同様の設定で容易に行うことができます。

図 2.161

[フック処理]カテゴリ

表 2.27

[フック処理]カテゴリのプロパティ

プロパティ

タイミング

ダウンロード前

ロード・モジュール・ファイルをダウンロードする直前に,指定した処理を行います。

ダウンロード後

ロード・モジュール・ファイルをダウンロードした直後に,指定した処理を行います。

ブレーク中のCPUリセット後

CPUリセット直後に,指定した処理を行います。

実行開始前

プログラムの実行開始直前に,指定した処理を行います。

ブレーク後

プログラムの実行がブレークした直後に,指定した処理を行います。

 

[フック処理設定]カテゴリ内の各プロパティは,フック処理を行うタイミングを示し,プロパティ値の“[ ]”内は,現在指定されている処理の数を示します(デフォルトで設定されているフック処理はありません)。

フック処理を行いたいプロパティに,目的の処理を次の手順で指定します。

処理の指定は,該当するプロパティを選択すると欄内右端に表示される[...]ボタンをクリックすることでオープンする,次のテキスト編集 ダイアログ上で行います。

図 2.162

テキスト編集 ダイアログのオープン

図 2.163

フック処理を設定する(テキスト編集 ダイアログ)

 

このダイアログにおいて,目的の処理を直接入力により指定します。

処理の指定形式は次のいずれかです。

 

【指定形式:1】
I/Oレジスタの内容を,数値に自動的に書き換えます。

I/Oレジスタ名 数値

 

【指定形式:2】
CPUレジスタの内容を,数値に自動的に書き換えます。

CPUレジスタ名 数値

 

【指定形式:3】
Pythonスクリプト・パス(絶対パス/プロジェクト・フォルダを基点とした相対パス)で指定したスクリプト・ファイルを実行します。

Source Pythonスクリプト・パス

備考 1.

処理の指定の際,行頭に“#”を付与することにより,その行はコメント扱いとなります。

備考 2.

半角スペースは,タブ文字でも代用可能です。

注意

デバッガのフック処理からPythonスクリプトを実行する場合,以下のコマンドが記載可能です。

 

debugger.Register.GetValue

debugger.Register.SetValue

debugger.Memory.Read

debugger.Memory.Write

 

それ以外のPythonコマンドを使用したい場合,PythonコンソールのHookコマンドを使用してください。

 

1処理につき64文字まで入力可能で,各プロパティごとに128個までの処理を指定することができます(テキスト編集 ダイアログ上の[テキスト]エリア内の1行が1処理に相当)。

処理の指定が完了したのち,[OK]ボタンをクリックすると,指定した処理がプロパティ パネル上に反映されます。

図 2.164

フック処理設定の例