A.1.2.2 -Xsectionオプションを使用して配置領域を変更する

-Xsectionオプションによって,デフォルトの配置先セクションを変更できます。アクセス効率の良いセクションに配置させることでコード・サイズを削減することができます。

 

(1)

-Xsectionオプションを使用して,デフォルトのセクション種別を指定します。

.sdata/.sbss セクションに配置させる場合

>ccrh main.c -Xsection=data=gp_disp16

 

ただし,(1)で指定したセクションに変数が収まりきらない場合は,リンク時に以下のエラーが出力されます。この場合は,Cソース・ファイル上で変数のセクションを変更してください。

E0562330 : Relocation size overflow : "ファイル"-"セクション"-"オフセット"

 

変数を.sdata23/.sbss23セクションに変更する場合

int a = 1;              /*(1) で指定したセクションに配置する */
int b;                  /*(1) で指定したセクションに配置する */
#pragma section gp_disp23
int c = 1;              /*.sdata23 セクションに配置する */
int d;                  /*.sbss23 セクションに配置する */
#pragma section default
int e = 1;              /* (1) で指定したセクションに配置する */
int f;                  /* (1) で指定したセクションに配置する */