"); //-->
针对嵌入式开发新手,本文提供了一条清晰的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开发板,就可以听到蜂鸣器的播放声音了。
在应用开发中,可根据实际需求灵活调整。
今天的内容就分享到这里了,欢迎感兴趣的朋友加技术交流群一起探讨。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。