合宙LuatOS的个人空间 https://www.eechina.com/space-uid-176273.html [收藏] [复制] [RSS]

博客

解锁LuatOS编程:嵌入式开发新手必备入门知识

已有 73 次阅读2025-6-13 17:10 |个人分类:4G模组| 物联网, 单片机, 4G模块, 通讯模组, 嵌入式硬件

如果你对嵌入式开发充满兴趣,却苦于找不到适合新手的入门路径,那么这篇指南将为你打开LuatOS编程的大门。从环境搭建到基础语法,再到实战案例,本文将系统讲解嵌入式开发的核心知识,助你快速从零基础迈向实战应用!

学习LuatOS的主要方法之一是“运行各个功能模块的demo代码”,本期特别分享——LuatOS编程起步相关内容。
 

注意:本文档的读者,默认都已经了解初步的Lua语法。
 

如果不懂Lua语法的话,可以参考下方链接:http://docs.openluat.com/air780epm/common/lua_lesson/

 

一、底层固件怎么启动LuatOS脚本
 1.1 脚本入口执行文件

简单来说,底层固件首先就是要找到main.lua这个文件,然后启动它。所有的其他功能,都需要在main.lua发起。

如下图Air780EPM模组demo的Camera示例:


1.2 LuatOS启动脚本的详细流程

进一步详细的说,LuatOS的底层固件启动脚本的流程如下:

启动底层core:系统上电或者复位后,底层固件(core)首先启动,进行硬件初始化、内存分配、文件系统挂载等系统底层的基础操作。

加载Lua虚拟机:底层固件加载Lua虚拟机,为执行 Lua脚本提供运行环境;

加载main.lua:自动查找并加载存储在设备上的主脚本main.lua;

执行脚本代码:按顺序执行main.lua脚本中的代码,通常包括任务创建(如 sys.taskInit)、功能初始化等。

进入任务调度:脚本最后通常调用sys.run(),进入事件循环和多任务调度,正式运行用户逻辑。

 

1.3 怎么把固件和脚本烧录到硬件:

使用官方LuatTools,将底层固件和用户Lua脚本烧录到合宙模组或者引擎硬件;上电后,底层固件自动完成上述启动和脚本加载流程,无需手动干预。

Luatools下载及使用参见:https://docs.openluat.com/air780epm/common/Luatools/

 


二、main.lua需要包含哪些部分?

2.1 项目信息声明

在main.lua的文件开头,需要声明项目名和版本号,便于管理和调试。后续的远程升级,也需要用到项目名和版本号。

例如:


2.2 系统库和必要模块加载

在main.lua需要加载LuatOS的基础库和扩展库(如zbuff、onewire等),用来实现具体的业务逻辑。

例如:

截止至当前发文,LuatOS已提供74个核心库和55个扩展库

最新LuatOS库函数开发手册详见:https://docs.openluat.com/osapi/

 

2.3 至少启动一个任务

在main.lua里面,至少需要启动一个任务,否则这个main就无所事事,是一个没什么实际用处的主脚本了。

启动一个任务的方法,分为2个步骤:

创建一个函数,把要做的事情,放在这个函数里面使用。这个函数必须是无限循环的,防止很快结束生命,不妨把这个函数命名为task1()。

调用sys.taskInit(task1),启动这个函数,于是这个任务,就放在待运行的任务列表里面了。


 

2.4 初步理解sys.run()

sys.run() 是一个无限循环的函数。

main.lua的最后一行,只能是sys.run(),代表sys.run() 接管了LuatOS的所有的执行调度工作。

如下图Air780EPM模组demo的LED示例:

sys.run()是LuatOS的运行中枢,后续会详细介绍。
 

 

三、LuatOS脚本编程的核心要点

3.1 LuatOS实现的典型功能

LuatOS脚本是利用了Lua的语法,以及基于LuatOS核心库和扩展库提供的API,进行简便的编程,实现如下功能:

1)实现和云端服务器通信;

2)采集外设的数据,控制外设设备;

3)实现人机交互,包括图形交互和语音交互。

 

3.2 LuatOS的学习要点

要想写好LuatOS的软件,实现上述三个功能,除了逐渐掌握Lua的基本语法之外,还需要熟悉LuatOS的核心库和扩展库,这样才能开发出优质的基于LuatOS的物联网设备软件。

学习的主要方法有如下几个:

1)运行各个功能模块的demo代码;

2)阅读docs.openluat.com的教程文档;

3)遇到不懂问AI;

4)在QQ大群和微信大群进行技术交流。

 

3.3 一个典型的LuatOS实现

一个典型的LuatOS实现,包含main.lua入口文件和若干个功能模块文件。

这里以Air780EPM开发板的蜂鸣器示例代码为例,有两个脚本文件以及一个管脚描述json文件。

   - Air780EPM蜂鸣器应用示例 -  


1)main.lua文件

作用是启动一个任务,让蜂鸣器响一秒钟,再停顿一秒钟,如此往复。


2)airbuzzer.lua

封装了驱动蜂鸣器的功能实现。


3)pins_Air780EPM.json描述了本例使用到的管脚的功能,Air780EPM的26管脚,用作PWM4。



把上述几个文件,连同Air780EPM最新的固件版本,用LuaTools建立一个工程,烧录到Air780EPM开发板,就可以听到蜂鸣器的播放声音了。

在应用开发中,可根据实际需求灵活调整。

 

今天的内容就分享到这里了,欢迎感兴趣的朋友加技术交流群一起探讨。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部