__attribute__

__attribute__

设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )

格式__attribute__ ((attribute-list))

 

attribute-list

aligned

指定对象的对齐格式(以字节为单位)

packed

该属性对struct 或者union 类型进行定义,设定其类型的每一个变量的内存约束

告诉编译器取消结构在编译过程中的优化对齐(使用1字节对齐)

at

绝对定位,可以把变量或函数绝对定位到Flash中,或者定位到RAM。

FLASH:u16 Flash[512] __attribute__((at(0x0800F000)));

RAM:u8 RAM[RAM_LEN] __attribute__ ((at(0X20001000)));

section

在ARM编译器编译之后,代码被划分为不同的段,

RO Section(ReadOnly)中存放代码段和常量,

RW Section(ReadWrite)中存放可读写静态变量和全局变量,

ZI Section(ZeroInit)是存放在RW段中初始化为0的变量。

可多个配合使用

u8 Addr[100] __attribute__ ((section ("RAM"), zero_init,aligned(4)));

 

上一篇:集合覆盖 顶点覆盖: set cover和vertex cover


下一篇:多线程教程(二十六)字段更新器、原子累加器