2.16 フック処理を設定する

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

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

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

備考

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

図 2.160

[フック処理]カテゴリ

表 2.22

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

プロパティ

タイミング

ダウンロード前

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

ダウンロード後

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

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

ブレーク中のCPUリセット直後に,指定した処理を行います。

実行開始前

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

ブレーク後

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

 

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

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

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

図 2.161

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

図 2.162

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

 

このダイアログにおいて,目的の処理を直接入力により指定します。処理の指定形式は次のいずれかです。

 

【処理1】

SFRの内容を,数値に自動的に書き換えます。

指定形式:

SFR名 数値

 

【処理2】

CPUレジスタの内容を,数値に自動的に書き換えます。

指定形式:

CPUレジスタ名 数値

 

【処理3】

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

指定形式:

Source Pythonスクリプト・パス

注意

デバッガのフック処理からPythonスクリプトを実行する場合,次のコマンドが使用可能です。
なお,これ以外のPythonコマンドを使用したい場合は,PythonコンソールのHookコマンドを使用してください。

-

debugger.Register.GetValue

-

debugger.Register.SetValue

-

debugger.Memory.GetValue

-

debugger.Memory.SetValue

備考 1.

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

備考 2.

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

 

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

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

図 2.163

フック処理設定の例