用C语言编单片机程序,是不是因为变量过多而不能生成HEX文件

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:35:50
我用C语言编一单片机程序,用的是uVision3软件,
#include <stdio.h>
#include <AT89X52.H>
......
unsigned int mi,ms,css;
....
main()
{
....
}
程序写完可以正常调试
program size:data=103.1 xdata=0 code=5766
创建HEX文件“XXXX”...

但在 unsigned int mi,ms,css;里加一个变量时
就不可以生成HEX文件了
program size:data=105.1 xdata=0 code=5766
目标未产生。
请问这是什么原因,怎么来解决??
加一个变量后,编译错误提示
***ERROR L107:ADDRESS SPACE OVERFLOW "地址空间溢出"
SPACE:DATA "空间:数据"
SEGMENT:?DT?MAIN

没加变量编译好的HEX文件,反编译后看到首地址是0000,尾地址是17BB,容量应该是6075,应该不是试用版本或“2K限制”的版本吧?

回复6楼,只是在后面加一个变量,还没用到,就调试不了。

不可能是你说的原因,只要你单片机的存储空间足够,就可以定义变量。
你用的是不是试用版,有一些版本的编译软件是有限制的。
你可以换版本试一下。
鄙人曾有惨痛经历。

这几个变量和头文件没问题,最好把源代码贴出来,也许能发现问题。

你的#include <AT89X52.H>这个是不是有问题?好像没有见过这样的头文件

看下你加的那个变量干了什么,你没贴出来,看不出

加完这个变量后调试也正常吗?是否变量名非法?

你用的是“2K限制”的版本?