https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js

C语言 __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)));

 

posted @   SLOWBY  阅读(413)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示