海思官方只提供了 Windows 下的烧录工具 BurnTool,支持串口,USB,JLINK,网口等方式,但无法在 Linux 下烧录。
有人根据开源出来的文档和源码,逆向出 ws63flash,可以在 Linux 等全平台以串口方式烧录。虽然其名字为 ws63,但其同样支持 fwpkg 打包的 BS21 芯片。
安装 ws63flash
shell
$ wget https://github.com/goodspeed34/ws63flash/releases/download/v0.3.1/ws63flash_0.3.1-1_amd64.deb
$ sudo apt install ./ws63flash_0.3.1-1_amd64.deb
使用
shell
$ sudo ws63flash \
--flash /dev/ttyUSB0 \
--baud 500000 \
~/src/fbb_bs2x/src/tools/pkg/fwpkg/bs21e/bs21e_all.fwpkg
+-+-------------------------------+----------+----------+-+
|F|BIN NAME |LENGTH |BURN ADDR |T|
+-+-------------------------------+----------+----------+-+
|!|loaderboot_sign.bin |0x00005c40|0x00000000|0|
|*|partition.bin |0x00000400|0x90100000|1|
|*|flashboot_sign_a.bin |0x00009070|0x90101000|1|
|*|flashboot_sign_b.bin |0x00009070|0x9010b000|1|
|*|application_sign.bin |0x00077b40|0x90115000|1|
|*|bs21e_all_nv.bin |0x00001000|0x901fe000|1|
+-+-------------------------------+----------+----------+-+
Waiting for device reset...
Establishing ymodem session...
Xfer loaderboot_sign.bin (0x5c40 B, 24 BLK) 100%
Xfer partition.bin (0x400 B, 1 BLK) 100%
Xfer flashboot_sign_a.bin (0x9070 B, 37 BLK) 100%
Xfer flashboot_sign_b.bin (0x9070 B, 37 BLK) 100%
Xfer application_sign.bin (0x77b40 B, 479 BLK) 100%
Xfer bs21e_all_nv.bin (0x1000 B, 4 BLK) 100%
Done. Reseting device...