<コンパイル・オプション / マイコンオプション>
[指定形式]
-base = { rom=<レジスタ>
| ram=<レジスタ>
| <アドレス値> = <レジスタ>}
<レジスタ>:= {R8 〜 R13}
|
[詳細説明]
- | プログラム全体で、ベースアドレスとして固定で使用する汎用レジスタを指定します。 |
- | base=rom=<レジスタA>を指定した場合は、const変数のアクセスを指定したレジスタA相対で行うことを試みます。ただし,定数領域セクションのうち、最も0に近いアドレスと、最も0xFFFFFFFFに近いアドレスとの差が64KB〜256KB(*1)以内でなければなりません。
定数領域セクションは、次のセクション(セクション名変更前)が対象となります。
C_1, C_2, C, C_8, C$VECT, C$INIT, C$VTBL, W, W_1, W_2, L |
- | base=ram=<レジスタB>を指定した場合は、初期化変数および未初期化変数のアクセスは指定したレジスタB相対で行います。ただし,RAMデータ領域セクションの、最も0に近いアドレスと最も0xFFFFFFFFに近いアドレスとの差が64KB〜256KB(*1)以内でなければなりません。
RAMデータ領域セクションは、次のセクション(セクション名変更前)が対象となります。
D_1, D_2, D, D_8, B_1, B_2, B, B_8 |
- | <アドレス値>=<レジスタC>を指定した場合は、コンパイル時に割り付けアドレスが確定している領域のうち、アドレス値から64KB〜256KB*1以内の領域のアクセスを、指定したレジスタC相対で行います。 |
注 | *1 この値は、アクセスする変数のサイズにより、64KBから256KBの間で変化します。 |
[備考]
- | 異なる領域に対して同じレジスタを指定することはできません。 |
- | レジスタはそれぞれの領域で1個だけ指定可能です。fint_registerオプションで指定したレジスタを本オプションで指定した場合、エラーとなります。 |
- | pidオプション選択時は、base=rom=<レジスタ> を選択できません。選択すると、警告としてW0551149メッセージを表示してbase=rom=<レジスタ>の選択を無効とします。 |