哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

關(guān)于FreeRTOS內(nèi)存分配多少才合適

黃工的嵌入式技術(shù)圈 ? 來源:網(wǎng)站整理 ? 2020-03-06 15:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一位朋友問:黃哥,我剛學(xué)FreeRTOS不久,我想問一下,創(chuàng)建一個任務(wù),堆棧分配多少才合適呢?

1寫在前面

這個關(guān)于FreeRTOS操作系統(tǒng)內(nèi)存分配的問題,其實(shí)只要大概明白內(nèi)存管理,以及資源分配的一些知識,相信就不會存在這種疑惑。

操作系統(tǒng)內(nèi)存分配如果深入分析的話,知識蠻多的,本文只針對開篇的問題展開一些相關(guān)知識的講解。

2

操作系統(tǒng)內(nèi)存管理

FreeRTOS提供多種內(nèi)存管理方式,在MemMang文件夾下有5個文件:heap_1到heap_5。

heap,其實(shí)是堆的意思,換句話說FrreRTOS系統(tǒng)的內(nèi)存就是通過分配堆來實(shí)現(xiàn)的。(內(nèi)存管理的知識較多,大家有空可以網(wǎng)上多了解一下,這里不講述)

而目前FreeRTOS常用的就是heap_4這種內(nèi)存管理方式:通過事先為系統(tǒng)資源分配一個堆(數(shù)組),如下圖:

1.可配置在外部,或在heap_4中分配堆;

2.通過FreeRTOSConfig.h配置堆的大小,注意大小單位為字節(jié)。

提示:heap_1至heap_5其他管理方式其實(shí)還是有很大差別,這里不講述(后面抽時間再講述),具體可以參看:

https://www.freertos.org/a00111.html

3

系統(tǒng)資源內(nèi)存分配

FreeRTOS中系統(tǒng)為各資源分配內(nèi)存,使用heap_4內(nèi)存管理方式就是在創(chuàng)建之初就分配一段內(nèi)存。

而分配的這個資源就是從整個系統(tǒng)堆ucHeap劃分了一塊出來。我們創(chuàng)建一個任務(wù),分配堆棧大小的原理,進(jìn)一步查看代碼:

提示:這個創(chuàng)建任務(wù)大小為我們填寫數(shù)值x4字節(jié)。比如,填寫128,其實(shí)分配的空間為512Byte.(很多人以為單位是字節(jié),發(fā)現(xiàn)多創(chuàng)建幾個任務(wù),內(nèi)存就分配失敗了)

再比如,創(chuàng)建隊(duì)列:

參數(shù)1:隊(duì)列長度,也就是隊(duì)列的數(shù)量;

參數(shù)2:隊(duì)列大小,也就是一個隊(duì)列有多少字節(jié);

隊(duì)列分配的內(nèi)存大小就是:參數(shù)1x參數(shù)2 (單位Byte)。

這里就舉上面兩個例子,重點(diǎn)就是強(qiáng)調(diào):分配內(nèi)存的單位是字節(jié)(Byte),還是字(4Byte)。

4

哪些變量會占用任務(wù)內(nèi)存

回到最開始的問題:一個任務(wù)需要分配多大內(nèi)存?

任務(wù)堆棧就是用于存放該任務(wù)的變量數(shù)據(jù)(也就是程序在執(zhí)行其他任務(wù)時,需要把該任務(wù)變量數(shù)據(jù)保存起來)。

那么,一個任務(wù)有哪些數(shù)據(jù)才算是“變量數(shù)據(jù)”呢?

一個是任務(wù)自身需要的內(nèi)存空間,F(xiàn)reeROS任務(wù)自身(如TCB)需要的空間好像就七八十個字節(jié)(我之前計(jì)算過,記不得很清楚了)。

二是你自己應(yīng)用程序臨時變量(如下圖),這個就是由你自己計(jì)算,或者估計(jì)大小。

