PIC/PID 機能は,一度リンクが完了して配置アドレスが確定したROM 上のコードやデータを,リンクをやり直すことなく,任意のアドレスに配置して利用できるようにする機能です。
この節では,コードやデータをPIC やPID にしたプログラム(ロード・モジュール)を,別のアドレスに配置を変更してデバッグする方法について説明します。
pic オプションを有効にしてコンパイルすると,PIC 機能が有効になり,コード領域がPIC になります。PIC は分岐先アドレスや関数アドレスの取得をすべてPC 相対で行うため,リンク後も任意のアドレスに配置することができます。
pirod オプションを有効にしてコンパイルすると,PIROD 機能が有効になり,定数データ領域がPIROD になります。PIRODは定数データアクセスやアドレスの取得をすべてPC相対で行うため,リンク後も任意のアドレスに移動することができます。
pid オプションを有効にしてコンパイルすると,PID 機能が有効になり,データ領域がPID になります。PIDはデータアクセスやアドレスの取得をすべてGP相対またはEP相対で行うため,リンク後も任意のアドレスに移動することができます。
コードやデータをPIC やPID にしたロード・モジュールのアドレスの配置を変更したのち,デバッグを始めるには,次の手順で行ってください。
ロード・モジュールに対し,コード,定数データ,データ各領域のロード・モジュール作成時のアドレスからのオフセット値([PICオフセット],[PIRODオフセット],[PIDオフセット])を指定します。
ロード・モジュールがリセット・ベクタやスタートアップ・ルーチンで実行時のアドレスやオフセット値をメモリから読み出す場合,読み出す値を対象のメモリに設定します。
ロード・モジュール・ファイルのダウンロードを実行します(「2.6.1 ダウンロードを実行する」参照)。