STM32 的RAM跑到哪裏去了

本文主題是是 map文件的分析 主要是查看RAM使用情況分析,RAM到底跑到哪裏去了

參考文章:參考文章1

                   map文件分析

截圖

這裏是沒有使用堆得圖下圖中沒有了mvars.o的8個字節c,這裏說明mvars.o內部定義了全局或者是靜態變量使用了8個字節

STM32的RAM區是以 0x200000000開始的

1、我的程序在uart.c中定義了一個全局變量valid_data[1024*50]數組

2、棧定義了0x400=1024Byte個空間

 

3、堆定義了0x200=512Btye個空間 {其中如果整個工程沒有使用malloc家族的成員都不會產生這512個字節的空間}

下圖是使用了堆

下圖是沒有使用堆

其實被軟件優化了,沒有使用到堆,就被編譯器優化了

 

4、main文件中定義了 全局變量 成合計68個字節

5、stm32f1xx_hal.c文件定義了3個uint32_t 全局變量