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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LuatOS的內存分配機制

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

掃碼添加小助手

加入工程師交流群

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

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


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

1.1 內存邏輯劃分示例


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

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

其內存分配大致如下圖表所示:

wKgZO2ngZQ2AVhkOAALTHdyT4hA654.png

Lua內存: 4MB,占比50%;

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

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

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

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

1.2 Air780EHM模組的PSRAM說明


1.2.1 物理內存構成


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

1.2.2內存區(qū)域映射


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

Lua內存:實際在PSRAM 上,獨占一塊內存。

1.2.3 內存分配關系


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

二、內存查詢接口


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

rtos.meminfo(type)

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

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

簡要示例:

1--rtos.meminfo()接口使用示例 2 3--查詢 Lua 虛擬機內存(默認)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)內存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 內存(如果支持) 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

三、內存區(qū)域與物理內存關系

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


3.1.1 物理內存類型用大寫的SRAM/PSRAM代表物理內存。


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

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

注意區(qū)分SRAM和PSRAM的差異:單從硬件上說,SRAM更快但小,PSRAM慢但更大。

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


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

系統(tǒng)內存(“sys”):系統(tǒng)級內存區(qū)域,用于FreeRTOS任務棧、驅動緩沖區(qū)等。

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

3.2 不同平臺的差異


邏輯內存與物理內存的對應關系因平臺而異,不同模組的差異如下:

wKgZPGngZiyAWOMLAAOb1hJ3cM0040.png

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

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

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

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

    關注

    2950

    文章

    48091

    瀏覽量

    417955
  • 嵌入式開發(fā)

    關注

    18

    文章

    1167

    瀏覽量

    50209
  • Lua
    Lua
    +關注

    關注

    0

    文章

    90

    瀏覽量

    11506
  • LuatOS
    +關注

    關注

    0

    文章

    169

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    如何去制作一個高效的內存分配器呢

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

    Linux內存管理中的Slab分配機制

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

    WCDMA中的鑒權和密鑰分配機制

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

    Snort匹配機制的改進

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

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

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

    基于IPv6的DiffServ流標簽分配機制

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

    基于分簇的資源分配機制

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

    基于Linux內存管理與Android內存分配機制

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

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

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

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

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

    基于拓撲結構與分配機制的PoW共識機制

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

    基于權值和基于夏普利值的圖像酬勞分配機制

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

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

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

    Linux內核中的頁面分配機制

    Linux內核中是如何分配出頁面的,如果我們站在CPU的角度去看這個問題,CPU能分配出來的頁面是以物理頁面為單位的。也就是我們計算機中常講的分頁機制。本文就看下Linux內核是如何管理,釋放和
    的頭像 發(fā)表于 08-07 15:51 ?1239次閱讀
    Linux內核中的頁面<b class='flag-5'>分配機制</b>
    云霄县| 和平县| 昭觉县| 宜兰县| 台南市| 铜梁县| 漳浦县| 晋中市| 工布江达县| 江西省| 洮南市| 凤翔县| 方城县| 佛学| 富宁县| 竹山县| 张北县| 开江县| 清流县| 普洱| 淮滨县| 阿合奇县| 梧州市| 东港市| 佛山市| 天气| 淅川县| 同德县| 敦化市| 德格县| 沧州市| 偃师市| 红原县| 房山区| 翼城县| 神农架林区| 博野县| 金门县| 辰溪县| 四川省| 易门县|