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) で指定したセクションに配置する */
|