ZHCU820Y September 2004 – June 2021
支持以下变量属性:
在变量中使用的 aligned 属性具有与 DATA_ALIGN pragma 相同的效果。请参阅 Topic Link Label6.11.6
location 属性具有与 LOCATION pragma 相同的效果。请参阅Topic Link Label6.11.20。例如:
__attribute__((location(0x100))) extern struct PERIPH peripheral;
noinit 和 persistent 属性适用于 ROM 初始化模式,应用可在重置期间避免初始化特定全局变量。备选的 RAM 初始化模式只在加载映像时初始化变量;重置时不会初始化变量。请参阅《MSP430 汇编语言工具用户指南》中的“RAM 模型与 ROM 模型”一节及其字节。
noinit 属性可用于未初始化的变量;可防止这些变量在重置期间设为 0。persistent 属性可用于初始化的变量;可防止这些变量在重置期间初始化。默认情况下,标记为 noinit 或 persistent 的变量将分别置于 .TI.noinit
和 .TI.persistent
段。这些段的位置由链接器命令文件控制。通常对于支持 FRAM 的器件,.TI.persistent 段置于 FRAM 中,.TI.noinit 段置于 RAM 中。也请参见 Topic Link Label6.11.22。
packed 属性可应用于结构体或联合体中的单独字段。 Topic Link Label6.16.5 中介绍了用于结构体或联合体字段的 packed 属性的行为。
retain 属性具有与 RETAIN pragma (Topic Link Label6.11.29) 相同的效果。也就是说,包含该变量的段即使在应用程序的其他地方没有被引用,也不会从条件链接输出中省略。
变量中使用的 section 属性具有与 DATA_SECTION pragma 相同的效果。请参阅 Topic Link Label6.11.7
used 属性在 GCC 4.2 中定义(请参阅 http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Variable-Attributes.html#Variable-Attributes)。
weak 属性具有与 WEAK pragma (Topic Link Label6.11.33) 相同的效果。