Keil生成的代碼大小計算


用keil編譯程序后會打印對應的內存分配信息(單位:B 1024B=1KB

   

Program Size: Code=10304 RO-data=508 RW-data=92 ZI-data=9828

   

Total RO Size (Code + RO Data) 10812 ( 10.5 kB)

Total RW(RAM) Size (RW Data + ZI Data) 9920 ( 9.68 kB)

Total ROM(Flash) Size (Code + RO Data + RW Data) 10904 ( 10.6 kB)

   

(1)Code中不僅僅包含了代碼的大小。其中還包括了inline data(內聯數據),比如literal pools(文字池)short strings(短字符串)

   

(2)RO-data: 表示程序中的只讀常量數據。比如const類型的數據 (inline data之外的只讀數據)

   

(3)RW-data: 表示可讀寫變量的大小,也就是說是程序中已經初始化的變量大小。

   

(4)ZI-data: 表示程序中未初始化的變量大小。就是程序中已經定義但是初始化值為0或者

是沒有初始化賦值的變量(編譯器會默認把沒有賦值的變量自動賦值為0)

   

下面對幾個數值的關系進行說明

   

RAM size: 程序運行時所需要的大小空間為 RW-data+ ZI-data

   

  ROM(FLASH) size:  也就是下載到單片機FLASH中的數據為  Code +RO-data +RW-data 和的大小。

  為什么不把ZI-data 也下載進去呢? 其實是沒有必要的,這是浪費空間,只要程序一上電運

  行就會把ZI-data 自動清0。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM