ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
支持下述變量屬性:
在變量上使用的 aligned 屬性與 DATA_ALIGN pragma 的效果相同。請參閱 節(jié) 5.11.6
location 屬性與 LOCATION pragma 的效果相同。請參閱節(jié) 5.11.17。例如:
__attribute__((location(0x100))) extern struct PERIPH peripheral;
noinit 和 persistent 屬性適用于 ROM 初始化模式,并允許應(yīng)用程序在重置期間避免初始化特定全局變量。備選的 RAM 初始化模式只在加載映像時初始化變量;重置時不會初始化變量。請參閱《ARM 匯編語言工具用戶指南》中的“RAM 模型與 ROM 模型”章節(jié)及其小節(jié)。
noinit 屬性可用在未初始化的變量上;可防止這些變量在重置期間被設(shè)置為 0。persistent 屬性可用在初始化的變量上;可防止這些變量在重置期間被初始化。默認(rèn)情況下,標(biāo)記為 noinit 或 persistent 的變量將分別置于 .TI.noinit 和 .TI.persistent 段。這些段的位置由鏈接器命令文件控制。通常對于支持 FRAM 的器件,.TI.persistent 段置于 FRAM 中,.TI.noinit 段置于 RAM 中。也請參見 節(jié) 5.11.19。
packed 屬性可應(yīng)用于結(jié)構(gòu)體或聯(lián)合體中的單個字段。所有 ARM 目標(biāo)均支持 packed 屬性。有關(guān)編譯器如何訪問未對齊數(shù)據(jù)的更多信息,請參閱 --unaligned_access 選項(xiàng)說明。
retain 屬性與 RETAIN pragma (節(jié) 5.11.27) 的效果相同。也就是說,即使在應(yīng)用程序的其他地方?jīng)]有引用該變量,包含該變量的段也不會從條件鏈接的輸出中省略。
變量上使用的 section 屬性與 DATA_SECTION pragma 的效果相同。請參閱 節(jié) 5.11.7
used 屬性在 GCC 4.2 中定義(請參閱 http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Variable-Attributes.html#Variable-Attributes)。
weak 屬性與 WEAK pragma (節(jié) 5.11.32) 的效果相同。