LuatOS-Air二次开发学习

LuatOS简介

在介绍LuatOS-Air之前,先介绍下LuatOS。

LuatOS是合宙自研的嵌入式操作系统。覆盖各类物联网应用场景,可运行于4G Cat.1/MCU/NB-IoT/2G/Wi-Fi/蓝牙等等不同的物联网主控芯片。通过完善的嵌入式操作系统LuatOS,使得物联网主控CPU更容易被用户使用,大幅度降低用户的研发成本和研发周期。

LuatOS从2014年推出至今,一直深受广大用户好评,在多行业多应用领域得到充分验证,功能非常齐全,性能非常稳定。从最开始的单一的LuatOS-Air解决方案发展到LuatOS-Air、LuatOS-SoC、LuatOS-iRTU、LuatOS-AirUI四种解决方案。

LuatOS-Air软件开发简介

LuatOS-Air = Lua + AT。

用户采用lua脚本语言编程就能实现物联网应用开发、驱动开发、UI开发。嵌入式开发人员一般情况下都是从C语言开始入手的,然而C语言的学习难度较大,入门门槛也比较高。很多人因为自身C语言的瓶颈导致很难做出来复杂的产品。

LuatOS-Air将传统的AT命令用Lua语言封装成API,开发者可以通过调用API轻松便捷的实现SOCKET、MQTT、OTA、GPIO、I2C、SPI等功能。并且官方为物联网应用开发、驱动开发、UI开发的各种功能提供了demo,直接刷机就能运行学习,大大减少用户的开发成本。

SDK软件介绍

SDK软件分为两部分=底层固件core+上层Lua脚本(lib+demo)

  • 底层固件core:每次发布版本,底层固件core压缩包中有6个不同功能组合的固件,各版本功能的区别详见core压缩包中的Readme.txt。
  • lib:官方为方便用户进一步做应用开发写的lib库,一般情况下,不需要用户修改,直接引用就行。
  • demo:demo中提供了不同功能的实例代码,任何一个demo都可以直接下载到开发板上跑起来测试。

名词解释

  • core:底层软件、底层固件、内核固件。是基于主芯片封装好接口给Lua脚本调用的.pac软件包,不对外开源。

SDK架构

Cat.1模块底层core中跑的操作系统是FreeRTOS,core在启动过程中,会创建一系列的tash,例如音频、协议栈、串口等。

其中有一个task,用来加载Lua虚拟机,解析运行用户编写的Lua脚本,这个task,我们称之为Lua virtual task(另外在Lua脚本中,利用Lua的携程特性封装了一个sys.taskInit接口,借用了task的概念,实际上并不是真正的task)。

脚本中的所有应用,都运行在Lua virtual machine task中,属于单task应用。

应用脚本运行流程

脚本运行流程是,底层core通过启动Lua task运行Lua虚拟机,Lua虚拟机会找到对应的main.lua逐行嵌套开始解析执行,main.lua最末尾一行代码sys.run()来处理内核或外部的消息。

"外部"消息队列:core中各task间数据通信的一种手段。

"内部"消息队列:在Lua脚本中合宙自定义的一套内部消息驱动机制。

如何获取底层core固件

官方每一个内测通过的底层core固件版本都会更新到合宙Air720U&724U&722U Lua 固件更新说明,并同时发布版本releasenote。

每次发布版本,底层固件core压缩包中有6个不同功能组合的固件,解压后会发现有6个.bin文件+6个.pac文件+1个readme.txt文件,.bin为远程升级文件,.pac为需要下载的固件版本。

Lua上层脚本包跟底层core固件版本并不是同步更新,每一个内测通过的luat上层脚本包会更新。

Luat上层脚本包主要由demo + lib组成,解压下载后的Luat上层脚本包有三个文件夹:demo、lib、doc。

demo是各个功能的示例代码,包含UI开发、应用开发、驱动开发,可以直接下载到开发板中测试。lib是合宙官方为方便用户进一步做应用开发写的lib库,一般情况下不需要修改lib,直接引用即可,doc是注释文件。

LuaTools简介

Luatools是合宇宙提供的单机版调试工具,支持最新固件获取、固件打包、trace打印、单机烧录等功能。此工具适用于合宙的SoC

相关推荐
石像鬼₧魂石3 小时前
HexStrike-AI人工智能 渗透测试学习(Metasploitable2 192.168.1.4)完整流程总结
学习·ubuntu
非凡ghost4 小时前
MusicPlayer2(本地音乐播放器)
前端·windows·学习·软件需求
蓝桉~MLGT4 小时前
Ai-Agent学习历程—— 阶段1——环境的选择、Pydantic基座、Jupyter Notebook的使用
人工智能·学习·jupyter
杰米不放弃5 小时前
AI大模型应用开发学习-26【20251227】
人工智能·学习
执笔论英雄6 小时前
【RL】Megatron使学习forward_backward_func返回值
学习
幺零九零零7 小时前
压测学习-JMeter
学习·jmeter
程途拾光1587 小时前
自监督学习在无标签数据中的潜力释放
人工智能·学习
软件技术NINI8 小时前
JavaScript性能优化实战指南
前端·css·学习·html
Blossom.1188 小时前
多模态大模型LoRA微调实战:从零构建企业级图文检索系统
人工智能·python·深度学习·学习·react.js·django·transformer
一 乐9 小时前
健身房预约|基于springboot + vue健身房预约小程序系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·小程序