chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

合宙LuatOS ? 2026-04-16 12:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文將重點(diǎn)解析LuatOS的內(nèi)存分配機(jī)制,說明系統(tǒng)如何為代碼分配內(nèi)存資源。

一、模組內(nèi)存總體規(guī)劃


LuatOS將有限的物理內(nèi)存進(jìn)行邏輯劃分,就像把房子分成不同功能的房間。在不同的模組中RAM也不一樣,具體的分配情況也不相同。

1.1 內(nèi)存邏輯劃分示例


我們以擁有8MB RAM的Air780EHM模組為例,根據(jù)實(shí)際測(cè)試結(jié)果:

I/user.mem.lua 4194296 35752 35752 -- Lua 內(nèi)存:4MB 總,35KB 已用,35KB 峰值 I/user.mem.sys 3211584 102048 112264 -- 系統(tǒng)內(nèi)存:約 3.06MB 總,102KB 已用,112KB 峰值

其內(nèi)存分配大致如下圖表所示:

wKgZO2ngZQ2AVhkOAALTHdyT4hA654.png

Lua內(nèi)存: 4MB,占比50%;

系統(tǒng)內(nèi)存(sys): 3MB,占比37.5%;

保留/隱藏區(qū)域: 1MB,占比12.5%。

這里約1MB的"隱藏"內(nèi)存, 主要分配給了通信協(xié)議棧緩存、音頻處理緩沖區(qū)、Wi-Fi緩沖區(qū)(如適用)、安全引擎緩存和DMA描述符等系統(tǒng)組件。

這種分配方式體現(xiàn)了LuatOS的設(shè)計(jì)理念——**優(yōu)先保障系統(tǒng)核心功能的穩(wěn)定運(yùn)行,**然后將剩余資源分配給Lua虛擬機(jī)。

1.2 Air780EHM模組的PSRAM說明


1.2.1 物理內(nèi)存構(gòu)成


Air780EHM使用的是EC718HM系列芯片,該系列芯片配備了物理PSRAM。

1.2.2內(nèi)存區(qū)域映射


sys內(nèi)存:實(shí)際在PSRAM 上,與psram是同一個(gè)東西,數(shù)據(jù)完全一樣。

Lua內(nèi)存:實(shí)際在PSRAM 上,獨(dú)占一塊內(nèi)存。

1.2.3 內(nèi)存分配關(guān)系


Air780EHM的8MB全部位于物理PSRAM上,從用戶視角看到的sys/lua/保留區(qū)域,只是邏輯上的劃分,物理上都在PSRAM中。psram內(nèi)存區(qū)域與sys內(nèi)存區(qū)域在Air780EHM上是完全相同的,只是不同的命名方式。

二、內(nèi)存查詢接口


在LuatOS中,rtos.meminfo() 是最核心的內(nèi)存查詢接口。用于獲取不同類型內(nèi)存(lua、sys、psram)的使用情況。

rtos.meminfo(type)

函數(shù)功能: 獲取LuatOS內(nèi)存信息。

參數(shù)說明: type:可選參數(shù),字符串類型。可取值 “l(fā)ua”(查詢Lua虛擬機(jī)內(nèi)存)、“sys”(查詢系統(tǒng)內(nèi)存)、“psram”(查詢PSRAM內(nèi)存);默認(rèn)值為 “l(fā)ua”。

簡(jiǎn)要示例:

