男人的天堂AV亚洲一区2区|精品乱码久久久久久久一|国产成人综合久久精品推不卡|99国产精品99久久|国产精品亚洲v三区防屏蔽|a级黄色大片在线观看视频男男|在线播放视频国产区中文|国产三级激情在线视频

JNH官网

【ARM】RTX5 內存分配方式-2023

1、 文檔目標

解決RTX5 內存分配方式


2、 問題場景

使用 RTX5 進行內存分配方式選擇。


3、軟硬件環境

1 軟件版本:Keil MDK 5.38a

2 電腦環境:Window 10


4、RTX5 內存分配的三種方式

RTX5為對象提供了三種不同的內存分配方法


1 ?Global Memory Pool(全局內存池)。全局內存池分配內存區域中的所有對象。這種內存分配方法是RTX5的默認配置。


圖 1


在System Configuration中設置Global Dynamic Memory size;(RTX_Config.h)


當內存池沒有提供足夠的內存時,對象的創建將失敗,相關的osObjectNew()函數將返回NULL。


2? Object-specific Memory Pools(特定對象的內存池)


特定對象的內存池通過為每個對象類型提供專用的固定大小內存管理來避免內存碎片。這種類型的內存池是完全時間確定的,這意味著對象的創建和銷毀總是需要相同的固定時間。由于固定大小的內存池是特定于對象類型的,因此可以簡化內存不足情況的處理。


圖 2


為每種對象類型選擇性地啟用特定于對象的內存池,例如:使用RTX配置文件的互斥對象或線程:

1)在線程配置中為線程對象啟用。

2)在計時器對象的計時器配置中啟用。

3)在事件對象的事件標志配置中啟用。

4)在互斥對象的互斥配置中啟用。

5)在信號量的信號量配置中啟用。

6)已在內存池的內存池配置中啟用。

7)在消息隊列配置中為消息對象啟用。


當內存池沒有提供足夠的內存時,對象的創建將失敗,相關的osObjectNew()函數將返回NULL。


3? Static Object Memory(靜態對象內存)


與動態內存分配相反,靜態內存分配需要在對象編譯時分配內存。


圖 3


靜態內存分配可以通過在創建對象時使用屬性提供用戶定義的內存來實現。

jnh官網 jnh官網 jnh官網 jnh官網 金年會 金年會 金年會 金年會