ZHCUAQ1F july 2015 – april 2023
支持下述变量属性:
在变量上使用的 aligned 属性与 DATA_ALIGN pragma 的效果相同。请参阅 节 7.9.4
location 属性与 LOCATION pragma 的效果相同。请参阅节 7.9.21。例如:
__attribute__((location(0x100))) extern struct PERIPH peripheral;
noinit 和 persistent 属性适用于 ROM 初始化模式,并允许应用程序在重置期间避免初始化特定全局变量。备选的 RAM 初始化模式只在加载映像时初始化变量;重置时不会初始化变量。请参阅《TMS320C6000 汇编语言工具用户指南》中的“RAM 模型与 ROM 模型”章节及其小节。
noinit 属性可用在未初始化的变量上;可防止这些变量在重置期间被设置为 0。persistent 属性可用在初始化的变量上;可防止这些变量在重置期间被初始化。默认情况下,标记为 noinit 或 persistent 的变量将分别置于 .TI.noinit
和 .TI.persistent
段。这些段的位置由链接器命令文件控制。通常对于支持 FRAM 的器件,.TI.persistent 段置于 FRAM 中,.TI.noinit 段置于 RAM 中。也请参见 节 7.9.24。
packed 属性可应用于结构体或联合体中的单个字段。只有当硬件支持非对齐访问时,用于结构体或联合体字段的 packed 属性才可适用。
retain 属性与 RETAIN pragma (节 7.9.30) 的效果相同。也就是说,即使在应用程序的其他地方没有引用该变量,包含该变量的段也不会从条件链接的输出中省略。
变量上使用的 section 属性与 DATA_SECTION pragma 的效果相同。请参阅 节 7.9.6
used 属性在 GCC 4.2 中定义(请参阅 http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Variable-Attributes.html#Variable-Attributes)。