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 的指針。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5198文章
20442瀏覽量
333964 -
內存
+關注
關注
9文章
3209瀏覽量
76357 -
FreeRTOS
+關注
關注
14文章
499瀏覽量
66916
發布評論請先 登錄
相關推薦
熱點推薦
基于FreeRTOS內存管理Heap_4.c的實現方法
一下,哈哈。 既然是在FreeRTOS內存管理Heap_4.c的基礎上稍稍修改的,那還是先介紹一下它的實現方法吧:以下為轉載內容,原文鏈接:http://xilinx.eetrend.
發表于 07-15 21:46
基于嵌入式裸機或RTOS系統下內存管理方法的探究
小故障調試能力:發生內存泄漏和踩踏時,可追溯位置,便于定位故障管理成本小:管理的代碼本身占用空間小,從空間復雜度申請和釋放效率高:時間復雜度FreeRTOS的heap_5算法相比 heap_4 支持地址不連續的兩個
發表于 12-17 07:40
FreeRTOS代碼剖析之4:內存管理Heap
FreeRTOS8.0.1內存管理的最后一個堆模型Heap_4,貌似是在這一個版本才有的。所以找到的說明幾乎沒有。代碼的開頭注釋也只是簡單地說了一下實現了pvPortMalloc
發表于 02-09 02:52
?621次閱讀
FreeRTOS代碼剖析之2:內存管理Heap
在FreeRTOS8.0.1這個版本中,一共有四個內存堆模型。這一次講的就是第二個模型Heap_2.c。從一開始就可以看到注釋中對Heap_2的模型解釋:這是對pvPortMalloc
發表于 02-09 05:28
?1350次閱讀
淺談內存分配方式 避免內存浪費問題
說到內存的分配方式,就不得不提連續分配方式。這種方式是指為一個用戶程序分配一個連續的內存空間,它曾被廣泛的用于20世紀60~70年代的OS中
發表于 03-03 11:22
?1793次閱讀
STM32內存結構介紹,FreeRTOS內存分配技巧,Stack_Size和Heap_Size大小設置
STM32內存結構介紹和FreeRTOS內存分配技巧這是我第一次使用FreeRTOS構建STM32的項目,踩了好些坑,又發現了我缺乏對于操作系統的內
發表于 12-09 13:51
?18次下載
heap_1內存分配方法
heap_1 內存分配方法 動 態 內 存 分 配 需 要 一 個 內 存 堆 , FreeRTOS 中 的 內 存 堆 為 ucHeap[] , 大 小 為
如何自定義內存控制器的設置
在FreeRTOS中自定義內存控制器的設置,主要涉及到內存分配策略的選擇和配置。FreeRTOS提供了多種內存分配策略,如
heap_4內存分配方法介紹
評論