參考下圖stm32l475的參考手冊:
MSP指向地址基地址為0x20000000的內存處。參考STM32L475的memory map可知MSP指向的是SRAM的一塊地址。並且由上面的編譯信息可知,偏移量是0x480, 正好等於 RW-data + ZI-data 的值。
參考下圖的內存模型:
可知MSP指向的是內存中bss段的最上方。
影響ZI-data值的因素:
影響ZI-data值的因素:
一是Stack_Size的值; 注意,Stack_Size增加1,ZI-data會增加4,因為當前是32位處理器。
二是Heap_Size的值(這個有前提條件:必須在程序中確確實實使用了malloc,否則會被編譯器優化,不會把單片機啟動匯編文件設置的Heap_Size計算入ZI-data。在上圖中,程序中不使用malloc,ZI-data的值是1192。使用malloc申請了10個int對應的內存后,ZI-data多占用了512字節的內存空間。 這512字節的內存空間恰好就是我們設置的0x200大小的Heap_Size。)
其他驗證渠道: