一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FreeRTOS heap_5內(nèi)存分配方法介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-30 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

heap_5 內(nèi)存分配方法

heap_5 使用了和 heap_4 相同的合并算法,內(nèi)存管理實(shí)現(xiàn)起來基本相同,但是heap_5 允許內(nèi)存堆跨越多個(gè)不連續(xù)的內(nèi)存段。比如 STM32 的內(nèi)部 RAM 可以作為內(nèi)存堆,但是 STM32 內(nèi)部 RAM 比較小,遇到那些需要大容量 RAM 的應(yīng)用就不行了,如音視頻處理。不過STM32 可以外接 SRAM 甚至大容量的 SDRAM,如果使用 heap_4 的話你就只能在內(nèi)部 RAM 和外部SRAM 或 SDRAM 之間二選一了,使用 heap_5 的話就不存在這個(gè)問題,兩個(gè)都可以一起作為內(nèi)存堆來用。

如果使用 heap_5 的話,在調(diào)用 API 函數(shù)之前需要先調(diào)用函數(shù) vPortDefineHeapRegions ()來對內(nèi)存堆做初始化處理,在 vPortDefineHeapRegions()未執(zhí)行完之前禁止調(diào)用任何可能會調(diào)用pvPortMalloc()的 API 函數(shù)!比如創(chuàng)建任務(wù)、信號量、隊(duì)列等函數(shù)。函數(shù) vPortDefineHeapRegions()只有一個(gè)參數(shù),參數(shù)是一個(gè) HeapRegion_t 類型的數(shù)組,HeapRegion 為一個(gè)結(jié)構(gòu)體,此結(jié)構(gòu)體在portable.h 中有定義,定義如下:

typedefstructHeapRegion

{

uint8_t*pucStartAddress;//內(nèi)存塊的起始地址

size_txSizeInBytes;//內(nèi)存段大小

}HeapRegion_t;