1--rtos.meminfo()接口使用示例 2 3--查詢 Lua 虛擬機(jī)內(nèi)存(默認(rèn))3-- 4 local total_lua, used_lua, max_used_lua = rtos.meminfo("lua") 5 log.info("Lua Memory:" 6 "Total:",total_lua / 1024, 7 "Used:", used_lua / 1024, "KB" 8 "Peak:",max_used_lua / 1024, "KB") 9 -- 2.查詢系統(tǒng)內(nèi)存10 11 local total_sys, used_sys, max_used_sys = rtos.meminfo("sys") 12 log.info ("System Memory:" 13 "Total:",total_sys / 1024,"KB" 14 "Used:", used_sys / 1024, "KB" 15 "Peak:", max_used_sys / 1024, "KB") 16 17--3.查詢PSRAM 內(nèi)存(如果支持) 18 local total_psram, used_psram, max_used_psram= rtos.meminfo("psram") 19 if total_psram and total_psram > 0 then 20 log. info ("PSRAM Memory:" 21"Total:", total_psram / 1024, "KB", 22 "Used:", used_psram / 1024, "KB" 23 "Peak:", max_used_psram / 1024, "KB") 24 end

三、內(nèi)存區(qū)域與物理內(nèi)存關(guān)系

3.1 物理內(nèi)存和邏輯內(nèi)存的區(qū)分


3.1.1 物理內(nèi)存類型用大寫的SRAM/PSRAM代表物理內(nèi)存。


SRAM:靜態(tài)隨機(jī)存取存儲(chǔ)器,訪問速度快但容量較小;一定存在, 但不一定會(huì)暴露給客戶使用。

PSRAM:外接偽靜態(tài)隨機(jī)存取存儲(chǔ)器,訪問速度較慢但容量較大;不一定存在, 也不一定會(huì)啟用給客戶使用。

注意區(qū)分SRAM和PSRAM的差異:?jiǎn)螐挠布险f,SRAM更快但小,PSRAM慢但更大。

3.1.2 邏輯內(nèi)存類型(用戶可見) sys/psram/lua是LuatOS暴露給用戶展示的內(nèi)存分配布局。


虛擬機(jī)內(nèi)存(“l(fā)ua”):Lua虛擬機(jī)使用的內(nèi)存區(qū)域,包括Lua腳本中的變量、函數(shù)、表、字符串等。

系統(tǒng)內(nèi)存(“sys”):系統(tǒng)級(jí)內(nèi)存區(qū)域,用于FreeRTOS任務(wù)棧、驅(qū)動(dòng)緩沖區(qū)等。

psram內(nèi)存(“psram”):專門管理的PSRAM區(qū)域,用于大容量數(shù)據(jù)緩存。

3.2 不同平臺(tái)的差異


邏輯內(nèi)存與物理內(nèi)存的對(duì)應(yīng)關(guān)系因平臺(tái)而異,不同模組的差異如下:

wKgZPGngZiyAWOMLAAOb1hJ3cM0040.png

不同 LuatOS 硬件平臺(tái)在內(nèi)存布局上存在差異,Lua 運(yùn)行內(nèi)存、系統(tǒng)內(nèi)存與 PSRAM 擴(kuò)展內(nèi)存的分配方式各有區(qū)別。部分型號(hào)將系統(tǒng)與腳本內(nèi)存統(tǒng)一放在 PSRAM 中,部分則采用 SRAM 運(yùn)行系統(tǒng)、PSRAM 承載腳本的分離架構(gòu),以適配不同功耗與性能需求。

以上就是LuatOS內(nèi)存分配機(jī)制的核心內(nèi)容,現(xiàn)在再回頭看那位社群朋友的疑問:“AirUI這么流暢,會(huì)不會(huì)很吃內(nèi)存?”相信你已經(jīng)有了答案——只要內(nèi)存分得巧,流暢和省內(nèi)存,從來不是矛盾。

