2017-08-21 66 views
1

你好是有可能估計的RAM和ROM從如何估計從RAM ROM的使用(BSS十進制十六文本數據)

text  data  bss  dec  hex  filename 
24823  0  920 25743 648f (TOTALS) 

使用的尺寸我的一些博客閱讀「RAM =數據+ BSS」那是對的嗎??。 目標硬件ESP8266(ESP 12)

+0

ROM?我想你應該添加一個目標平臺(至少)來澄清。 –

+0

在一般情況下,這是**不正確。即使假設你的目標是一些嵌入式平臺(所以你的'文本',實際的代碼,最終在ROM /閃存),你的代碼仍然需要**至少**一些堆棧空間。您必須在運行時嵌套最深處的函數處添加堆棧幀的大小。然後,如果代碼使用'malloc()',那麼您也必須考慮這一點。 –

+3

查看@tcrosley在此線程中給出的答案 https://electronics.stackexchange.com/questions/237740/what-resides-in-the-different-memory-types-of-a-microcontroller/237759 – Mahi

回答

0

這可能是東西的uC :)

差不多 - 但你忘了棧和堆。這些值,你可以從你的鏈接腳本

例如:

_Min_Heap_Size = 0x300;  /* required amount of heap */ 
_Min_Stack_Size = 0x500; /* required amount of stack */ 
0

在Keil的IDE有寫一個包含有關程序的內存使用信息上市(圖)文件的項目選擇。例如:

Image component sizes 

Code (inc. data) RO Data RW Data ZI Data  Debug Object Name 
    28   10   0   0   0   0 app_error.o 

... 

Code (inc. data) RO Data RW Data ZI Data  Debug 

22580  2194  388  232  3904   0 Grand Totals 
22580  2194  388  232  3904   0 ELF Image Totals 
22580  2194  388  232   0   0 ROM Totals 

========================================= =====================================

Total RO Size (Code + RO Data)    22968 ( 22.43kB) 
Total RW Size (RW Data + ZI Data)    4136 ( 4.04kB) 
Total ROM Size (Code + RO Data + RW Data)  23200 ( 22.66kB) 

Visual Studio也有這樣一個選項。