為滿足實時控制場景的嚴苛需求,LuatOS核心庫采用搶占式調度策略,確保高優先級任務即時響應。通過靜態內存分配和零拷貝通信機制,系統不僅避免了動態內存碎片問題,還大幅提升了任務間數據交換效率,適用于電機控制、傳感器采集等實時數據處理場景。
在LuatOS開發中,用于實時操作系統(RTOS)相關功能的核心庫——提供了定時器管理、系統控制、內存監控、路徑配置等底層操作接口,為物聯網設備提供可靠的實時系統基礎支撐。
本文以Air780EPM模組為例,分享RTOS底層操作庫相關內容。
最新資料詳見:https://docs.openluat.com/air780epm/luatos/api/core/rtos
- RTOS底層操作庫API函數 -

1. 系統管理
1)重啟設備:rtos.reboot()
參數:無;
返回值:無。
示例:

2)獲取固件版本號:rtos.version()
參數:無;
返回值:字符串(如 "V0001")。
示例:

3)獲取固件編譯日期:rtos.buildDate()
參數:無;
返回值:字符串(如 "2025-05-06")。
示例:

4)獲取硬件BSP型號:rtos.bsp()
參數:無;
返回值:字符串(如 "Air780EPM")。
示例:

5)返回底層描述信息:rtos.firmware()
參數:無;
返回值:字符串。
示例:

2. 內存管理
1)獲取內存使用信息:rtos.meminfo(type)
參數:
type:內存類型("sys" 系統內存、"lua" Lua 虛擬機內存、"psram" PSRAM 內存)。默認為 "lua"。
返回值:
總內存大小(字節);
已使用內存(字節);
歷史最高使用內存(字節)。
示例:

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空閑時觸發。
示例:

3. 路徑配置
1)設置自定義Lua腳本搜索路徑rtos.setPaths(pathA, pathB, pathC, pathD)
參數:
pathA~pathD:路徑模板字符串(支持%s占位符)。
返回值:無。
注意:每個路徑長度不超過23字節。
示例:

4. 其他底層交互
1)接收并處理底層消息隊列:rtos.receive(timeout)
參數:
timeout:超時時間,-1表示無限等待。
返回值:
消息ID(若為定時器消息則包含附加信息)。
注意:返回值格式由底層決定,Lua層不保證兼容性。
示例:

2)空操作函數:rtos.nop()
無參數、無返回值、無邏輯;
用途:性能測試或調試時使用。
示例:

今天的內容就分享到這里了~
審核編輯 黃宇
-
物聯網
+關注
關注
2945文章
47820瀏覽量
414928 -
LuatOS
+關注
關注
0文章
156瀏覽量
2695
發布評論請先 登錄
audio核心庫的運行機制與技術要點
什么是嵌入式操作系統?
如何選擇合適的實時操作系統
Task任務:LuatOS實現“任務級并發”的核心引擎
揭秘LuatOS Task:多任務管理的“智能中樞”
揭秘LuatOS:實時操作系統RTOS核心庫的關鍵技術剖析!
評論