許多朋友一上來直接分配堆棧的大小為256(x4字節(jié)),或512(x4字節(jié)),但自己應(yīng)用程序臨時變量并不多。

如果你應(yīng)用程序就幾個字節(jié)的臨時變量,分配64(x4字節(jié))都完全夠你用。

提示:這個“臨時變量”包含你應(yīng)用程序調(diào)用的函數(shù)所分配的變量。

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

    關(guān)注

    9

    文章

    3231

    瀏覽量

    76498
  • 堆棧
    +關(guān)注

    關(guān)注

    0

    文章

    183

    瀏覽量

    20571
  • FreeRTOS
    +關(guān)注

    關(guān)注

    14

    文章

    499

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    LuatOS的內(nèi)存分配機(jī)制

    不同 LuatOS 硬件平臺在內(nèi)存布局上存在差異,Lua 運(yùn)行內(nèi)存、系統(tǒng)內(nèi)存與 PSRAM 擴(kuò)展內(nèi)存分配方式各有區(qū)別。部分型號將系統(tǒng)與腳本
    的頭像 發(fā)表于 04-16 12:37 ?68次閱讀
    LuatOS的<b class='flag-5'>內(nèi)存</b><b class='flag-5'>分配</b>機(jī)制

    FreeRTOS入門資料

    性和可靠性。 FreeRTOS是一個迷你的實(shí)時操作系統(tǒng)內(nèi)核。作為一個輕量級的操作系統(tǒng),功能包括:任務(wù)管理、時間管理、信號量、消息隊(duì)列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)程等,可基本滿足較小系統(tǒng)的需要
    發(fā)表于 01-23 06:38

    keil中c語言的動態(tài)分配內(nèi)存

    在C程序中,通常將內(nèi)存劃分為以下六個區(qū)域: (1)內(nèi)核區(qū)域。這塊區(qū)域是操作系統(tǒng)的,用戶不能使用。 (2)棧區(qū)。主要用于存放運(yùn)行函數(shù)而分配的局部變量、函數(shù)參數(shù)、返回?cái)?shù)據(jù)、返回地址等。棧內(nèi)存分配
    發(fā)表于 01-21 06:04

    【「Linux 設(shè)備驅(qū)動開發(fā)(第 2 版)」閱讀體驗(yàn)】+讀深入理解Linux內(nèi)核內(nèi)存分配

    每個內(nèi)存地址是虛擬的,不是直接指向RAM中的任何地址。當(dāng)用戶訪問內(nèi)存中的存儲單元時,都會進(jìn)行地址轉(zhuǎn)換以匹配相應(yīng)的物理內(nèi)存。書籍的第10章討論了五個主題,對Linux內(nèi)核內(nèi)存
    發(fā)表于 01-16 20:05

    嵌入式系統(tǒng)中,動態(tài)分配內(nèi)存可能發(fā)生的問題是什么?

    盡管不像非嵌入式計(jì)算機(jī)那么常見,嵌入式系統(tǒng)還是有從堆(heap)中動態(tài)分配內(nèi)存的過程的。 那么嵌入式系統(tǒng)中,動態(tài)分配內(nèi)存可能發(fā)生的問題是什么? 這 里,我期望應(yīng)試者能提到
    發(fā)表于 12-22 09:42

    FreeRTOS和uC/OS-II的功能特性

    /事件標(biāo)志替代)。 內(nèi)存管理: 提供多種內(nèi)存分配方案(heap_1 到 heap_5)供選擇,開發(fā)者也可以輕松集成自己的內(nèi)存分配器。 Tic
    發(fā)表于 11-17 08:17

    FreeRTOS與uC/OS-II如何選擇?

    是巨大優(yōu)勢)。 你使用的 MCU 廠商默認(rèn)推薦或深度集成了 FreeRTOS。 你需要支持多核處理器 (SMP)。 你需要極大的靈活性(如自定義內(nèi)存分配)。 項(xiàng)目需要快速啟動和開發(fā)。 選擇 uC
    發(fā)表于 11-13 07:15

    如何挑選合適的頻標(biāo)分配

    電子元器件分配儀器儀表
    西安同步電子科技有限公司
    發(fā)布于 :2025年10月14日 19:15:41

    FAQ_MA35_Family M4 RAM如何調(diào)整M4的內(nèi)存分配?

    FAQ_MA35_Family M4 RAM如何調(diào)整M4的內(nèi)存分配?
    發(fā)表于 09-02 06:07

    RTOS怎么實(shí)現(xiàn)共享內(nèi)存

    K230的RTOS支持POSIX標(biāo)準(zhǔn)的共享內(nèi)存嗎 我嘗試使用卻失敗 還是說需要源碼部分配置的開啟可以使用 求教大佬
    發(fā)表于 08-04 08:06

    【RA4L1-SENSOR】電壓檢測器第一個程序增加 FreeRTOS顯示量程0-3300 mV和量程0-15000mV]

    ,Stack Size為256,優(yōu)先級2,內(nèi)存分配為Dynamic。展開內(nèi)存分配可以修改Total Heap Size堆大小為30720 在線程配置上方是
    發(fā)表于 07-11 10:53

    超級電容阻值多少合適?

    本文主要介紹了超級電容的核心參數(shù)——等效串聯(lián)電阻(ESR),并討論了如何在高功率脈沖設(shè)備和儲能系統(tǒng)中找到合適的ESR值。此外,還提到了溫度、電壓和材料工藝對ESR的影響,并探討了如何優(yōu)化阻值的工程路徑。
    的頭像 發(fā)表于 07-03 09:36 ?1424次閱讀
    超級電容阻值多少<b class='flag-5'>才</b><b class='flag-5'>合適</b>?

    【RA4L1-SENSOR】04 用FreeRTOS重構(gòu)工程

    內(nèi)存塊中分配內(nèi)存,這對于系統(tǒng)內(nèi)存不是連續(xù)塊的情況非常有用。` 這里我選擇Heap 4算法。 點(diǎn)擊HAL/Common -- New Stack -- RTOS --
    發(fā)表于 06-16 22:28

    詳解FreeRTOS與SAFERTOS的區(qū)別

    開源免費(fèi)的FreeRTOS由Richard Barry在WHIS工作時創(chuàng)建,WHIS基于FreeRTOS的功能模型,通過完整的HAZOP分析,確定了功能模型和API中的所有的弱點(diǎn),減輕所有薄弱環(huán)節(jié),并采用IEC 61508 SIL 3的開發(fā)生命周期,重新設(shè)計(jì)實(shí)現(xiàn)了SAFE
    的頭像 發(fā)表于 06-04 16:58 ?1126次閱讀
    詳解<b class='flag-5'>FreeRTOS</b>與SAFERTOS的區(qū)別

    【RA-Eco-RA4M2開發(fā)板評測】RA-Eco-RA4M2 移植FreeRTOS

    Configuration->New Thread”即可新建一個任務(wù)。 Figure 2?7 配置任務(wù) Common是關(guān)于FreeRTOS的配置,Thread是新建線程的配置參數(shù)
    發(fā)表于 05-03 23:24
    永清县| 永昌县| 察隅县| 邛崃市| 威海市| 故城县| 安多县| 南昌市| 鲜城| 安岳县| 枞阳县| 中卫市| 乳山市| 阿坝| 陆川县| 高碑店市| 石棉县| 盘锦市| 巴中市| 门头沟区| 荥经县| 乐东| 平舆县| 巩留县| 鸡西市| 翁源县| 临泽县| 涟水县| 涟源市| 图木舒克市| 宁晋县| 南康市| 双桥区| 库车县| 正蓝旗| 昆山市| 邹平县| 临武县| 都匀市| 边坝县| 旬阳县|