OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3941|回复: 3

不懂就问,attribute ((section(.....)))是什么意思,

[复制链接]

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
292
金钱
292
注册时间
2021-2-5
在线时间
135 小时
发表于 2022-3-3 11:11:06 | 显示全部楼层 |阅读模式
请教大家,我查了网上的资料,还是有些不明白,大概得到的意思就是这个函数的作用是将某个变量或函数定位到具体的一个位置,完整的代码是:static uint8_t UART4_RxBuff[UART4_STREAM_BUFF_SIZE] __attribute__((section("sram"))); __attribute__应该是编译器的特性函数吧?不然怎么会找不到它的定义,补充:还有一个用法是将section换为at,和上面是同一作用。第二点就是这个sram的定义确实没找到,正常来说应该是有定义的,或者说这是一个字符常量所以没定义?那又表示的是什么地址?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2022-3-3 12:12:37 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

141

帖子

0

精华

高级会员

Rank: 4

积分
679
金钱
679
注册时间
2020-11-21
在线时间
67 小时
发表于 2022-3-11 14:36:25 | 显示全部楼层
想要彻底了解,就看看操作系统方面的书,在系统内核里面这种用法很多。简单的理解就是直接将函数放到一个指定的位置处。就像单片机复位后就会直接跳到复位地址处一样。
回复 支持 反对

使用道具 举报

3

主题

312

帖子

0

精华

高级会员

Rank: 4

积分
907
金钱
907
注册时间
2011-10-19
在线时间
196 小时
发表于 2022-3-12 00:15:30 | 显示全部楼层
这个是GCC编译器的语法,指示链接(ld)时将所定义的变量放置到"sram"这个section里,而"sram"的定义要在链接脚本文件里找,这个文件的文件名通常以.ld结尾。
直观来看“sram”这个section是指SRAM内存区,这个区域的地址范围具体是多少就要看链接脚本的定义。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 23:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表