Everything

-SPLIT_SECTION【V1.12以降】


セクションの自動配置で配置単位をモジュール別のセクション単位で行います。

[指定形式]

-SPLIT_SECTION

 

-

省略時解釈

セクションの自動配置を,結合したセクション単位で行います。

[詳細説明]

-

SPLIT_SECTIONを指定したとき,セクションはモジュール別で分かれたまま,デバイスの配置可能な領域へ個々に割り当てます。

指定しない場合のセクションの自動配置は,リンクするモジュールから同じセクションを結合して,一つのセクションとしたあとにデバイスの配置可能な領域に割り当てます。

 

以下のようにfile1.objとfile2.objにtext_sectionとdata_sectionがあるとします。

 

 

デバイスがROMサイズ3KとRAM-Aサイズ1.5K RAM-Bサイズ1.5Kで構成されていた場合,auto_section_layoutによるセクションの自動割り当ては以下のようになります。

ROM(サイズ3K)は十分なサイズがあるのでfile1.objとfile2.objの両方のtext_sectionを配置できます。

RAMはRAM-A(サイズ1.5K)とRAM-B(サイズ1.5K)に分割され,file1.objとfile2.objの両方を結合したdata_section(サイズ2K)を下図のように配置できません。

 

SPLIT_SECTIONを指定しているなら,RAM-A(サイズ1.5K)にfile1.objのdata_section(サイズ1K)を配置したあと,RAM-B(サイズ1.5K)にfile2.objのdata_section(サイズ1K)を下図のように配置できます。

モジュール別セクションは以下のセクション名になります。

$sss_part??

sss :分割前セクション名

?? :01~99

[使用例]

-

モジュール別のセクションを配置します。

>rlink a.obj b.obj -device=dr5f100pj.dvf -auto_section_layout -split_section

[備考]

-

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

-

-auto_section_layoutオプションを指定していない場合,本オプションは無効となります。