吃过人参果的人都知道:”有些事就像吃人参果,太着急连味道都没尝一口吞下,吃是吃了,但总有遗憾”。与之类似,用SDK直接上手开发板的弊端就是鼓弄了半天却还没有体会出厂固件的功能,绝对是一个缺憾。补救的办法就是再烧一遍出厂固件。
那么问题来了:怎么烧录?用什么烧录?
一、到底有几个烧录工具?
从https://github.com/Ameba-AIoT/ameba-rtos拉取了SDK,会发现SDK下的tools目录下包括所有最新的下载烧录工具:
1、ImageTool:ameba-rtos/tools/ameba/ImageTool
windows的烧录工具可以分区下载固件,打包固件
2、MP_ImageTool:ameba-rtos/tools/ameba/MP_ImageTool_1_N
可以下载打包固件
3、flash.py:ameba-rtos/tools/meta_tools/scripts/flash
linux下下载工具
二、ImageTool

需要通过FILE->选择一个设备分区描述文件:AmbeDplus_FreeRTOS_NOR.rdev
设备分区描述文件主要分2个区:km4_boot_all.bin、km0_km4_app.bin
通过SDK开发可以得到这两个文件,一般只烧录km0_km4_app.bin就可以。
如果想通过ImageTool下载一个打包固件,如下图设置即可,当然由于不知道固件大小,设置的End Addr地址比实际要大一些,用MP_ImageTool就不会有这个问题。
所谓打包固件是将km4_boot_all.bin、km0_km4_app.bin打包为一个bin,便于分发。WB20出厂固件就是一个打包固件。

如何打包固件:
点击Generate选项,按下图选择要打包的km4_boot_all.bin、km0_km4_app.bin文件,输入offset,按Generate按键就可以打包一个Image_All.bin的文件。

三、MP_ImageTool
MP_ImageTool是专门用于烧录打包固件的工具
BW20常规固件可以从这里下载:https://aithinker-static.oss-cn-shenzhen.aliyuncs.com/docs/Firmware/3108-BW20_middleware_combo_soft_V4.18_P1.0.17-OTA_Tag_1.6-4M-20250414.bin
1、先Chip Select AmbebaDplus

2、按下图所示顺序即可下载成功
开始之前,先要按住开发板burn键,按下放开en键,在放开burn键,使开发板进入烧录模式

四、flash.py
flash.py是为方便linux下下载固件的专门工具,首次使用flash.py下载可能会报错:

应该是flash分区不相符,因为出厂使用打包固件烧录的,而flash.py是按照设备分区描述文件:AmbeDplus_FreeRTOS_NOR.rdev进行分区。解决办法就是用ImageTool烧录一次,以后就可以用flash.py烧录了。
flash.py命令格式:flash.py -a COMx
根据自己的设备情况,如:flash.py -p /dev/ttyCH341USB0