137 Star 577 Fork 120

GVP合宙Luat / LuatOS

4674 wendal 1578914274 Wendal
  • 值得注意的变更: adc读取温度的id改成10.
  • 刷机请使用LuaTools 2.1.32,并按提示下载更新, Air101的固件可以在resouce/101_lua_lod/目录下.
  • 收到开发板的小伙伴们, 如果提示激活但总是失败, 请务必更新到V0002正式版,感谢理解.
  • 任何疑问或建议,都请联系我们, 群: 1061642968
4674 wendal 1578914274 Wendal
  1. 修正了i2c可能卡死的bug, 并添加软i2c
  2. 修正了几个不重要的小错误

附件里的固件是包含基本功能, 如需启用其他库, 可使用sdk自行编译, 如有疑问, 请加群: 1061642968

Last committed message: release: air302的V0007固件及其sdk
Preview version
2021-05-27 22:16
4674 wendal 1578914274 Wendal

V0006正式版前的最后一个测试版本, 可以认为是RC版本了

  1. 支持spi flash挂载到文件系统(自定义前缀)
  2. 支持tf卡挂载到文件系统(固定/sdcard前缀)
  3. 修正一些小bug
Preview version
2021-05-01 22:56
4674 wendal 1578914274 Wendal
  1. 启用 luat vfs, 内置sys.lua/mqtt.lua/mqtt2.lua. 刷脚本和生成量产包时可以不添加这些库文件了
  2. nbiot.tacTime()方法名修正 by 梦程
  3. 应用厂商v036 patch3, 修正了几个东西
  4. 可以设置APN了,详见demo
2021-03-28 21:57
4674 wendal 1578914274 Wendal

LuatOS V0005 发布了, Cat.1/NbIot/Wifi 都有了

  • Cat.1 -> Air724,Air722/展锐RDA8910
  • NBIOT -> Air302/移芯EC616
  • Wifi -> Air640W/联盛德W600

LuatOS固件特点

完全抛弃AT的底层设计

没有虚拟AT接口, 没有ril库, 没有AT命令的解析与回调, 不用在系统队列与用户队列中反复绕圈

设计之初就秉着替代并超越AT的信仰, 绕过sdk的AT框架, 实现一整套与AT engine平行的LuatOS engine.

API调用更快捷高效, 内存更省, 逻辑更清晰, 扩展性更好

基于Lua 5.3, 支持原生位运算符

local newval = val ^ 0xFF
local newval2 = val2 << 3

数值类型扩展到64位, 支持更大的数据范围

local val = 1 << 63
local val2 = 0xFFFFFFFF

利用率更高的Lua专属内存

最低内存需求仅16k, 提供64k内存足以满足低复杂度的应用.

在资源紧缺的wifi/nbiot模块,默认提供64kb内存, 也能满足紧凑型应用的内存需求, 后续还有提高内存使用率的方案.

内置墨水屏驱动

无需复杂的调试,内置驱动从1寸到2.9寸均为默认支持, 更大尺寸可通过自行编译固件开启. 内置中文字体, 显示无忧.

Cat.1固件的额外特性

本次发布的V0005是针对Cat.1模组的第一个版本,涵盖一般的外设功能和联网功能外,还有一些知道关注的特性

可调整的串口缓冲区大小

默认16k, 最高128k, 避免极端场景下uart出现overflow的可能性

可回滚的脚本升级机制

脚本区与脚本OTA区,均为256kb, 前者为线刷, 后者为OTA写入, 没有繁琐的AT解析, LuatOS提供的lua库文件很小,用户脚本占大头

后续还支持SD卡升级,敬请期待

连续性内存

Air724(RDA8910系列)固件默认提供1.5mb的Lua VM独占内存, 最高可容纳512kb的单一长字符串,字符串拼接不再惧怕内存溢出.

NBIOT固件的额外更新

释放uart0供用户使用

虽然它不是很纯(有点脏数据),但胜在波特率可以很高很高(最高6M)

ctiot库优化

紧跟sdk的升级, 对ctiot库进行改进

