Keil 編譯成功後會在 Build Output 事窗出現一條訊息:
Program Size: Code=5124 RO-data=696 RW-data=92 ZI-data=22316 
這條訊息可以計算出所使用的 Code Size 。

Code:程式碼所佔的大小。
RO-data :程式中定義的常量 (Read Only)
RW-data:程式中有初始值的變數 (Read/Write)
ZI-data   :程式中沒初始值的變數 (Zero Initialize)

Code、RO-data、RW-data:這三個類型內容不可因斷電資料就消失,所以需要存在ROM裡。
RW-data、ZI-data:這兩個類型變數需在程式執行時可隨時改變用於計算,所以需在程式執行時放置在RAM裡。

所以:
ROM (Flash) Size = Code + RO-data + RW-data。
RAM Size = RW-data + ZI-data。


在編譯程式後,Keil會顯示編譯相關訊息:

Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116

其參數意義如下:

Code

程式碼佔用的空間。

RO-data

只讀常量的大小,如const。

RW-data(Read Write)

初始化了的可讀寫變量的大小。

ZI-data(Zero Initialize)

沒有初始化的可讀寫變量的大小。ZI-data不會被算做程式碼裡因為不會被初始化。

Note:大小皆為Byte

燒寫的時候,FLASH中被佔用的空間為:Code+(RO-data)+(RW-data)

程序運行的時候,晶片內部SRAM使用的空間為:(RW-data)+(ZI-data)

arrow
arrow
    文章標籤
    Keil Program Size
    全站熱搜

    JL8051 發表在 痞客邦 留言(0) 人氣()