我用的芯片是W78E516B,共有RAM 128+128+256B
Memory Model设为Compact时编译输出:Program Size: data=14.7 xdata=154 code=6422
Memory Model设为Small时编译报错:T9_YG_4.C(1658): error C249: 'DATA': SEGMENT TOO LARGE
可是明明我的程序中变量只有154+14.7字节,而片上明明有256字节的IRAM,为什么选择Small就编译不过去呢??
难道说,Small Memory Model不能使用高128B的间接寻址内存吗????
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
变量type有data、idata、pdata和xdata之分,
当把Memory Model设为Small时,变量type默认是data
当把Memory Model设为Compact时,变量type默认是pdata
当把Memory Model设为Large时,变量type默认是xdata
但是我很奇怪,为什么没有一种Memory Model把变量的type默认为idata呢??
继续网上搜索,继续学习......................
data:0x00~0x7f 128字节RAM; idata:0x00~0xff 258字节RAM,前128字节空间和data相同,只是访问方式不同。
一周热门 更多>