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

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

原因你自己都讲了,硬件设置里设置了data区的空间限制,硬件不够用了,自然编译通不过 换data区更大的单片机,或者考虑把数组放到xdata区去,再或者考虑使用外部flash存储数据

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

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

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

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

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

128Byte的data被用完了。 像这种uchar LED_1602[] =" ";//1602清屏,只读不写的前面加code uchar temp_AD[]= "Voltage . V";//电压显示初始化 uchar temp_18b20_h[]=" Set-H-Temp ";//温度上限初始化 这两个你写了的就不能加。

变量的定义通常有可以定义在几个地方: 1、定义在普通的RAM中,这种方式是不用对变量进行额外说明的,就是普通的定义变量 2、定义在ROM中,不过通常这种变量通常以静态数据形式出现,如一张图片的数据,程序里通常不会修改这种变量中的值,只是...

unsigned char a[][16]= { 0x08,0x18,0xC8,0x14,0x32,0x11,0xE8,0x08,0x0C,0xEA,0x08,0x88,0x88,0x08,0x08,0x08, 0x02,0x02,0x3F,0x02,0x02,0x02,0x7F,0x08,0x08,0x7F,0x08,0x08,0x08,0x08,0x0A,0x04,/*"待",0*/ 0x08,0x08,0x08,0x7F,0x08,0x08,...

sourceinsight

网站地图

All rights reserved Powered by www.ctrt.net

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