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 的效果相同。请参阅 节 5.11.6
location 属性与 LOCATION pragma 的效果相同。请参阅节 5.11.17。例如:
__attribute__((location(0x100))) extern struct PERIPH peripheral;
noinit 和 persistent 属性适用于 ROM 初始化模式,并允许应用程序在重置期间避免初始化特定全局变量。备选的 RAM 初始化模式只在加载映像时初始化变量;重置时不会初始化变量。请参阅《ARM 汇编语言工具用户指南》中的“RAM 模型与 ROM 模型”章节及其小节。
noinit 属性可用在未初始化的变量上;可防止这些变量在重置期间被设置为 0。persistent 属性可用在初始化的变量上;可防止这些变量在重置期间被初始化。默认情况下,标记为 noinit 或 persistent 的变量将分别置于 .TI.noinit
和 .TI.persistent
段。这些段的位置由链接器命令文件控制。通常对于支持 FRAM 的器件,.TI.persistent 段置于 FRAM 中,.TI.noinit 段置于 RAM 中。也请参见 节 5.11.19。
packed 属性可应用于结构体或联合体中的单个字段。所有 ARM 目标均支持 packed 属性。有关编译器如何访问未对齐数据的更多信息,请参阅 --unaligned_access 选项说明。
retain 属性与 RETAIN pragma (节 5.11.27) 的效果相同。也就是说,即使在应用程序的其他地方没有引用该变量,包含该变量的段也不会从条件链接的输出中省略。
变量上使用的 section 属性与 DATA_SECTION pragma 的效果相同。请参阅 节 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 (节 5.11.32) 的效果相同。