Keil C51中Small Memory Model能不能使用高128B的间接寻址内存吗????

2020-01-30 13:45发布

我用的芯片是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的间接寻址内存吗????
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
XIAN1987
2020-01-30 17:25
我去网上查了一下,好像还真是这样子的:
变量type有data、idata、pdata和xdata之分,
当把Memory Model设为Small时,变量type默认是data
当把Memory Model设为Compact时,变量type默认是pdata
当把Memory Model设为Large时,变量type默认是xdata

但是我很奇怪,为什么没有一种Memory Model把变量的type默认为idata呢??

继续网上搜索,继续学习......................

一周热门 更多>