keil960编译变大
Ⅰ keil中数组太大,编译出错,该怎么解决
如果是51单片机的话,因为RAM资源很小,所以要尽量节约每一个字节RAM,如果是常量数组就定义成常量,例如 code char datastr[2]={1,2};
如果有外部RAM,则定义到XRAM中,例如:xdata char datastr[2];
能用BIT就不要用char,能用char 就不要用Int。
Ⅱ keil里面data怎么会变大
这是因为,你删除的程序中,有几行是函数的调用,被你删除后,这些函数就只有函数体,却没有调用了(从编译信息看,是memory_clear_with_font_bgcolor)。当这个函数中有局部变量时,由于没被调用过,所以KEIL无法进行变量的优化,最后只能把局部变量保存下来,反而多占用了空间。
解决办法:1、把不用函数删掉或注释掉
2、写成这样,伪调用:
a = 1;
if(a==0)
{
memory_clear_with_font_bgcolor();//把从不调用的函数放这里
}
Ⅲ 我用KEIL编译程序时,我的main主程序为空,然后我再加了一些c文件,为什么编译连接后CODE也会很大
编译不只是编译main函数,你工程里面所有的.c文件里面的代码,只不过执行不到而已。不过没有执行到的函数一般会告警的,除非你把告警关了(选项里面有个告警级别,级别0就是关了)。连接程序只是把所有的目标程序安排适当的地址而已。
Ⅳ keil uvision3 hex怎么转变为bin后变大了
应该是你的工具用错了,HEX文件是在代码之后还带有位置信息,而BIN文件只有代码,所以HEX必定比BIN大.
一般在编译的时候,项目目录下有个BIN文件同时产生的,就是那个文件.
如果只有HEX,那就到网上下一个HEX2BIN的小工具好了.
Ⅳ keil uvision4编译部分(就是下边那个对错判断部分变的和程序部分重叠了)的地方变成大屏了怎么办
拖动对话框,会出现几个小图标,把对话框放到图标上就可以切换位置了。keil uvision4的窗口移动是很人性化的,你试试看吧。
Ⅵ 用Keil编译程序时数据段过长怎么办
程序DATA区空间已超过指定单片机的DATA区空间,可以用keil C编译的时候压缩。
Ⅶ keil编译显示程序太大~编译不了怎么办
这种情况已经有一阵时间了,KEIL显示破解成功,其实是假的。现在我的做法是拿一个大程序来编译,如果编译通过,那就是破解成功,如果还有限制,那就继续破。我以前的KEIL
C251破了半天,算了N个码,个个都显示已成功,可实际上直到N+1次才编译通过,我一同事更倒霉,整整算了3天。所以,破这玩意没技术,就俩字,坚持。
Ⅷ keil中编译时代码过大导致工程失败怎么办
各种MCU的代码容量都是有限的,例如,89c51的容量是4K,如果你的程序编译时超过了4K,那编译器就不会再往下走了,而是出现target not created,解决办法就是换块引脚兼容的MCU,例如89C51换成89C52,容量变8K,就可以解决问题了
Ⅸ 这个程序用keil编译后就不能运行了,而且hex文件也会变大,怎么回事啊,求高手给我指点一下吧谢谢
不编译直接下载就好用,绝不可能!
你没有搞清楚什么是下载吧,好用是什么意思,是什么好用啊,单片机不下载程序能好用,说梦话吧,这是源程序,怎么能直接下载,你下载的是什么,大概是原有的HEX代码文件吗,如果不是下载HEX代码文件,就是根本就不明白什么叫下载。
Ⅹ 用GCC编译完的程序要比用keil编译完的大,请问是为什么
很正常啊,不同编译器的编译算法不一样。对于同样的语句,如何转化为汇编,不同的公司会有不同的理解。
呵呵,尽信书不如无书