0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于LuatOS核心库的实时操作系统开发:从理论到实践~

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-05-16 13:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

实时系统的开发挑战在于平衡响应时间与系统开销。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

今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7467

    浏览量

    129804
  • LuatOS
    +关注

    关注

    0

    文章

    180

    浏览量

    2772
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA电源设计:理论到实践的全面指南

    FPGA电源设计:理论到实践的全面指南 引言 现代FPGA作为有史以来最复杂的集成电路之一,采用了先进的晶体管技术和前沿的架构结构,以实现令人难以置信的灵活性和高性能。随着技术的不断进步,FPGA
    的头像 发表于 05-24 12:40 421次阅读

    LuatOS:485 总线硬件设计要点与 exmodbus 开发实战

    在工业物联网通信开发中,485 总线与 Modbus 协议的组合应用十分常见。本文以合宙 Air780EHV 系列模组为实例,围绕 LuatOS 开发环境,详解 485 总线的硬件设计细节,包括其
    的头像 发表于 03-19 17:57 328次阅读
    <b class='flag-5'>LuatOS</b>:485 总线硬件设计要点与 exmodbus <b class='flag-5'>库</b><b class='flag-5'>开发</b>实战

    LuatOS平台下BLE蓝牙开发入门到实践

    者,全面介绍LuatOS中BLE模块的基础知识,涵盖角色定义(主机/机)、服务配置、特征值操作与事件回调机制,并通过一个完整的温湿度数据上报案例,逐步演示应用开发全过程。 一、BLE
    的头像 发表于 02-02 16:32 8471次阅读
    <b class='flag-5'>LuatOS</b>平台下BLE蓝牙<b class='flag-5'>开发</b><b class='flag-5'>从</b>入门到<b class='flag-5'>实践</b>

    LuatOS框架的使用(上)

    环境搭建、模块调用到任务调度,全面解析其开发流程与最佳实践。 本篇文章主要讲LuatOS 框架;LuatOS 框架是整个 LuatOS
    的头像 发表于 01-27 19:38 506次阅读
    <b class='flag-5'>LuatOS</b>框架的使用(上)

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解
    发表于 12-09 10:33

    LuatOS exgnss扩展实战进阶:GNSS功能开发全流程!

    GNSS功能开发涉及多环节协同,LuatOS exgnss扩展是其中的关键枢纽。本文以全流程探秘形式,硬件准备、固件烧录到代码实现,详解exgnss
    的头像 发表于 11-14 15:24 6151次阅读
    <b class='flag-5'>LuatOS</b> exgnss扩展<b class='flag-5'>库</b>实战进阶:GNSS功能<b class='flag-5'>开发</b>全流程!

    嵌入式实时操作系统的特点

    实时嵌入式操作系统(Real-Time Embedded Operating System)是专门设计用于嵌入式系统实时操作系统。嵌入式
    发表于 11-13 06:30

    LuatOS MCU核心全接触:新手操作与功能测试攻略!

    开启芯片级开发实战。 一、MCU核心库函数功能 MCU核心LuatOS中封装MCU一些特殊操作
    的头像 发表于 11-12 14:30 456次阅读
    <b class='flag-5'>LuatOS</b> MCU<b class='flag-5'>核心</b><b class='flag-5'>库</b>全接触:新手<b class='flag-5'>操作</b>与功能测试攻略!

    新手必备:LuatOS MCU核心功能测试与实践指南

    各类开发需求。 一、MCU核心库函数功能 MCU核心LuatOS中封装MCU一些特殊操作
    的头像 发表于 11-12 14:26 529次阅读
    新手必备:<b class='flag-5'>LuatOS</b> MCU<b class='flag-5'>核心</b><b class='flag-5'>库</b>功能测试与<b class='flag-5'>实践</b>指南

    【好书推荐】RT-Thread第22本相关书籍!《嵌入式实时操作系统开发实践》| 技术集结

    教学的首选平台。本次推荐的第22本RT-Thread相关书籍——《嵌入式实时操作系统开发实践(基于英飞凌PSoC62和RT-Thread)》正是一本将理论
    的头像 发表于 10-16 18:46 1044次阅读
    【好书推荐】RT-Thread第22本相关书籍!《嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统开发</b><b class='flag-5'>实践</b>》| 技术集结

    如何选择合适的实时操作系统

    选择合适的实时操作系统(RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 1375次阅读

    Task任务:LuatOS实现“任务级并发”的核心引擎

    Task任务通过其强大的并发处理能力,使LuatOS能够在单线程环境中模拟多线程执行,通过协程的挂起与恢复机制,实现任务级的并行操作,显著提升系统效能。 sys核心
    的头像 发表于 08-28 13:49 695次阅读
    Task任务:<b class='flag-5'>LuatOS</b>实现“任务级并发”的<b class='flag-5'>核心</b>引擎

    揭秘LuatOS Task:多任务管理的“智能中枢”

    Task任务作为LuatOS核心组成部分,通过智能化的任务管理机制,实现任务的创建、调度与协同运行,让复杂应用得以高效并行处理,满足实时场景下的严苛需求。 sys核心
    的头像 发表于 08-28 13:48 889次阅读
    揭秘<b class='flag-5'>LuatOS</b> Task:多任务管理的“智能中枢”

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    01内容简介ContentSummary本书为读者提供了一个全面、系统的RT-Thread学习指南,旨在帮助初学者及有经验的开发者掌握RT-Thread实时操作系统和STM32嵌入式微
    的头像 发表于 08-24 10:05 1454次阅读
    【好书推荐】RT-Thread第20本相关书籍!《嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>RT-Thread原理与应用》| 技术集结

    零基础学习LuatOS编程:快速上手开发实战教程!

    无论你是刚接触物联网编程的新手,还是希望拓展技能的技术爱好者,本教程将为零基础的读者提供一条清晰的LuatOS学习路径。安装开发工具到编写第一个程序,我们将通过实例讲解核心概念,助你
    的头像 发表于 06-13 17:27 820次阅读
    零基础学习<b class='flag-5'>LuatOS</b>编程:快速上手<b class='flag-5'>开发</b>实战教程!