この項では,ROM化用ロード・モジュール・ファイルの作成手順について説明します。
ROM化には最適化リンカの-romオプションを使用します。次のように記述します。
リンカでセクションの自動配置機能を指定しない場合は,初期値データセクション,初期化先セクションのアドレスをそれぞれ-startオプションで指定する必要があります。リンカでセクションの自動配置機能を指定する場合は,-startオプションでのアドレス指定は不要です。
ユーザ・プログラム中にセクション.text,.textf,.RLIB,.SLIB,.const,.constf,.data,.sdata,.bss,.sbssがあるとします。実行時に.textを0x100番地に,.constを0x2000番地に,再配置属性DATA,BSSのセクションを0xfe000 番地に,再配置属性SDATA,SBSS のセクションを0xffe20 番地に配置したい場合,次のように記述します。
-start=.text/100 -start=.const,.RLIB,.SLIB,.textf,.constf,.data,.sdata/2000 -start=.dataR,.bss/FE000 -start=.sdataR,.sbss/FFE20 -rom=.data=.dataR,.sdata=.sdataR |
コピー先のセクション名.dataR,.sdataRは別名でも構いませんが,スタートアップ内の記述と合わせる必要があります。実行時には,.dataから.dataR,.sdataから.sdataRにデータがコピーされ,.bss,.sbssを初期化して使用します。