后續(xù)我們將針對(duì)Lua垃圾回收(GC)的內(nèi)部工作原理,以及Zbuff、UART、MQTT等核心功能的內(nèi)存使用分析,手把手教你排查內(nèi)存泄漏。

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

    關(guān)注

    2950

    文章

    48091

    瀏覽量

    417996
  • 嵌入式開發(fā)
    +關(guān)注

    關(guān)注

    18

    文章

    1167

    瀏覽量

    50209
  • Lua
    Lua
    +關(guān)注

    關(guān)注

    0

    文章

    90

    瀏覽量

    11506
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    169

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    cc2530網(wǎng)絡(luò)地址分配機(jī)制是什么樣的?

    是2.5.1a,不知道這個(gè)版本所采用的網(wǎng)絡(luò)地址分配機(jī)制是什么樣的?這個(gè)版本還閱讀協(xié)議棧解壓出來的document有沒有用,會(huì)不會(huì)已經(jīng)過時(shí)了,那些document基本上都是zstack2007的謝謝大家了。
    發(fā)表于 04-01 10:19

    如何去制作一個(gè)高效的內(nèi)存分配器呢

    高效內(nèi)存分配機(jī)制是什么意思?如何去制作一個(gè)高效的內(nèi)存分配器呢?
    發(fā)表于 01-20 06:57

    Linux內(nèi)存管理中的Slab分配機(jī)制

    早期Linux 的內(nèi)存分配機(jī)制采用伙伴算法, 當(dāng)請(qǐng)求分配內(nèi)存大小為幾十個(gè)字節(jié)或幾百個(gè)字節(jié)時(shí)會(huì)產(chǎn)生內(nèi)存碎片, 嚴(yán)重消耗系統(tǒng)資源。現(xiàn)今采用Sl
    發(fā)表于 04-24 10:49 ?11次下載

    WCDMA中的鑒權(quán)和密鑰分配機(jī)制

    為了滿足第三代移動(dòng)通信安全體系的要求, 詳細(xì)討論了WCDMA 系統(tǒng)中的鑒權(quán)和密鑰分配機(jī)制,從應(yīng)用的角度分析了具體的算法和參數(shù), 如從HEöA uC 發(fā)送鑒權(quán)消息到VLRöSGSN 的過程,VLR&o
    發(fā)表于 06-02 16:29 ?35次下載

    Snort匹配機(jī)制的改進(jìn)

    基于規(guī)則的模式匹配是Snort 檢測(cè)引擎的主要機(jī)制,本文在結(jié)合協(xié)議分析和模式匹配的基礎(chǔ)上,對(duì)Snort 匹配機(jī)制進(jìn)行了改進(jìn)。首先對(duì)從網(wǎng)絡(luò)中獲取的數(shù)據(jù)包進(jìn)行預(yù)先處理,利用協(xié)議分
    發(fā)表于 12-18 17:35 ?14次下載

    用戶可靠性的眾包系統(tǒng)任務(wù)分配機(jī)制

    針對(duì)現(xiàn)有研究對(duì)眾包系統(tǒng)中用戶可靠性考慮不足的問題,假設(shè)每個(gè)用戶針對(duì)不同類型任務(wù)具有不同的可靠性,并在此基礎(chǔ)上設(shè)計(jì)了一種基于用戶可靠性的眾包系統(tǒng)任務(wù)分配機(jī)制。首先,以任務(wù)發(fā)布者的收益最大化為優(yōu)化目標(biāo)
    發(fā)表于 11-27 18:01 ?6次下載

    基于IPv6的DiffServ流標(biāo)簽分配機(jī)制

    本文在DiffServ模型的基礎(chǔ)上,改變了路由器的功能,使用IPv6流標(biāo)簽字段和源地址作為關(guān)鍵字,在路由器中建立轉(zhuǎn)發(fā)表,根據(jù)關(guān)鍵字轉(zhuǎn)發(fā)IPv6分組,提高轉(zhuǎn)發(fā)速度;同時(shí),在DS區(qū)域使用一種流標(biāo)簽分配機(jī)制,避免了流標(biāo)簽的重復(fù)和混亂。
    發(fā)表于 12-12 19:05 ?0次下載
    基于IPv6的DiffServ流標(biāo)簽<b class='flag-5'>分配機(jī)制</b>

    基于分簇的資源分配機(jī)制

    針對(duì)Macro-Femto網(wǎng)絡(luò)中Femtocell與Macrocell之間的干擾問題,提出了一種基于分簇的資源分配機(jī)制。該機(jī)制結(jié)合圖論及凸優(yōu)化理論對(duì)毫微微節(jié)點(diǎn)分簇;隨后采用基于速率公平的子信道分配
    發(fā)表于 01-26 17:58 ?0次下載
    基于分簇的資源<b class='flag-5'>分配機(jī)制</b>

    基于Linux內(nèi)存管理與Android內(nèi)存分配機(jī)制

    Android采取了一種有別于Linux的進(jìn)程管理策略,有別于Linux的在進(jìn)程活動(dòng)停止后就結(jié)束該進(jìn)程,Android把這些進(jìn)程都保留在內(nèi)存中,直到系統(tǒng)需要更多內(nèi)存為止。這些保留在內(nèi)存中的進(jìn)程通常情況下不會(huì)影響整體系統(tǒng)的運(yùn)行速度
    的頭像 發(fā)表于 03-30 14:52 ?6871次閱讀

    比特幣分配機(jī)制最公平的原因是什么

    比特幣協(xié)議中最早設(shè)計(jì)的分配機(jī)制至今仍然是最公平、也是最可靠的。
    發(fā)表于 07-19 14:59 ?2786次閱讀

    一種基于信任的物聯(lián)網(wǎng)頻譜資源分配機(jī)制

    隨著無線網(wǎng)絡(luò)的快速發(fā)展,物聯(lián)網(wǎng)中頻譜資源的高效分配問題亟需解決,為此,提出一種基于信任的頻譜資源分配機(jī)制TSRA。借鑒拍賣理論建立頻譜資源拍賣系統(tǒng)模型,根據(jù)信任理論確定用戶間的信任關(guān)系以縮小客戶網(wǎng)絡(luò)
    發(fā)表于 04-27 14:23 ?6次下載
    一種基于信任的物聯(lián)網(wǎng)頻譜資源<b class='flag-5'>分配機(jī)制</b>

    基于拓?fù)浣Y(jié)構(gòu)與分配機(jī)制的PoW共識(shí)機(jī)制

    對(duì)經(jīng)典的PoW共識(shí)機(jī)制進(jìn)行改進(jìn),改變了礦工所挖出區(qū)塊接入主鏈的條件和收益分配策略,從而提出了一種改進(jìn)共識(shí)機(jī)制。與PoW不同,在該改進(jìn)共識(shí)機(jī)制中,首個(gè)生成的由N個(gè)子區(qū)塊相連的子鏈將被整體
    發(fā)表于 05-31 15:48 ?3次下載

    基于權(quán)值和基于夏普利值的圖像酬勞分配機(jī)制

    基于權(quán)值和基于夏普利值的圖像酬勞分配機(jī)制
    發(fā)表于 06-24 15:35 ?43次下載

    jemalloc分配機(jī)制的介紹及其優(yōu)化實(shí)踐

    C/C++通過libc做內(nèi)存分配。glibc中默認(rèn)的分配機(jī)制是ptmalloc。除此之外,還有眾多的不同側(cè)重的優(yōu)化,例如tcmalloc,jemalloc。
    的頭像 發(fā)表于 05-30 09:12 ?2634次閱讀
    jemalloc<b class='flag-5'>分配機(jī)制</b>的介紹及其優(yōu)化實(shí)踐

    Linux內(nèi)核中的頁面分配機(jī)制

    Linux內(nèi)核中是如何分配出頁面的,如果我們站在CPU的角度去看這個(gè)問題,CPU能分配出來的頁面是以物理頁面為單位的。也就是我們計(jì)算機(jī)中常講的分頁機(jī)制。本文就看下Linux內(nèi)核是如何管理,釋放和
    的頭像 發(fā)表于 08-07 15:51 ?1239次閱讀
    Linux內(nèi)核中的頁面<b class='flag-5'>分配機(jī)制</b>