面对繁杂的嵌入式开发技术,如何快速入门?本指南聚焦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开发板,就可以听到蜂鸣器的播放声音了。 在应用开发中,可根据实际需求灵活调整。 今天的内容就分享到这里了,欢迎感兴趣的朋友加技术交流群一起探讨。