Everything
2.8 PIC/PID機能の使用

PIC/PID 機能は,一度リンクが完了して配置アドレスが確定したROM 上のコードやデータを,リンクをやり直すことなく,任意のアドレスに配置して利用できるようにする機能です。

この節では,コードやデータをPIC やPID にしたプログラム(ロード・モジュール)を,別のアドレスに配置を変更してデバッグする方法について説明します。

 

-

PIC

pic オプションを有効にしてコンパイルすると,PIC 機能が有効になり,コード領域がPIC になります。PIC は分岐先アドレスや関数アドレスの取得をすべてPC 相対で行うため,リンク後も任意のアドレスに配置することができます。

-

PIROD

pirod オプションを有効にしてコンパイルすると,PIROD 機能が有効になり,定数データ領域がPIROD になります。PIRODは定数データアクセスやアドレスの取得をすべてPC相対で行うため,リンク後も任意のアドレスに移動することができます。

-

PID

pid オプションを有効にしてコンパイルすると,PID 機能が有効になり,データ領域がPID になります。PIDはデータアクセスやアドレスの取得をすべてGP相対またはEP相対で行うため,リンク後も任意のアドレスに移動することができます。

 

備考 1.

PIC/PID 機能については,「CC-RH コンパイラ ユーザーズマニュアル」を参照してください。

備考 2.

ビルド・ツールにおけるPIC/PID 機能の設定については,「CS+ CC-RHビルド・ツール操作編」の「A. ウインドウ・リファレンス」の該当プロパティの説明を参照してください。

 

コードやデータをPIC やPID にしたロード・モジュールのアドレスの配置を変更したのち,デバッグを始めるには,次の手順で行ってください。

(1)

ロード・モジュール・ファイルのダウンロード条件の指定

ロード・モジュールに対し,コード,定数データ,データ各領域のロード・モジュール作成時のアドレスからのオフセット値([PICオフセット],[PIRODオフセット],[PIDオフセット])を指定します。

(2)

ロード・モジュール・ファイルへの設定値の指定

ロード・モジュールがリセット・ベクタやスタートアップ・ルーチンで実行時のアドレスやオフセット値をメモリから読み出す場合,読み出す値を対象のメモリに設定します。

(3)

ダウンロードの実行

ロード・モジュール・ファイルのダウンロードを実行します(「2.6.1 ダウンロードを実行する」参照)。

新しいアドレスに配置されたコードやデータをデバッグできるようになります。