www.ctrt.net > 整理程序.C(249): Error C249: 'DATA': SEGMENT TO...

整理程序.C(249): Error C249: 'DATA': SEGMENT TO...

例如 : unsigned char BIt[][32]={.......} 这样较多的数,就需要这样做 unsigned char code .... 加入code区

说明你程序DATA区空间已超过指定单片机的DATA区空间,可以用keil C编译的时候压缩压缩一下,keil C菜单里有一个可以设置的,选最高级(好像是7级)就可以就最大空间压缩

LCD12864_TEST.C(177): error C249: 'DATA': SEGMENT TOO LARGE177行是程序的结尾,用的是Keil,能编译时程序的大小是data:93.0,code:985,是不是Data太大了...

如果你定义的数组不用更改就用 uchar code XX[10]= 根据你数据的用处,你可以有以下几种选择: data:直接寻址的片内RAM区低128B(00H~7FH) bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问 idata:单片机间接访问的片内RAM区,...

内存不足造成的,变量定义的太多,你可以讲部分不更改值得变量前加code,使其在ROM中,腾出一部分空间。

这个错误字面的意思是你的变量太多,塞不进data块里面。 你应当将一部分全局变量分配到idata块中。或者看看能否将部分全局变量换为局部变量。

数据段的内容过多可能导致内存溢出了,所以编译失败。

是不是数组定义多了,数组定义多了很容易出现这问题,你可以试着删除一部分程序再编译试试,确定问题改良一下程序

看你什么单片机了,如果是52单片机,可以将一部分变量声明成 idata,即用高128Byte内部RAM, 如果说51单片机内部只有128Byte RAM,只有优化代码,少用全局变量,常量数据表格前一定加CODE修饰,让其存入程序存储器,不要浪费宝贵的RAM资源 如果...

如果你定义的数组不用更改就用 uchar code XX[10]=。。。。。。

网站地图

All rights reserved Powered by www.ctrt.net

copyright ©right 2010-2021。
www.ctrt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com