㈠ 用keil編譯51程序時,下面的Program Size: data=47.0 xdata=0 code=3092,是什麼意思各個值允許最大是多少
data=47.0 編譯器編譯後,程序總共需要佔用47位元組的片內RAM空間。注意這個大小僅僅是累加而已,並未考慮各個塊之間的空隙,也就是說實際佔用的RAM空間可能多於此數值。
xdata=0 程序未使用片外RAM(映射)空間
code=3092 編譯器編譯出的各個代碼塊總共大小為3092位元組。與前面的data一樣,由於各個塊之間可能存在空隙,因此實際生成的代碼大小可能多於此數值。
㈡ keil編譯後code的大小問題
這個很簡單,首先先說最後一條,你涉及到了小數,也就是浮點數的計算,在所有的單片機中,有的帶有浮點數計算,比如高級的ARM,有些不帶,凡是不帶浮點數硬體計算模塊的,都要通過語言來處理,浮點數的計算是非常復雜的,所以,最後一個代碼最大,當然,結果也最精確。
再說第一個,為什麼會最小,因為單片機會先計算 625/10000,你認為結果是多少?0.0625?
錯,如果你的res是浮點型的,那麼,計算的結果可能是 0.0625,如果你的res是整形的,那麼,計算的結果是0,而這里,我敢肯定,你的res是整形的,相當於再計算 tem = res*0,結果是0,也就是說,你第一條是個錯誤的,得到的結果恆0
而第2條語句,先是計算 res*625,再去計算除法,這樣,不會出現常數結果,所以耗時比第一條語句大。
如果你的結果要求比較准確,我建議你用第三條語句,雖然費時間。
另外,你完全可以用查表法來完成,而不必要用浮點數計算,畢竟51單片機的能力比較差。
㈢ 用Keil編譯程序時數據段過長怎麼辦
程序DATA區空間已超過指定單片機的DATA區空間,可以用keil C編譯的時候壓縮。
㈣ keil4編譯後的程序大小怎麼確定啊Program Size: data=27.0 xdata=0 code=3112。可在電腦查看卻是8.84K
編譯後看代碼大小。
KEIL最下面的一欄裡面。
例如:
Program Size: data=79.0 xdata=31 code=7582
code後面 就是代碼的大小。
希望採納
㈤ STM32 KEIL中 如何看生成編譯文件的大小,是看CODE嗎,它顯示的是燒到晶元里的大小嗎
是看Code。不過Code的大小並不一定等於燒到晶元里的大小。