Everything

-cpu


最適化リンケージエディタ(rlink)・オプション / ベリファイオプション

[指定形式]

-cpu = { <メモリ種別> = <アドレス範囲>[,…] | STRIDE}
         <メモリ種別> = { ROm | RAm | FIX }
         <アドレス範囲> : <先頭アドレス> - <終了アドレス>

 

[詳細説明]

-

cpu=stride未指定時は、セクションの割り付けアドレスに対して、アドレス範囲に入らない場合は、エラーを出力します。

-

cpu=stride指定時は、セクションの割り付けアドレスに対して、アドレス範囲に入らない場合は、次の同メモリ種別に配置、または、分割して配置します。

[例]

サブオプションstrideを指定しない場合

start=D1,D2/100
cpu=ROM=100-1FF,RAM=200-2FF

-

D1が100-1FF、D2が200-2FFの範囲に収まるとき、正常終了します。収まらないときエラーを出力します。

 

サブオプションstrideを指定した場合

start=D1,D2/100
cpu=ROM=100-1FF,RAM=200-2FF,ROM=300-3FF
cpu=stride

-

D1,D2がROM属性の領域に(セクションを分割して/分割しないで)収まるとき、正常終了します。セクションを分割しても収まらないときリンクエラーになります。

-

セクション割り付けが可能なアドレス範囲を16進数で指定してください。ROM/RAMの属性は、モジュール間最適化で使用します。

-

メモリ種別“FIX”には、アドレス固定の領域(I/Oエリア等)を指定します。

-

メモリ種別“FIX”と、それ以外のメモリ種別のアドレス範囲が重複した場合は、メモリ種別“FIX”を有効とします。

-

サブオプションstrideは、メモリ種別が、ROMまたはRAMで、アドレス範囲にセクションが収まらなかった場合に、セクションを分割して同じメモリ種別の領域に割り付けます。

-

サブオプションstrideで、セクションを分割する単位は、モジュール単位になります。

 

cpu=ROM=0-FFFF,RAM=10000-1FFFF

-

セクションアドレスが、0-FFFFまたは10000-1FFFFの間に入っているかチェックします。

-

モジュール間最適化では、異なる属性間でのオブジェクトの移動は行いません。

 

cpu=ROM=100-1FF,ROM=400-4FF,RAM=500-5FF
cpu=stride

-

セクションアドレスが、100-1FFの間に収まらなかった場合に、セクションをモジュール単位で分割して400-4FFに割り付けます。

[備考]

-

form={object | relocate | library}またはstrip指定時、本オプションは無効です。

-

cpu=strideおよびmemory=low指定時、無効になります。

-

cpu=strideを指定し、Bセクションが分割された場合、0初期化するための情報として8バイト×分割数分だけC$BSECセクションのサイズが増加します。