<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • 合宙LuatOS的個人空間 http://www.portaltwn.com/space-uid-176273.html [收藏] [復制] [RSS]

    博客

    從理論到實踐~基于LuatOS核心庫的實時操作系統開發!

    已有 46 次閱讀2025-5-22 11:01 |個人分類:4G模組| 物聯網, 單片機, 4G模塊, 通訊模組, 嵌入式硬件

    實時系統的開發挑戰在于平衡響應時間與系統開銷。LuatOS核心庫通過時間片輪轉與優先級混合調度策略,既保證了高實時性任務的即時執行,又為低優先級任務提供了公平調度機會。其事件驅動架構還支持異步處理,降低了系統阻塞風險。

    在LuatOS開發中,用于實時操作系統(RTOS)相關功能的核心庫——提供了定時器管理、系統控制、內存監控、路徑配置等底層操作接口,為物聯網設備提供可靠的實時系統基礎支撐。
     

    本文以Air780EPM模組為例,分享RTOS底層操作庫相關內容。

    最新資料詳見:https://docs.openluat.com/air780epm/luatos/api/core/rtos 



    - RTOS底層操作庫API函數 -  


    wKgZO2gmylyAS8jCAAg5-TZVWBM649.png


    1. 系統管理


    1)重啟設備:rtos.reboot()

    參數:無;

    返回值:無。

    示例:

    wKgZO2gmzLeABgFwAAAl5Qg1fz8419.png


    2)獲取固件版本號:rtos.version()

    參數:無;

    返回值:字符串(如 "V0001")。

    示例:

    wKgZO2gmzOmAFGqUAABc5FwhJk0866.png


    3)獲取固件編譯日期:rtos.buildDate()

    參數:無;

    返回值:字符串(如 "2025-05-06")。

    示例:

    wKgZPGgmzQuAcHu9AABm2SGiJNo383.png


    4)獲取硬件BSP型號:rtos.bsp()

    參數:無;

    返回值:字符串(如 "Air780EPM")。

    示例:

    wKgZO2gmzUCADQDhAABaCPJc14Q616.png


    5)返回底層描述信息:rtos.firmware()

    參數:無;

    返回值:字符串。

    示例:

    wKgZO2gmzW6Ac8WZAABECmjmOWw041.png


    2. 內存管理


    1)獲取內存使用信息:rtos.meminfo(type)

    參數:

    type:內存類型("sys" 系統內存、"lua" Lua 虛擬機內存、"psram" PSRAM 內存)。默認為 "lua"。

    返回值:

    總內存大。ㄗ止潱;

    已使用內存(字節);

    歷史最高使用內存(字節)。

    示例:

    wKgZO2gmzbaADEobAACP52uEC3Y831.png


    2)配置內存自動收集策略(補充Lua自動垃圾回收機制):


    rtos.autoCollectMem(period,warning_level, force_level)

    參數:

    period:自動收集周期(毫秒),等同于receive調用次數,0~60000。如果是0,則關閉自動收集功能,默認是100;

    warning_level:內存使用警戒水位線(百分比),是總luavm內存量的百分比,50~95,內存達到(>=)警戒線時才會開始判斷是否要收集。默認是80;

    force_level:內存使用強制收集水位線(百分比),是總luavm 內存量的百分比,50~95,內存達到(>=)強制收集線時會強制收集。默認是90,必須比警戒水位線warning_level大。

    注意:內存自動收集配置,是lua本身收集機制的一種補充,不是必要的,而且只在luavm空閑時觸發。

    示例:

    wKgZO2gmzhKALmemAACAxzCTEzs320.png


    3. 路徑配置


    1)設置自定義Lua腳本搜索路徑rtos.setPaths(pathA, pathB, pathC, pathD)

    參數:

    pathA~pathD:路徑模板字符串(支持%s占位符)。

    返回值:無。

    注意:每個路徑長度不超過23字節。

    示例:

    wKgZO2gmzkSAI_LEAAC6xT83Ngk735.png


    4. 其他底層交互


    1)接收并處理底層消息隊列:rtos.receive(timeout)

    參數:

    timeout:超時時間,-1表示無限等待。

    返回值:

    消息ID(若為定時器消息則包含附加信息)。

    注意:返回值格式由底層決定,Lua層不保證兼容性。

    示例:

    wKgZPGgmzpCAZsTUAAA2a-GQia4823.png


    2)空操作函數:rtos.nop()

    無參數、無返回值、無邏輯;

    用途:性能測試或調試時使用。

    示例:

    wKgZO2gmzrWAEpkaAABMrzLRyF0509.png

    今天的內容就分享到這里了~


    路過

    雞蛋

    鮮花

    握手

    雷人

    評論 (0 個評論)

    facelist

    您需要登錄后才可以評論 登錄 | 立即注冊

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    返回頂部
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