heap_4 內存分配方法
heap_4 提供了一個最優的匹配算法,不像 heap_2,heap_4 會將內存碎片合并成一個大的可用內存塊,它提供了內存塊合并算法。內存堆為 ucHeap[],大小同樣為 configTOTAL_HEAP_SIZE。可以通過函數 xPortGetFreeHeapSize()來獲取剩余的內存大小。
heap_4 特性如下:
1、可以用在那些需要重復創建和刪除任務、隊列、信號量和互斥信號量等的應用中。
2、不會像 heap_2 那樣產生嚴重的內存碎片,即使分配的內存大小是隨機的。
3、具有不確定性,但是遠比 C 標準庫中的 malloc()和 free()效率高。
heap_4 非常適合于那些需要直接調用函數 pvPortMalloc()和 vPortFree()來申請和釋放內存 的應用。
heap_4 也使用鏈表結構來管理空閑內存塊,鏈表結構體與 heap_2 一樣。heap_4 也定義了兩個局部靜態變量 xStart 和 pxEnd 來表示鏈表頭和尾,其中 pxEnd 是指向 BlockLink_t 的指針。
-
嵌入式
+關注
關注
5068文章
19017瀏覽量
303262 -
內存
+關注
關注
8文章
3002瀏覽量
73883 -
FreeRTOS
+關注
關注
12文章
483瀏覽量
62006
發布評論請先 登錄
相關推薦
評論