STM32程序占用的内存容量计算
生活随笔
收集整理的這篇文章主要介紹了
STM32程序占用的内存容量计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM32中程序占用內存容量
Keil MDK下Code, RO-data,RW-data,ZI-data這幾個段:
- Code存儲程序代碼。
- RO-data存儲const常量和指令。
- RW-data存儲初始化值不為0的全局變量。
- ZI-data存儲未初始化的全局變量或初始化值為0的全局變量。
占用的Flash=Code + RO Data + RW Data;
運行消耗的最大RAM= RW-data+ZI-data;
這個是MDK編譯之后能夠得到的每個段的大小,例如下圖Program Size 中的Code R0?RW ZI
可以計算出占用的FLASH = 34456+456+172=34.26kB,占用的RAM=172+18908=18.63kB
STM32F103芯片的內存資源如下:
那么堆棧是如何分配的呢,堆棧的內存占用就是在上面RAM分配給RW-data+ZI-data之后的地址開始分配。
堆:編譯器調用動態內存分配的內存區域。
棧:程序運行的時候局部變量的地方,先進后出,這種結構適合程序調用,所以局部變量用數組太大了都有可能造成棧溢出
堆棧溢出容易導致HaltFault。
堆棧大小的設置在啟動文件start_stmf103xb.s中(以STM32F103為例):
總結
以上是生活随笔為你收集整理的STM32程序占用的内存容量计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue 滑动置顶功能_VUE 实现滚动监
- 下一篇: 连接maven_如何在Eclipse中使