Everything

-RAM_INIT_TABLE_SECTION【V1.12以降】


RAM初期化のための情報テーブルを生成します。

[指定形式]

-RAM_INIT_TABLE_SECTION[=セクション名]

 

-

省略時解釈

RAM初期化のための情報テーブルを生成しません。

[詳細説明]

-

RAM初期化のための情報テーブルを生成します。

-

指定したセクション名に情報テーブルを生成します。

-

セクション名の指定が無い場合は,セクション名".ram_init_table"で生成します。

-

一般にプログラムのスタートアップで.dataセクションの内容をROMからRAMに転送します。また,.bssセクションの配置RAMを0でクリアします。このためのアドレスとサイズの情報をテーブルにして生成します。

-

情報テーブルは以下のフィールドを持つレコードが連続する形式になります。

 

サイズ

内容

フィールド1

4byte

ROM先頭アドレス:ROM->RAMデータ転送時

RAM先頭アドレス:RAMクリア時

0:レコード終端時

フィールド2

2byte

転送サイズ:ROM->RAM転送またはRAMクリア時

0:レコード終端時

フィールド3

2byte

RAM先頭アドレス:ROM->RAM転送またはRAMクリア時

0:レコード終端時

-

テーブルの末端は,フィールド1,2,3すべてが0になります。

-

スタートアップ処理で,テーブルの末端まで以下の処理をしてください。

-

フィールド1とフィールド3が異なるときは,フィールド2のサイズ分を,フィールド1からフィールド3へ,メモリコピーしてください。

-

フィールド1とフィールド3が同じときは,フィールド2のサイズ分を,フィールド1またはフィールド3から,メモリクリアしてください。

-

初期化対象のセクションは,CPUプログラム動作用のセクションで,FLEXIBLE APPLICATION ACCELERATOR (FAA) 用セクションなどはテーブルに含まれません。

[使用例]

-

RAM初期化のための情報テーブルを生成します。

> 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セクションは以下のようなテーブルを生成します。

フィールド1

フィールド2

フィールド3

0x01000

0x100

0x1000

0xf2000

0x200

0x2000

0

0

0

[備考]

-

本オプションは,-form={object|relocate|library}オプション,または-stripオプションを指定した場合は無効となります。