现象: 上电后 Lua VM 报 uart_app.lua:28 attempt to index a boolean value
→ VM exit → 15s 后自动复位, 死循环, 永远走不到 MQTT 连接
根因(4 处叠加, 第 1 处致命):
1. config.lua 末尾漏 return —— require 对无返回值模块返回 true,
local CFG = require "config" 后访问 CFG.CFG_xxx 直接报错
2. 全工程 10 处调用 mstick(), 但 LuatOS 并无此 API(正确为 mcu.ticks())
3. MQTT 服务器仍是合宙官方测试服 lbsmqtt.airm2m.com:1884
4. MQTT 鉴权用户名/密码硬编码为空串
修复:
1. config.lua 末尾加 return _G(配置项本就是全局变量);
另: ClientID 的 mobile.imei() 加空值防护(or "unknown")
2. 新增 mstick.lua: 全局 mstick() = mcu.ticks() 封装(回退 os.time()*1000),
原 10 处调用点零改动; main.lua 在 require "config" 之后 require "mstick"
3. 服务器改为 110.41.131.144:1883(明文非 TLS), 新增 CFG_MQTT_USER/PASS,
mqtt_main 改为 auth(CLIENT_ID, CFG_MQTT_USER, CFG_MQTT_PASS, true)
4. .gitignore 放行 vd960Air/tools/ —— 官方 tools/ 忽略规则导致自检脚本
无法入库(sim_frame_test.py 自 8/31 起一直未入库)
新增工具:
- tools/sim_load_test.lua: 离线加载+冒烟自检(lua5.3 + LuatOS API 桩 + 严格全局
检查), 按 main.lua 真实顺序加载全部模块并冒烟调用关键函数, 用于抓取
"require 返回值缺失""调用了不存在的 API"这类语法检查抓不到的运行时问题
验证:
- luac5.3 -p 全部 14 个 lua 文件通过
- 离线自检: 16 项断言 + 8 项冒烟全部通过
- Python 帧协议参考验证全部通过
- readme Markdown 表格列数 0 异常
文档: readme 补 §8 板级问题修复记录, 更新文件结构/待确认清单/计划表
LuatOS,基于强大的Lua引擎架构设计,Lua脚本开发,快速实现业务逻辑;
LuatOS,在合宙历史上经历了两个阶段,一个是LuatOS-Air,一个是LuatOS-SoC,也就是现在的LuatOS;
LuatOS-Air,典型硬件为Air724UG,为合宙上一代的产品;
LuatOS,也就是曾经命名过的LuatOS-SoC,是合宙现在主推的开发方式,所支持的硬件如下:
Air8000系列,包括Air8000/Air8000W/Air8000G/Air8000T/Air8000A/Air8000D等;
Air8101系列,包括Air8101/Air8101A等;
Air780Exx系列,包括Air780EPM/Air780EHM/Air780EHV/Air780EGH等;
LuatOS,现已支持74个核心库,55个扩展库,1000余个API,100多个基于场景的demo,让你开发智能设备像做PPT一样轻松。
本仓库包含如下文件夹:
.github文件夹,Github Action 配置文件, 用于自动化构建和测试components 组件库,,LuatOS在Lua基础上扩展的一系列库的源码lua文件夹,Lua虚拟机5.3系列的源码, 经过合宙优化和测试luat文件夹,LuatOS核心框架代码module文件夹,合宙模组和工业引擎主流型号的固件、demo、project参考代码等script文件夹,LuatOS扩展库tools文件夹,辅助工具.gitignoreGit的文件忽略配置文件
快速入门
- 使用或购买支持的开发板
- 掌握刷机
- 尝试学习LuatOS, 浏览API, 30分钟入门lua语法(视频)
- 愉快地写业务代码
资料大全
- docs@luatos
- 跨平台命令行工具 luatos-cli
授权协议
print("感谢您使用LuatOS ^_^")
print("Thank you for using LuatOS ^_^")