嵌入式技术论坛
直播中

河神大人

9年用户 1583经验值
擅长:电源/新能源
私信 关注
[问答]

RTT Studio中怎么指定某个数组存放在设定的地址上呢?

大神,您好,很开心您能看到这个问题。我的问题就是在RTT Studio中如何指定数组存放在某个具体的内存地址上,或者说数组的绝对定位,RTT Studio用的编译器是默认GUN?

回帖(1)

王萍

2023-1-9 17:36:29
问题描述: GCC编译器不支持__attribute__ ((at(addr)))指令,从而出现警告情况,提示信息为“warning: ’at’ attribute directive ignored”,
该命令__attribute__ ((at(addr)))在Keil中给的使用方式图图1所示。
需要使用__attribute__ ((section(“name”)))。
图1 Keil中定义数组于某个地址的方式
3.jpg
解决办法:使用__attribute__ ((section(“name”))),由于section的使用方法在国内较少,从而只能去国外查找,最后在网站 找到了解决办法。
第一步
由于使用了GCC编译器,从而一定有一个连接文件,该文件的后缀名为.lds。
第二步
(添加变量到Flash中):
打开文件后,将Flash中的变量添加到图2的②中。
①是对Flash中的函数,中断等进行内存的初始化,
③是开始对RAM中的变量进行初始化。
图2 Flash中段的添加
2.jpg
第二步(添加变量到RAM中):
RAM中段的添加如图3中的
②所示。
①是栈的初始化,
③是定义的一些变量的初始化。
图3 RAM中段的添加
2.jpg
第三步
将数组定义到对应的段中。如定义到Flash中如图4所示。
图4 变量定义于Falsh中的方式
2.jpg
举报

更多回帖

发帖
×
20
完善资料,
赚取积分