"); //-->
为满足实时控制场景的严苛需求,LuatOS核心库采用抢占式调度策略,确保高优先级任务即时响应。通过静态内存分配和零拷贝通信机制,系统不仅避免了动态内存碎片问题,还大幅提升了任务间数据交换效率,适用于电机控制、传感器采集等实时数据处理场景。
在LuatOS开发中,用于实时操作系统(RTOS)相关功能的核心库——提供了定时器管理、系统控制、内存监控、路径配置等底层操作接口,为物联网设备提供可靠的实时系统基础支撑。
本文以Air780EPM模组为例,分享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()
无参数、无返回值、无逻辑;
用途:性能测试或调试时使用。
示例:
今天的内容就分享到这里了~
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。