本文主題是是 map文件的分析 主要是查看RAM使用情況分析,RAM到底跑到哪裏去了
參考文章:參考文章1
這裏是沒有使用堆得圖下圖中沒有了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 全局變量