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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

STM32F103RCT6项目RAM&ROM占用分析

發布時間:2023/12/31 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 STM32F103RCT6项目RAM&ROM占用分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STM32F103RCT6項目RAM&ROM占用分析

查閱DataSheet可知STM32F103RCT6屬于大容量產品,內含256KB的Flash,48KB的SRAM

之前關于RAM&ROM的空間利用根本沒有考慮,但在移植FreeRTOS和jasson庫之后,在任務中調用Json_loads()時,包括用malloc申請空間時偶爾會出現Hardware fault。如此看來,合理的空間分配非常有必要!

#ROM

手冊中的大容量產品以512KB的內部Flash為例(256KB同理),它主要分為三個部分:主存儲器、信息塊和一些相關寄存器

我們說的Flash大小就是指主存儲器的大小,2KB為一頁;

信息塊中存儲的內容是用于串口IAP程序下載方式的BootLoader,本項目用不到所以暫時不研究;

?

下載進去的代碼就存儲在256KB的主存儲塊中,具體代碼占用多少字節可以在keil編譯完成之后在Output窗口中查看:

以這張圖為例,ROM占用的空間大概=Code + RO-data + RW-data,不超過32KB

相較于F103RCT6 256KB的ROM,空間還是很充裕的

#RAM

相比于ROM充裕的空間,RAM的48KB在移植FreeRTOS后就比較緊湊了

Build Output窗口有RW-data和ZI-data兩個Size

RW-data是初始化為非0的數據占用空間,程序靜止時這些數據被存放在ROM,程序運行時被加載到RAM

ZI-data是初始化為0的數據占用空間,靜止時不占用空間,程序運行時被加載到RAM

本項目中RW-data+ZI-data共占用小于32KB的RAM

具體分配到以下部分:

1 內存管理

STM32沒有MMU,我們只能自己實現一個簡易的內存管理來動態申請空間(不然只定義數組這得浪費多大的空間),其實也就是定義一個指針來使用malloc()和free()申請和釋放連續的空間

根據正點原子例程中的定義,內存參數設定為:

//內存參數設定.
#define MEM_BLOCK_SIZE		        32  	         	    //內存塊大小為32B,內存分配時的最小單元
#define MEM_MAX_SIZE			10*1024  	            //最大管理內存10KB
#define MEM_ALLOC_TABLE_SIZE	MEM_MAX_SIZE/MEM_BLOCK_SIZE 	    //內存表大小

內存管理部分占用的RAM總共大小=MEM_MAX_SIZE+MEM_ALLOC_TABLE_SIZE*2(MEM_ALLOC_TABLE_SIZE*2是因為內存管理狀態表是uint_16類型的)

此例程中共分配10KB+640B,這是內存管理部分占用的RAM

2 FreeRTOS

FreeRTOSConfig.h文件中的configTOTAL_HEAP_SIZE定義了FreeRTOS分配的最大堆

configTOTAL_HEAP_SIZE宏定義的單位是Byte,但任務創建時的單位是size_t(4B)

#define configTOTAL_HEAP_SIZE                  ((size_t)8*1024)  

共計8KB

3 堆棧空間

啟動文件中配置了局部變量、遞歸調用等使用的棧空間,以及malloc動態內存申請使用的堆空間

實測jasson庫中的json_loads()的調用會占用較大的堆空間,我們自己進行動態申請時最好使用實現的內存管理中的內存分配函數mymalloc()

Stack_Size     EQU     0x400
Heap_Size      EQU     0x1000

共計5KB

4 初值0或非0的可讀寫數據

在map文件中可以看到每個源文件中這部分占用的RAM大小

總結

以上是生活随笔為你收集整理的STM32F103RCT6项目RAM&ROM占用分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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