常量放入code区,编译结果XDATA占用字节数没变化?这是怎...
char code TestGprsStr1[]={0x54,0x65,0x73,0x74,0x20,0x57,0x61,0x76,0x65,0x43,0x6F,0x6D,0x47,0x70,0x72,0x73,0x20,0x4D,0x6F,0x64,0x75,0x6C,0x65,0x2E,0x2E,0x2E,0x5C,0x72,0x5C,0x6E};常量放入code区,编译结果XDATA占用字节数没变化?这是怎么回事? 默认不是 large模式。 如果不曾使用,那麽很可能已經被優化掉了。 有什么好奇怪的,你数组放到到code区,xdata区当然不会增加了。 编译后code会增加
char xdataTestGprsStr1[]=
才能 把变量分配到xdata区,
你刚刚的
char code TestGprsStr1[]=
但是想看code区数据,应该会增加 xdata应该减少呀 const 跟 xdata八杆子打不着吧。 dengxm2009 发表于 2015-8-26 11:54
xdata应该减少呀
LZ逻辑:
LZ新买了套房子,然后跑到邻居家说,你家怎么没变啊,应该拆迁了啊? 没加code前,常量放在xdata,此时编绎完成xdata占用5881字节。加了code后,变量存在rom里面,code占用应该增加,xdaya占用就应该减小呀,好像没什么变化。 找到原因了,原来与优化选项有关。去掉优化选项,效果就出来了。如果选则优化,keil已经帮你把常量放到code区了。
页:
[1]