-RAM_INIT_TABLE_SECTION【V1.12以降】
RAM初期化のための情報テーブルを生成します。
[指定形式]
-RAM_INIT_TABLE_SECTION[=セクション名]
-
省略時解釈
RAM初期化のための情報テーブルを生成しません。
[詳細説明]
指定したセクション名に情報テーブルを生成します。
セクション名の指定が無い場合は,セクション名".ram_init_table"で生成します。
一般にプログラムのスタートアップで.dataセクションの内容をROMからRAMに転送します。また,.bssセクションの配置RAMを0でクリアします。このためのアドレスとサイズの情報をテーブルにして生成します。
情報テーブルは以下のフィールドを持つレコードが連続する形式になります。
サイズ
内容
フィールド1
4byte
ROM先頭アドレス:ROM->RAMデータ転送時
RAM先頭アドレス:RAMクリア時
0:レコード終端時
フィールド2
2byte
転送サイズ:ROM->RAM転送またはRAMクリア時
フィールド3
RAM先頭アドレス:ROM->RAM転送またはRAMクリア時
テーブルの末端は,フィールド1,2,3すべてが0になります。
スタートアップ処理で,テーブルの末端まで以下の処理をしてください。
フィールド1とフィールド3が異なるときは,フィールド2のサイズ分を,フィールド1からフィールド3へ,メモリコピーしてください。
フィールド1とフィールド3が同じときは,フィールド2のサイズ分を,フィールド1またはフィールド3から,メモリクリアしてください。
初期化対象のセクションは,CPUプログラム動作用のセクションで,FLEXIBLE APPLICATION ACCELERATOR (FAA) 用セクションなどはテーブルに含まれません。
[使用例]
> rlink a.obj b.obj -start=.data/1000,.dataR/f1000,.bss/f2000 -rom=.data=.dataR
-ram_init_table_section=.ram_init_table
.dataセクションサイズが0x100バイト,.bssセクションサイズが0x200バイトのとき,.ram_init_tableセクションは以下のようなテーブルを生成します。
0x01000
0x100
0x1000
0xf2000
0x200
0x2000
0
[備考]
本オプションは,-form={object|relocate|library}オプション,または-stripオプションを指定した場合は無効となります。