您好!
我以下面的方式声明了'global variables:
在 main.c 文件中、我具有以下内容:
__attribute__((section(".test"))) unsigned short global1;
__attribute__((section(".test"))) unsigned short global2;
void main (void)
{
unsigned short local1;
unsigned short local2;
local1 = global1;
local2 = global2;
}
在我的 lnker 命令文件中、我具有以下内容:
TEST:{}> MSRAMTEST
MSRAMTEST:origin = 0x70180000,length = 0x40000
使用这些设置、我可以看到全局变量的内存分配如下所示:
70180000 global1.
70180002 global2.
但是、当我的代码更改读取的全局变量的顺序时、如下所示
void main (void)
{
unsigned short local1;
unsigned short local2;
local2 = global2;
local1 = global1;
}
存储器中的地址也发生了变化。
70180002 global1.
70180000 global2.
我是否可以设置任何标志、以确保全局变量的地址保持不变、无论使用顺序如何。
此致、
Vishwanath Reddy。