编译环境:keil 4
芯片:c8051f120
问题:定义一个结构体数组(200个元素),然后给结构体数组赋初值,当赋值到190左右的时候就会使另外一个全局变量的值改变
struct xxx xdata xxA[200];
for(i=0;i<200;i++)
xxA[i].xx = 0xFF;编译后,xdata = 五位数,不报错
谢谢你的回答,我不是用的在线调试,用的是仿真调试,在keil中选择的是这个芯片,keil应该知道xdata有多大。另外,xdata超过了界限会从0地址开始赋值吗?
追答这个项目选择了C8051F120后,在项目的option中target页,需要选择use on-chip XRAM,否则KEIL还真不知道。
如果你没选择这个选项,超过了界限,虽然P2的高3位还在变化,但实际起作用的低13位还是变成了0,也就是实际的0地址开始赋值。