日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32程序占用的内存容量计算

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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程序占用的内存容量计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。