Luat开源硬件

LuaTask教程之Hello World

2018-03-23  本文已影响64人  Luat物联网通信模块

某程序员退休后决定练习书法,于是重金购买文房四宝。一日,饭后突生雅兴,一番研墨拟纸,并点上上好檀香。定神片刻,泼墨挥毫,郑重地写下一行字:hello world!

上一章讲到如何验证开发板,使用的是官方提供的固件和脚本。本章先不讲Luat的运行原理,先写个Hello World压压惊。

在此之前必须先理解几个名词:

底层软件,也叫基础软件(core),基础软件编译后的文件称为lod。底层lod,不同功能不同lod,合宙官方提供,详见core文件中。用C语言开发完成,内嵌了Lua虚拟机,支持上层软件的运行。参见模块固件版本

上层软件(script),二次开发部分,详见script。文件采用 Lua 脚本语言开发,是模块的应用例程源码。脚本分为两部分:Lib和demo。其中:

​ Lib中是库文件,对AT命令封装成API,lib 实现公用的服务,比如sms,call,audio,mqtt,gps等等;

​ 脚本:开发者二次开发的代码,自行编写。demo代码合宙官方提供的一些常用接口的脚本例程,用户可以在demo基础上修改糅合,实现自己的业务功能。

基础软件和上层软件,两部分软件缺一不可,一起运行于模块之中,完成各种功能和应用。

量产工具:用于工厂生产和远程升级。

画了一张图来描述几者之间的关系:

image

接下来进入正题:

1、从https://github.com/openLuat/Luat 下载源码

2、目录结构如下:

image

core:存放基础软件

demo:一些例子

doc:说明文档

drive:第三方模块驱动

img:存放lcd显示的图片

lib:库文件

mp3:存放播放的音乐

main.lua:主文件

3、打开demo文件夹,新建一个test.lua,用自己喜欢的编辑器打开编辑(比如sublime text ,vs code,根据自己的爱好),这儿以sublime text 为例,输入

module(..., package.seeall)                 --必须,目的是让其他文件能包含该文件


sys.taskInit(function()                 --任务1
    while true do
        print("Hello World")
        sys.wait(1000)
    end
end)

sys.taskInit(function()                 --任务2
    while true do
        print("Luat is esay")
        sys.wait(2000)
    end
end)

打开main.lua,添加

require "test"

这样就将test文件包含到了main.lua里面,可以理解为C语言中的#include \

4、下载lod,教程可在wiki上找到,就不在这儿累赘

5、下载脚本

image

添加lib下面的全部Lua文件,main.lua以及自己写的test.lua。添加完成后点下载即可

6、查看结果

关闭下载框,进入主界面,点击开始打印

image

可以看到,输出两次Hello World才会输出一次Luat is esay,这是为什么呢?看一下sys.wait里面的延时就知道了。

本章教程到此结束。有兴趣的尝试修改print的数据,增加多个任务,或者修改sys.wait的时间看看会有什么变化,下一章将会讲解运行原理。

上一篇 下一篇

猜你喜欢

热点阅读