8.5.2 各オプションの機能

PIC/PID機能と関連するオプションを説明します。

各オプションの機能詳細については、「コマンド・リファレンス」の章の各オプションの説明を参照ください。

(1)

アプリケーションのコード生成(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を任意のアドレスに移動することができます。

なお、PIC機能(picオプション)とPID機能(pidオプション)は、それぞれ独立した機能として動作できるように設計しておりますが、同時に有効にしたうえで、PICとPIDを隣接させてご利用いただくことを推奨します。PIC機能とPID機能を個別に利用したり、PICとPIDの相対距離を変更したアプリケーションのデバッグは、デバッガのバージョンによりサポートされない場合があります。本書でもPIC機能とPID機能を同時に有効にした例で説明しています。

(2)

共有ライブラリ対応(jump_entries_for_pic, nouse_pid_registerオプション)

アプリケーションからマスタにあるライブラリを呼び出すための機能です。

nouse_pid_registerオプションは、マスタのコンパイル時に使用し、PIDレジスタを使用しないコードを生成します。

jump_entries_for_picオプションを、マスタのリンク時に最適化リンケージエディタに指定すると、アプリケーションから固定アドレスにあるライブラリ関数を呼び出すためのジャンプテーブルを生成します。

(3)

RAM領域の共有(Fsymbolオプション)

マスタ上の変数を、リンク単位の違うアプリケーションからでも読み書きできるようにするための機能です。

マスタのリンク時に、Fsymbolオプションを最適化リンケージエディタに指定すると、アプリケーションから固定アドレスで変数を参照するためのシンボルテーブルを生成します。