PIC/PID 機能は,一度リンクが完了して配置アドレスが確定したROM 上のコードやデータを,リンクをやり直すことなく,任意のアドレスに配置して利用できるようにする機能です。
PIC/PID機能を利用する場合,プログラムは“マスタ”と“アプリケーション”で構成します。
PIC/PID 機能では,ROM 上のコードやデータをPIC やPID にしたプログラムを“アプリケーション”,“アプリケーション”を実行させるのに必要なプログラムを“マスタ”と呼びます。
この節では,ROM 上のコードやデータをPIC やPID にした“アプリケーション”プログラム(ロード・モジュール)を,別のアドレスに配置を変更してデバッグする方法について説明します。
pic オプションを有効にしてコンパイルすると,PIC 機能が有効になり,コード領域(P セクション)がPIC になります。PIC は分岐先アドレスや関数アドレスの取得をすべてPC 相対で行うため,リンク後も任意のアドレスに配置することができます。
pid オプションを有効にしてコンパイルすると,PID 機能が有効になり,ROM データ領域(C,C_2,C_1,W,W_2,W_1,およびLセクション)がPID になります。プログラムはPID に対し,その先頭アドレスを示すレジスタ(PID レジスタ)から相対のアクセスでアクセスします。“マスタ”でPID レジスタの設定値を変化させることにより,リンク後もPID を任意のアドレスに移動することができます。
ROM 上のコードやデータをPIC やPID にしたロード・モジュールのアドレスの配置を変更したのち,デバッグを始めるには,次の手順で行ってください。
“アプリケーション”のロード・モジュール・ファイルを“マスタ”のダウンロード・ファイルとして追加します(「2.7.1 PIC/PID 機能を使用したロード・モジュールのアドレスの配置を変更する」参照)。
“アプリケーション”のロード・モジュールに対し,ロード・モジュール作成時のアドレスからのオフセット値([PICオフセット]),および作成時に指定したPIDレジスタへ設定するオフセット値([PIDオフセット])を指定します。
“マスタ”および“アプリケーション”のロード・モジュール・ファイルのダウンロードを実行します(「2.5.1 ダウンロードを実行する」参照)。