data区不够大,报错:data segment too large

2020-01-26 12:44发布

DATA,51的内部RAM,只有128B(字节)大小,不管是最新的什么增强型单片机;
也就是有128的大小吧~
我程序里所有的相关定义:
uchar idata lcd_buf[8];
uchar idata para_buf[18], trans[18], rece[18], * ex_p;

怎么看离128BYTE还很远,怎么就满了。。。

还有,我如果就定义一个 unsigned char a;他是不是放在片内ram里的? 也就是不加任何xdata 什么的关键字
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
amazing030
1楼-- · 2020-01-26 13:14
uchar xdata....
或者直接选择大模式编译
xivisi
2楼-- · 2020-01-26 13:43
small 模式为提高变量访问速度,尽量把全局变量,临时变量等放在片内RAM(data) 所以就不够  选 大模式 则优先放xdata
misszuoluo
3楼-- · 2020-01-26 18:55
最好不要有未调用的函数,否则此类函数也占用RAM,且不能释放,如果有最好先屏蔽掉,做其它的功能,等用的时候再解屏蔽
yaxi1984
4楼-- · 2020-01-26 22:45
连idata是哪个区域都没搞懂,就在乱用,哎…编译器都有意见了…
aidby2004
5楼-- · 2020-01-26 22:55
 精彩回答 2  元偷偷看……
xinbihui
6楼-- · 2020-01-27 01:20
学习了  帮朋友解决问题了

一周热门 更多>