8.20 --bss_threshold=num

セクションでの小さいグローバル ZI データ項目の配置を制御できます。小さいグローバル ZI データ項目は、サイズが 8 バイト以下の未初期化データ項目です。

構文

--bss_threshold= num
各項目には以下の意味があります。
num
以下のいずれかを指定します。
0
小容量のグローバル ZI データ項目を ZI データセクションに配置します。
8
小容量のグローバル ZI データ項目を RW データセクションに配置します。

使用法

RVCT 2.1 以降では、コンパイラは最適化を目的として、小さいグローバル ZI データ項目を RW データセクションに配置する場合があります。RVCT 2.0.1 以前では、小容量のグローバル ZI データ項目は、デフォルトで ZI データセクションに配置されました。
--bss_threshold=0 を使用して、ZI データセクションへの小さいグローバル ZI データ項目の配置について、RVCT 2.0.1 以前の動作をエミュレートします。

--bss_threshold=0 オプションは、現在のコンパイルモジュールのすべての小さいグローバル ZI データ項目を ZI データセクションに配置するようにコンパイラに指示します。固有の変数を配置するには、以下のオプションを使用します。
  • ZI データセクションに配置するには、__attribute__((zero_init)) を使用します。
  • 固有の ZI データセクションに配置するには、 __attribute__((section("name")))__attribute__((zero_init)) を組み合わせて使用します。

デフォルト

--bss_threshold オプションを指定しなかった場合、コンパイラは --bss_threshold=8 が指定されたときと同じ処理を実行します。
ARM Linux コンフィギュレーションファイルをコマンドラインで指定して、 --translate_gcc または --translate_g++ を使用した場合は、 --bss_threshold=0 を指定したときと同じ処理が実行されます。

int glob1;         /* ZI (.bss) in RVCT 2.0.1 and earlier */
                   /* RW (.data) in RVCT 2.1 and later */
--bss_threshold=0 を使用してこのコードをコンパイルすると、glob1 が ZI データセクションに配置されます。
関連する参考文書
8.9 --arm_linux_config_file=path
8.10 --arm_linux_configure
10.79 #pragma arm section [section_type_list]
10.69 __attribute__((section("name"))) 変数属性
10.75 __attribute__((zero_init)) 変数属性
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.