使用 heap_5 的時(shí)候在一開始就應(yīng)該先調(diào)用函數(shù) vPortDefineHeapRegions()完成內(nèi)存堆的初始化!然后才能創(chuàng)建任務(wù)、信號量這些東西。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5150

    文章

    19665

    瀏覽量

    317452
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3123

    瀏覽量

    75252
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4380

    瀏覽量

    64849
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    493

    瀏覽量

    64316
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    FreeRTOS內(nèi)存機(jī)制詳解

    FreeRTOS是一種實(shí)時(shí)操作系統(tǒng),它提供了多種內(nèi)存分配方式,包括動態(tài)內(nèi)存分配和靜態(tài)內(nèi)存
    的頭像 發(fā)表于 12-31 16:49 ?3379次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>內(nèi)存</b>機(jī)制詳解

    第28章 FreeRTOS動態(tài)內(nèi)存管理

    28.4 實(shí)驗(yàn)例程說明28.5總結(jié)28.1動態(tài)內(nèi)存管理介紹 FreeRTOS支持5種動態(tài)內(nèi)存管理方案,分別通過文件
    發(fā)表于 09-11 07:15

    基于FreeRTOS內(nèi)存管理Heap_4.c的實(shí)現(xiàn)方法

    一下,哈哈。 既然是在FreeRTOS內(nèi)存管理Heap_4.c的基礎(chǔ)上稍稍修改的,那還是先介紹一下它的實(shí)現(xiàn)方法吧:以下為轉(zhuǎn)載內(nèi)容,原文鏈接:
    發(fā)表于 07-15 21:46

    為什么既然已經(jīng)用上了FreeRTOS,還要再用自己的內(nèi)存分配方案呢

    在閱讀某FreeRTOS音樂播放器例程時(shí),發(fā)現(xiàn)程序中使用了rt_alloc_mem函數(shù)來分配內(nèi)存,有點(diǎn)不懂為什么既然已經(jīng)用上了FreeRTOS,還要再用自己的
    發(fā)表于 07-18 08:00

    STM32內(nèi)存結(jié)構(gòu)介紹FreeRTOS內(nèi)存分配技巧

    STM32內(nèi)存結(jié)構(gòu)介紹FreeRTOS內(nèi)存分配技巧這是我第一次使用FreeRTOS構(gòu)建STM3
    發(fā)表于 02-14 07:38

    FreeRTOS代碼剖析之1:內(nèi)存管理Heap

    內(nèi)存管理是一個(gè)操作系統(tǒng)的重要組成部分之一,所有應(yīng)用程序都離不開操作系統(tǒng)的內(nèi)存管理。因此,在剖析FreeRTOS的內(nèi)核代碼之前,前對FreeRTOS
    發(fā)表于 02-09 05:25 ?1125次閱讀
    <b class='flag-5'>FreeRTOS</b>代碼剖析之1:<b class='flag-5'>內(nèi)存</b>管理<b class='flag-5'>Heap</b>

    FreeRTOS代碼剖析之2:內(nèi)存管理Heap

    FreeRTOS8.0.1這個(gè)版本中,一共有四個(gè)內(nèi)存堆模型。這一次講的就是第二個(gè)模型Heap_2.c。從一開始就可以看到注釋中對Heap_2的模型解釋:這是對pvPortMalloc
    發(fā)表于 02-09 05:28 ?1034次閱讀
    <b class='flag-5'>FreeRTOS</b>代碼剖析之2:<b class='flag-5'>內(nèi)存</b>管理<b class='flag-5'>Heap</b>

    FreeRTOS代碼剖析之3:內(nèi)存管理Heap

    FreeRTOS8.0.1的第三個(gè)模型Heap_3,可以說是最容易理解的一個(gè)內(nèi)存堆管理模型。因?yàn)樵谶@個(gè)模型里,FreeRTOS直接將標(biāo)準(zhǔn)C庫中的malloc()和free()進(jìn)行加工打
    發(fā)表于 02-09 05:30 ?550次閱讀

    韋東山freeRTOS系列教程之內(nèi)存管理(2)

    文章目錄 教程目錄 2.1 為什么要自己實(shí)現(xiàn)內(nèi)存管理 2.2 FreeRTOS5內(nèi)存管理方法 2.2.1
    發(fā)表于 11-29 16:58 ?1241次閱讀
    韋東山<b class='flag-5'>freeRTOS</b>系列教程之<b class='flag-5'>內(nèi)存</b>管理(2)

    STM32內(nèi)存結(jié)構(gòu)介紹,FreeRTOS內(nèi)存分配技巧,Stack_Size和Heap_Size大小設(shè)置

    STM32內(nèi)存結(jié)構(gòu)介紹FreeRTOS內(nèi)存分配技巧這是我第一次使用FreeRTOS構(gòu)建STM3
    發(fā)表于 12-09 13:51 ?18次下載
    STM32<b class='flag-5'>內(nèi)存</b>結(jié)構(gòu)<b class='flag-5'>介紹</b>,<b class='flag-5'>FreeRTOS</b><b class='flag-5'>內(nèi)存</b><b class='flag-5'>分配</b>技巧,Stack_Size和<b class='flag-5'>Heap</b>_Size大小設(shè)置

    heap_1內(nèi)存分配方法

    heap_1 內(nèi)存分配方法 動 態(tài) 內(nèi) 存 分 配 需 要 一 個(gè) 內(nèi) 存 堆 , FreeRTOS 中 的 內(nèi) 存 堆 為 ucHeap[] , 大 小 為
    的頭像 發(fā)表于 07-30 10:33 ?920次閱讀

    heap_2內(nèi)存的特性與分配方法

    heap_2 內(nèi)存分配方法 heap_2 提供了一個(gè)更好的分配算法,不像 heap_1那樣,
    的頭像 發(fā)表于 07-30 10:36 ?927次閱讀

    FreeRTOS heap_3內(nèi)存分配方法

    heap_3 內(nèi)存分配方法 這個(gè)分配方法是對標(biāo)準(zhǔn) C 中的函數(shù) malloc()和 free()的簡單封裝,FreeRTOS 對這兩個(gè)函數(shù)做
    的頭像 發(fā)表于 07-30 10:40 ?1043次閱讀
    <b class='flag-5'>FreeRTOS</b> <b class='flag-5'>heap</b>_3<b class='flag-5'>內(nèi)存</b><b class='flag-5'>分配方法</b>

    heap_4內(nèi)存分配方法介紹

    heap_4 內(nèi)存分配方法 heap_4 提供了一個(gè)最優(yōu)的匹配算法,不像 heap_2,heap
    的頭像 發(fā)表于 07-30 10:42 ?1346次閱讀

    如何自定義內(nèi)存控制器的設(shè)置

    FreeRTOS中自定義內(nèi)存控制器的設(shè)置,主要涉及到內(nèi)存分配策略的選擇和配置。FreeRTOS提供了多種
    的頭像 發(fā)表于 09-02 14:28 ?927次閱讀