本帖最后由 HonestQiao 于 2021-11-20 18:26 编辑
LuatOS-SoC是一款实时操作系统,用户编写Lua代码就可完成各种功能,仅需极少的内存和Flash空间。
LuatOS的Air103固件,正好能够支持W806,今天我们就在W806-Kit上跑起LuatOS并点灯。
进行W806上的LuatOS开发,官方提供的工具包括luatools和lua
tide。
- luatools:多功能下载调试工具
- VSCode LuatIDE插件,为luatOS开发者提供强大的集成式开发环境
但LuatIDE对W806的支持还在完善中,所以我们目前使用luatools。
一、下载luatools并更新
luatools下载地址:
https://www.openluat.com/Product/software/luatools.html
应下载其中的
[LuaTools尝鲜版] 点此下载,下载后,请新建LuatOS目录,并将下载的Luatools_v2.exe放置其中。
首次启动Luatools,会自动创建相关的目录,并提示下载更新对应的数据文件。
更新成功后,提示如下:
二、连接设备:
用标准u***线,将
开发板接到电脑上:
这个板子,做工还是不错的,就是连个针都没有焊,得自己动手了。
然后,查看设备管理器,如果驱动自动安装正确,会显示如下的CH340串口设备。
如果没有自动安装驱动,可以下载CH340驱动安装,重启后再次连接开发板。
下载地址:
http://www.wch.cn/downloads/CH341SER_EXE.html
三、检查串口通讯:
参考如下界面,按照数字顺序,进行设置:
要点:
1. 选项及工具->工具设置->Uart,设置串口通讯速率为921600,然后点关闭设置窗口几个
2. 串口列表部分,选择正确的串口
3. 打印方式勾选通用串口打印
4. 点(7)的打开串口
5. 再按一下开发板上的[RST_N]按键,此时应可从调试窗口,看到串口输出。如果显示为乱码可不用紧张,这一步只要成功通讯即可。
四、下载LuatOS固件:
参考上图,点击下载固件,然后选择103对应的NOUI固件,再点击下载,界面会自动显示提示:
根据提示,需要及时按开发板上的[RST_N]按键。如果没有按,则会提示超时:
如果一切正常,下载正常进项中:
直至完成:
然后关闭下载串口,打开串口(通常会自动打开),会显示如下信息:
这表示LuatOS固件写入成功,但是还没有执行脚本。
下一步,我们就可以开始写入脚本了。
五、开发lua脚本:
在W806-Kit开发板上,有3个LED可以控制,对应GPIO端口为18、19、20
参考LuatOS官方的演示代码,我们写了一个简单的LED程序:
- -- LuaTools需要PROJECT和VERSION这两个信息
- PROJECT = "gpiodemo"
- VERSION = "1.0.0"
- -- sys库是标配
- _G.sys = require("sys")
- --添加硬狗防止程序卡死
- wdt.init(15000)--初始化watchdog设置为15s
- sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
- local LEDA = gpio.setup(16, 0, gpio.PULLUP) -- PB0输出模式
- local LEDB = gpio.setup(17, 0, gpio.PULLUP) -- PB1输出模式
- local LEDC = gpio.setup(18, 0, gpio.PULLUP) -- PB2输出模式
- sys.taskInit(function()
- wdt.init(15000)
- sys.timerLoopStart(wdt.feed, 10000)
- local count = 0
- local uid = mcu.unique_id() or ""
- while 1 do
- -- 一闪一闪亮晶晶
- LEDA(count & 0x01 == 0x01 and 1 or 0)
- LEDB(count & 0x02 == 0x02 and 1 or 0)
- LEDC(count & 0x03 == 0x03 and 1 or 0)
- log.info("gpio", "Go Go Go", uid:toHex(), count)
- sys.wait(1000)
- count = count + 1
- end
- end)
- -- 用户代码已结束---------------------------------------------
- -- 结尾总是这一句
- sys.run()
- -- sys.run()之后后面不要加任何语句!!!!!
将其保存在LuatOS/projects/LED/main.lua中。对应的目录,请自己建立。
LuatOS相关的资料,可以反问LuatOS官网对应页面查看了解和学习:
https://doc.openluat.com/article/3674
六、写入程序:
参考上述界面,使用luatools的项目管理功能,新建test项目,并选择正确的底层core和上一步保存的脚本,然后点击下载底层和脚本,即可写入。
在下载过程中,会提是等待设备重启,此时同样需要按开发板上的[RST_N]按键,才能成功写入,写入完成,进度条会变成绿色,并提示下载成功。
提醒:
1. 首次下载的时候,最好是选择下载底层和脚本;
2. 后续开发再次下载的时候,使用下载脚本即可。
七、实际运行结果:
关闭项目管理窗口,重启设备,将会看到如下的信息:
"Go Go Go"部分,就表示我们的脚本执行成功了,对应之前代码中的【log.info("gpio", "Go Go Go", uid:toHex(), count)】,你也可以修改了,重新写入,然后观察执行效果。
八、开发板实际表现: