Everything
2.7 PIC/PID機能の使用

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

PIC/PID機能を利用する場合,プログラムは“マスタ”と“アプリケーション”で構成します。

PIC/PID 機能では,ROM 上のコードやデータをPIC やPID にしたプログラムを“アプリケーション”,“アプリケーション”を実行させるのに必要なプログラムを“マスタ”と呼びます。

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

 

-

PIC

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

-

PID

pid オプションを有効にしてコンパイルすると,PID 機能が有効になり,ROM データ領域(C,C_2,C_1,W,W_2,W_1,およびLセクション)がPID になります。プログラムはPID に対し,その先頭アドレスを示すレジスタ(PID レジスタ)から相対のアクセスでアクセスします。“マスタ”でPID レジスタの設定値を変化させることにより,リンク後もPID を任意のアドレスに移動することができます。

 

備考 1.

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

備考 2.

ビルド・ツールにおけるPIC/PID 機能の設定については,「CS+ CC-RXビルド・ツール操作編」を参照してください。

 

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

(1)

ダウンロード・ファイルの追加

“アプリケーション”のロード・モジュール・ファイルを“マスタ”のダウンロード・ファイルとして追加します(「2.7.1 PIC/PID 機能を使用したロード・モジュールのアドレスの配置を変更する」参照)。

(2)

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

“アプリケーション”のロード・モジュールに対し,ロード・モジュール作成時のアドレスからのオフセット値([PICオフセット]),および作成時に指定したPIDレジスタへ設定するオフセット値([PIDオフセット])を指定します。

(3)

ダウンロードの実行

“マスタ”および“アプリケーション”のロード・モジュール・ファイルのダウンロードを実行します(「2.5.1 ダウンロードを実行する」参照)。

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