實(shí)時(shí)系統(tǒng)的開發(fā)挑戰(zhàn)在于平衡響應(yīng)時(shí)間與系統(tǒng)開銷。LuatOS核心庫通過時(shí)間片輪轉(zhuǎn)與優(yōu)先級混合調(diào)度策略,既保證了高實(shí)時(shí)性任務(wù)的即時(shí)執(zhí)行,又為低優(yōu)先級任務(wù)提供了公平調(diào)度機(jī)會。其事件驅(qū)動架構(gòu)還支持異步處理,降低了系統(tǒng)阻塞風(fēng)險(xiǎn)。
在LuatOS開發(fā)中,用于實(shí)時(shí)操作系統(tǒng)(RTOS)相關(guān)功能的核心庫——提供了定時(shí)器管理、系統(tǒng)控制、內(nèi)存監(jiān)控、路徑配置等底層操作接口,為物聯(lián)網(wǎng)設(shè)備提供可靠的實(shí)時(shí)系統(tǒng)基礎(chǔ)支撐。
本文以Air780EPM模組為例,分享RTOS底層操作庫相關(guān)內(nèi)容。
最新資料詳見:https://docs.openluat.com/air780epm/luatos/api/core/rtos
- RTOS底層操作庫API函數(shù) -
1. 系統(tǒng)管理
1)重啟設(shè)備:rtos.reboot()
參數(shù):無;
返回值:無。
示例:
2)獲取固件版本號:rtos.version()
參數(shù):無;
返回值:字符串(如 "V0001")。
示例:
3)獲取固件編譯日期:rtos.buildDate()
參數(shù):無;
返回值:字符串(如 "2025-05-06")。
示例:
4)獲取硬件BSP型號:rtos.bsp()
參數(shù):無;
返回值:字符串(如 "Air780EPM")。
示例:
5)返回底層描述信息:rtos.firmware()
參數(shù):無;
返回值:字符串。
示例:
2. 內(nèi)存管理
1)獲取內(nèi)存使用信息:rtos.meminfo(type)
參數(shù):
type:內(nèi)存類型("sys" 系統(tǒng)內(nèi)存、"lua" Lua 虛擬機(jī)內(nèi)存、"psram" PSRAM 內(nèi)存)。默認(rèn)為 "lua"。
返回值:
總內(nèi)存大小(字節(jié));
已使用內(nèi)存(字節(jié));
歷史最高使用內(nèi)存(字節(jié))。
示例:
2)配置內(nèi)存自動收集策略(補(bǔ)充Lua自動垃圾回收機(jī)制):
rtos.autoCollectMem(period,warning_level, force_level)
參數(shù):
period:自動收集周期(毫秒),等同于receive調(diào)用次數(shù),0~60000。如果是0,則關(guān)閉自動收集功能,默認(rèn)是100;
warning_level:內(nèi)存使用警戒水位線(百分比),是總luavm內(nèi)存量的百分比,50~95,內(nèi)存達(dá)到(>=)警戒線時(shí)才會開始判斷是否要收集。默認(rèn)是80;
force_level:內(nèi)存使用強(qiáng)制收集水位線(百分比),是總luavm 內(nèi)存量的百分比,50~95,內(nèi)存達(dá)到(>=)強(qiáng)制收集線時(shí)會強(qiáng)制收集。默認(rèn)是90,必須比警戒水位線warning_level大。
注意:內(nèi)存自動收集配置,是lua本身收集機(jī)制的一種補(bǔ)充,不是必要的,而且只在luavm空閑時(shí)觸發(fā)。
示例:
3. 路徑配置
1)設(shè)置自定義Lua腳本搜索路徑rtos.setPaths(pathA, pathB, pathC, pathD)
參數(shù):
pathA~pathD:路徑模板字符串(支持%s占位符)。
返回值:無。
注意:每個(gè)路徑長度不超過23字節(jié)。
示例:
4. 其他底層交互
1)接收并處理底層消息隊(duì)列:rtos.receive(timeout)
參數(shù):
timeout:超時(shí)時(shí)間,-1表示無限等待。
返回值:
消息ID(若為定時(shí)器消息則包含附加信息)。
注意:返回值格式由底層決定,Lua層不保證兼容性。
示例:
2)空操作函數(shù):rtos.nop()
無參數(shù)、無返回值、無邏輯;
用途:性能測試或調(diào)試時(shí)使用。
示例:
今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7147瀏覽量
125571 -
LuatOS
+關(guān)注
關(guān)注
0文章
102瀏覽量
2245
發(fā)布評論請先 登錄
零基礎(chǔ)學(xué)習(xí)LuatOS編程:快速上手開發(fā)實(shí)戰(zhàn)教程!

快速入門——LuatOS:sys庫多任務(wù)管理實(shí)戰(zhàn)攻略!

揭秘LuatOS:實(shí)時(shí)操作系統(tǒng)RTOS核心庫的關(guān)鍵技術(shù)剖析!

全棧開發(fā)進(jìn)階指南:LuatOS-log庫從入門到實(shí)戰(zhàn)!

什么樣的才叫實(shí)時(shí)工業(yè)操作系統(tǒng)

UC3854 功率因數(shù)校正設(shè)計(jì)全攻略:從理論到實(shí)戰(zhàn)

鴻道Intewell操作系統(tǒng)的Linux實(shí)時(shí)拓展方案

國產(chǎn)銀河麒麟操作系統(tǒng)V10和星光麒麟V1.0操作系統(tǒng)如何選擇?

國產(chǎn)實(shí)時(shí)操作系統(tǒng):和RT-Linux,Zephyr的實(shí)時(shí)性對比

linux是實(shí)時(shí)系統(tǒng)還是分時(shí)操作系統(tǒng)
ARM開發(fā)板上的實(shí)時(shí)操作系統(tǒng)介紹
實(shí)時(shí)操作系統(tǒng)開發(fā)工具:鴻道Intewell Developer介紹

新書發(fā)布——《RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

評論