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