命令行刷机指南#

一、刷机介绍:#

luatos可使用命令行进行刷机,如不使用luatools刷机也可自己使用命令行或单独封装刷机软件。air101/air103使用air101_flash.exe,air105/esp32-c3使用soc_download.exe来进行刷机。

介绍之前我们先来了解一下soc文件构成:

.soc文件为合宙luatos-soc系统使用的固件格式,我们可以用7z等解压缩软件对其进行解压,可发现固件构成如下:

.bin文件(固件二进制文件)

.exe文件(刷机程序,air101/air103为air101_flash.exe,air105/esp32-c3为soc_download.exe)

info.json(刷机参数信息)

二、命令行刷机参数介绍:#

1、air101/103命令行刷机:#

Air101/Air103需要目前一共需要输入14个参数:

1、-ds 下载时设置串口速度,默认值为115200 可使用15200 | 460800 | 921600 | 1000000 | 2000000|1M | 2M

2、-c 串口号 例如:COM0

3、-ws 工作串口速度,默认值为115200 可使用1200 - 2000000|1M | 2M

4、-rs 复位动作,设置设备复位方法,默认为手动控制 可选none | at | rts

5、-dl 下载固件文件,默认下载压缩映像

更多参数使用运行 air101_flash.exe -h 查看

举个例子

air101_flash.exe -ds 2M -c COM0 -ws 115200 -rs rts -dl air10x.fls   

各参数可在info.json中查看

2、air105命令行刷机:#

Air105需要目前一共需要输入14个参数:

1、类型,字符串,air105须填写air105_download

2、串口号,10进制,1~255

3、通用bl下载时的波特率,10进制

4、下载bin文件路径,带引号的字符串

5、下载bootloader的文件名称,带引号的字符串

6、bootloader写入地址,16进制,不带0x

7、下载APP的文件名称,带引号的字符串

8、APP写入地址,16进制,不带0x

9、下载脚本的文件名称,带引号的字符串

10、脚本写入地址,16进制,不带0x

11、RTS复位的电平,10进制,0或者1

12、只下载脚本的标志,10进制,0或者1,1表示只下载脚本

13、文件系统地址

14、文件系统需要擦除的长度,如果不擦,写0

举个例子

soc_download.exe air105_download 83 3000000 "E:\air105\core\hex\air105\debug" bootloader.bin 01001000 app.bin 01010000 script.bin 01300000 0 0 01380000 0

各参数可在info.json中查看

3、esp32-c3命令行刷机:#

1、类型,字符串,esp32-c3须填写esp32_download

2、串口号,10进制,1~255

3、通用bl下载时的波特率,10进制

4、下载bin文件路径,带引号的字符串

5、下载bootloader的文件名称,带引号的字符串

6、bootloader写入地址,16进制,不带0x

7、下载APP的文件名称,带引号的字符串

8、APP写入地址,16进制,不带0x

9、下载脚本的文件名称,带引号的字符串

10、脚本写入地址,16进制,不带0x

11、分区表的文件名称,带引号的字符串

12、分区表写入地址,16进制,不带0x

13、芯片下载参数,目前是0x00ff0200,byte3是芯片类型,目前只有0,byte2是spi flash info(写0xff就是大小从ID中获取),byte1 是spi mode(写0xff就是不修改固件,目前是0x02),byte0没用是0

14、只下载脚本的标志,10进制,0或者1,1表示只下载脚本

15、文件系统地址

16、文件系统需要擦除的长度,如果不擦,写0

举个例子

soc_download.exe esp32_download 66 1152000 "_temp\soc\download\esp32" "bootloader.bin" 00000000 "luatos.bin" 00010000 "script.bin" 01300000 "partition-table.bin" 00008000 00ff0200 0 00380000 0000

如果3个bin合并成1个bin,可以如下

soc_download.exe esp32_download 66 1152000 "_temp\soc\download\esp32" "bootloader.bin" ffffffff "luatos_esp32.bin" 00000000 "script.bin" 01300000 "partition-table.bin" ffffffff 00ff0200 0 00380000 0000

各参数可在info.json中查看

三、控制台中打印的信息需要关注以下字段#

download error:xxx 下载出错及原因

download stage xxx:yyy 下载XXX(bl,app.bin, script.bin)的 yyy阶段,注意yyy是数字,bl阶段根据不同芯片有不同的解释,app.bin和script.bin有通用的解释,如下

air105的bl

0:尝试通过RTS复位芯片,及同步芯片串口

1:同步串口成功,开始连接串口

2:连接串口成功,发送bootloader信息

3:开始擦除相关flash

4:开始写入bl数据

5:完成

通用bl下载协议:

0:开始同步

1:发送bin信息

2:发送bin数据

3:等待验证固件信息

esp32的ramrun:

0:尝试通过RTS复位芯片,及同步芯片串口

1:同步串口成功,开始连接串口

2:连接串口成功,发送bootloader信息

3:开始擦除相关flash

download percent:xxx 当前下载的进度

全部下载完成后提示download OK