那下个版本V0006, 会带来什么?

预期会增加或实现的功能有:

Lua脚本调试

当前仅Air640w固件得以实现, V0006将覆盖全部模块!!

https://gitee.com/openLuat/vscode-luatos-debug

zbuff库

高性能的C风格缓冲区库, 提供丝滑的char[]操作体验

-- 创建zbuff
local buff = zbuff.create(1024) -- 空白的
-- local buff = zbuff.create(1024, "123321456654") -- 创建,并填充一个已有字符串的内容

-- 类file的读写操作
buff:write("123") -- 写入数据, 指针相应地往后移动
buff:seek(0, zbuff.SEEK_SET) -- 把指针设置到指定位置
local str = buff:read(3) -- 把刚才那3个字节读出来,内容是字符串,指针也往后移动了

-- 按数据类型读写
local n = buff:readInt8() -- 支持int8~int64,uint8~uint64,float32,double64
-- buff:writeInt8(0x32)   -- 同时也支持写入上述整型/浮点数

-- 支持pack/unpack操作
local _, a, b, c = buff:unpack("IIH") -- 支持unpack解码
-- buff:pack("IIH", 0x1234, 0x4567, 0x12) -- 也支持pack打包
log.info("buff", str, n)

-- 类数组操作
buff:seek(0, zbuff.SEEK_SET) -- 又回到开头
local b = buff[2] -- 直接按数组来读取, 得到ASCII码, 0x32, 注意,这里按C的标准来
buff[3] = 0x33 -- 直接赋值可还行

还有很多想法,等待一步步实现

  • Air724固件的文件浏览器 - 像资源管理器那样操作模块的里面文件, 如何怎样的体验?
  • 云刷机 - 在页面编辑,按一下远程下载,模块自行下载脚本,自动开始运行, 很流畅呀
  • 压榨内存 - 既然code是固定的,那岂不是能放在flash上吗?那调试信息也可以嘛
  • spi flash也挂文件系统 - w25q挺便宜的呀, 扩容杠杠的

版本列表

  • air302 72kb noui noctiot
  • air302 64kb disp/u8g2 ctiot
  • air302 64kb eink noctiot
  • air640w wifi
  • air640w wifi noui
  • air640w mcu
  • air724ug ALL
Last committed message: release: v0005
Preview version
2021-03-26 15:03
4674 wendal 1578914274 Wendal
  1. 更新到sdk 036
  2. 解决之前测试版中eink无法驱动的问题
  3. 解决ctiot库有时候回调失败,异常重启等问题

如无收到大bug的报告,这份代码也将是正式版的代码.

附件给出3个预编译版本, 代表不同的需求

如果依然无法满足要求, 请使用sdk编译自己的版本, 既能增删lua库, 还能调整lua内存大小

Last committed message: update: 更新zbuff设计文档
Preview version
2020-12-24 23:30
4674 wendal 1578914274 Wendal

这是测试版本,不建议直接用于生产环境,有你的参与,会让正式版减少bug哦,期待您的反馈

主要变更:

  • add: 添加ptw设置和获取的方法
  • fix: gpio16无法设置高低电平的bug
  • update: 并入上游最新sdk及补丁
  • update: 调整luat_air302_base,方便定制固件

关于墨水屏eink库:

  • 该功能由"好记星"贡献初稿,再次表示感谢!!
  • luatos团体完成了一些后续优化, 例如代码规范化,添加中文字库
  • 本测试固件并未启用墨水屏库,如需使用可自行编译/QQ群取测试固件/等正式版固件
  • 经先锋用户反馈, 使用V0004的SDK也能正常驱动eink库,无需本测试版sdk

附件分别是固件压缩包(普通用户下载)和SDK(需要自行编译固件的用户才需要下载)

Lua
1
https://gitee.com/openLuat/LuatOS.git
git@gitee.com:openLuat/LuatOS.git
openLuat
LuatOS
LuatOS

Search

105716 1d94204e 1850385 105716 2d26be5c 1850385