A. 用Keil编译程序时数据段过长怎么办
程序DATA区空间已超过指定单片机的DATA区空间,可以用keil C编译的时候压缩。
B. keil4编译后的程序大小怎么确定啊Program Size: data=27.0 xdata=0 code=3112。可在电脑查看却是8.84K
编译后看代码大小。
KEIL最下面的一栏里面。
例如:
Program Size: data=79.0 xdata=31 code=7582
code后面 就是代码的大小。
希望采纳
C. STM32 KEIL中 如何看生成编译文件的大小,是看CODE吗,它显示的是烧到芯片里的大小吗
是看Code。不过Code的大小并不一定等于烧到芯片里的大小。
D. keil3缩短hex code的方法和技巧
用C语言的话把KEIL的优化等级调到9级,默认是8级,最好是编写和调试同步进行,这样确保程序的可调控性吧,对后续代码维护有很大的帮助。
关于swith和指针语句,可以去看KEIL的英文版帮助,或者51bbs发布的KEIL中文帮助手册,比较全面的,理解了帮助文件后,再从KEIL中对C程序看相应的汇编代码,加深理解。
比较通用的办法,就是用不同的C语句实现相同的功能,再通过汇编窗口观察生成的汇编代码做对比,找到最少量的汇编代码生成方式,以后再用C写程序的时候就按你找到的这个方式写。
E. keil编译后code的大小问题
这个很简单,首先先说最后一条,你涉及到了小数,也就是浮点数的计算,在所有的单片机中,有的带有浮点数计算,比如高级的ARM,有些不带,凡是不带浮点数硬件计算模块的,都要通过语言来处理,浮点数的计算是非常复杂的,所以,最后一个代码最大,当然,结果也最精确。
再说第一个,为什么会最小,因为单片机会先计算 625/10000,你认为结果是多少?0.0625?
错,如果你的res是浮点型的,那么,计算的结果可能是 0.0625,如果你的res是整形的,那么,计算的结果是0,而这里,我敢肯定,你的res是整形的,相当于再计算 tem = res*0,结果是0,也就是说,你第一条是个错误的,得到的结果恒0
而第2条语句,先是计算 res*625,再去计算除法,这样,不会出现常数结果,所以耗时比第一条语句大。
如果你的结果要求比较准确,我建议你用第三条语句,虽然费时间。
另外,你完全可以用查表法来完成,而不必要用浮点数计算,毕竟51单片机的能力比较差。
F. keil编译显示程序太大~编译不了怎么办
这种情况已经有一阵时间了,KEIL显示破解成功,其实是假的。现在我的做法是拿一个大程序来编译,如果编译通过,那就是破解成功,如果还有限制,那就继续破。我以前的KEIL C251破了半天,算了N个码,个个都显示已成功,可实际上直到N+1次才编译通过,我一同事更倒霉,整整算了3天。所以,破这玩意没技术,就俩字,坚持。
G. keil C51语言编程如何缩减编译代码长度
这个问题真不是几句话能说清楚的。
主要应做到以下几点:
少用库函数,少用float,int 型变量,少用case语句,尽量写成for循环结构,程序采用模块化设计,优化程序,简化程序,养成良好的编程习惯。后四项其实很难做到。keil中C51标签下的程序代码优化级选项,选9级。
H. keil MDK编译时,怎么显示代码大小
Build之后 会有提示(Keil 5后面的版本 只有第一次编译才有提示)。
Keil系列教材:
http://blog.csdn.net/column/details/13472.html