如何使用LuaTools烧录软件
一、本篇文章的目的
针对Air8000 LuatOS二次开发方式,合宙技术人员在docs文档中心编写了几十篇快速入门和软件指南文档。
每篇文档都会基于一个具体的demo项目,使用Luatools将项目使用的内核固件、脚本和资源文件,烧录到Air8000核心板中;
本篇文章重点介绍如何使用Luatools工具烧录项目文件到Air8000核心板中。
二、准备软硬件环境
2.1 软件环境
2.1.1 准备好项目文件
在烧录项目文件到Air8000核心板之前,你需要准备好以下几种项目文件:
1. 内核固件;
2. 用户脚本文件和用户资源文件;
3. lib脚本文件;
其中:
内核固件和用户脚本文件是必须存在的;
用户资源文件不是必须存在的;
lib脚本文件是必须存在的,但是不一定要用户提供,可以使用Luatools自动选择的默认lib脚本文件。
这几种项目文件的详细解释,参考:软件环境清单中的2.2和2.3章节 。
2.1.2 准备好Luatools工具
Luatools 作为由合宙所提供的调试工具,Luatools 支持最新固件获取、固件打包、trace 打印、单机烧录等功能
此工具适用于合宙所有 4G 模组, 4G + GNSS 模组和工业引擎系列。
本篇烧录教程需要使用最新版本的 luatools 工具(版本号大于等于3.0.22),点击此处下载
2.2硬件环境
2.2.1 Air8000 核心板
首先核心板的背面拨到 ON,正面的拨到供电端。开发板使用说明查看
2.2.2 USB 转 TTL 串口板,烧录 WIFI 固件使用
三、Air8000核心板进入BOOT下载模式
把Air8000模组的BOOT引脚拉到1.8v,或者直接把BOOT引脚和VDD_EXT引脚相连,然后再给模组上电开机或者重启模组,就可以进入BOOT下载模式了。
具体到Air8000核心板,根据核心板的当前运行状态,执行以下两种情况种的一种即可:
1.当Air8000核心板没有开机时,按着BOOT键然后长按POW开机。
2.当Air8000核心板没有开机时,按下BOOT键然后短按重启键。
通过以下方式来判断是否成功进入BOOT下载模式:
在电脑的设备管理器中,查看串口设备,如果出现了一个端口,则表示成功进入BOOT下载模式,如下图所示:
在电脑的设备管理器中,查看串口设备,如果出现了三个或者四个端口,则表示没有进入BOOT下载模式,如下图所示:
如果没有进入BOOT下载模式,则一直重复本小节的操作步骤,直到成功进入BOOT下载模式。
一旦进入BOOT下载模式,表示硬件连接上已经处于就绪状态,此时就可以使用Luatools工具进行烧录了!
四、烧录项目文件到Air8000核心板中
4.1 Air8000 烧录介绍
Air8000 需要分别烧录 WIFI 固件以及 4G 固件,烧录过程参考4.2章节和4.3章节。
注意:烧录 WIFI 固件及脚本时,需要先烧录4G固件和4G 脚本文件,通过 4G 脚本控制 GPIO23, 下电 1ms,控制 demo 在 4.3 章节。
4.2 烧录 4G 固件及脚本
使用 Luatools 工具,通过 USB 端口烧录 4G 固件和 4G 脚本。
4.2.1 4G 固件
链接地址如下:
https://gitee.com/openLuat/LuatOS-Air8000/tree/master/core
4.2.2 4G脚本文件
链接地址如下:
https://gitee.com/openLuat/LuatOS-Air8000/tree/master/Core_board_demo
4.2.3 烧录教程
1、Air8000 核心板通过 USB 连接到电脑。
2、打开 Luatools,选择 4G 模块 USB 打印,点击项目管理测试。
3、选择 4G 固件和 4G 脚本进行烧录
4.3 烧录 WIFI 固件及脚本
使用 Luatools 工具,通过串口烧录 WIFI 固件和脚本。
注意:烧录 WIFI 固件及脚本时,需要先烧录4G固件和4G 脚本文件,通过 4G 脚本控制 GPIO23, 下电 1ms,控制 demo 参考如下:
4G控制脚本下载地址:点我,下载完整压缩文件包
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "4G_burn"
VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
-- 引入必要的库文件(lua编写), 内部库不需要require
sys = require("sys")
-- mobile.flymode(0,true)
if wdt then
--添加硬狗防止程序卡死,在支持的设备上启用这个功能
wdt.init(9000)--初始化watchdog设置为9s
sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
end
log.info("main", "cc0258_gnss")
gpio.setup(0, function()
sys.publish("GO")
end)
pm.ioVol(pm.IOVOL_ALL_GPIO, 3300) -- 所有GPIO高电平输出3.3V
sys.taskInit(function()
sys.wait(100)
while 1 do
sys.waitUntil("GO")
-- 控制一下GPIO23, 下电1ms
gpio.setup(23, 0,gpio.PULLUP)
sys.wait(2)
gpio.setup(23, 1,gpio.PULLUP)
log.info("main", "打开WIFI 电源12")
end
end)
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
4.3.1 WIFI 固件
wifi固件下载地址,点我,下载完整压缩文件包
4.3.2 wifi脚本文件
wifi脚本文件下载地址,点我,下载完整压缩文件包
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "netdrv"
VERSION = "1.0.4"
-- sys库是标配
_G.sys = require("sys")
--[[特别注意, 使用http库需要下列语句]]
_G.sysplus = require("sysplus")
sys.taskInit(function()
-- sys.wait(500)
airlink.start(0)
wlan.init()
-- wlan.connect("uiot", "12345678")
-- sys.wait(500)
-- wlan.createAP("uiot5678", "12345678")
-- log.info("设置静态IPV4")
-- netdrv.ipv4(socket.LWIP_ETH, "192.168.1.129", "255.255.255.0", "192.168.1.1")
-- log.info("ip", socket.localIP(socket.LWIP_ETH))
end)
sys.taskInit(function()
-- sys.waitUntil("IP_READY")
sys.wait(6000)
while 1 do
sys.wait(6000)
-- log.info("http", http.request("GET", "http://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_ETH,timeout=3000}).wait())
log.info("lua", rtos.meminfo())
log.info("sys", rtos.meminfo("sys"))
log.info("ticks", mcu.ticks(), hmeta.chip(), hmeta.model(), hmeta.hwver())
-- log.info("ip", socket.localIP(socket.LWIP_ETH))
end
end)
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
4.3.3 烧录教程
1、Air8000 核心板的 UART10 通过串口板连接到电脑,核心板可以通过 USB 供电或者电池供电。
2、正确插入 USB 转 TTL 串口板并且 USB 成功连接电脑后,电脑的设备管理器可以看到 USB-SERIAL CH340 的端口。
3、打开 luatools 工具,选择通用串口打印,选择上一小节显示的串口号,波特率选择 2000000。
4、选择 WIFI 固件和 WIFI 脚本进行烧录。
5、出现下载准备中字样时,需要按下 Air8000 核心板的 RESET 复位按键。