亚洲国产成人av在线观看,777米奇色狠狠狠888影视,一二三四在线视频观看社区,小荡货奶真大水真多紧视频

【ARM】RTX5 內(nèi)存分配方式-2023

1、 文檔目標

解決RTX5 內(nèi)存分配方式


2、 問題場景

使用 RTX5 進行內(nèi)存分配方式選擇。


3、軟硬件環(huán)境

1 軟件版本:Keil MDK 5.38a

2 電腦環(huán)境:Window 10


4、RTX5 內(nèi)存分配的三種方式

RTX5為對象提供了三種不同的內(nèi)存分配方法


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


圖 1


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


當內(nèi)存池沒有提供足夠的內(nèi)存時,對象的創(chuàng)建將失敗,相關(guān)的osObjectNew()函數(shù)將返回NULL。


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


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


圖 2


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

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

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

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

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

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

6)已在內(nèi)存池的內(nèi)存池配置中啟用。

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


當內(nèi)存池沒有提供足夠的內(nèi)存時,對象的創(chuàng)建將失敗,相關(guān)的osObjectNew()函數(shù)將返回NULL。


3? Static Object Memory(靜態(tài)對象內(nèi)存)


與動態(tài)內(nèi)存分配相反,靜態(tài)內(nèi)存分配需要在對象編譯時分配內(nèi)存。


圖 3


靜態(tài)內(nèi)存分配可以通過在創(chuàng)建對象時使用屬性提供用戶定義的內(nèi)存來實現(xiàn)。