最近折腾AIR32F103的固件,板子不幸变砖。本文给出刷回官方固件救砖的方法。

故障定位

连上USB后板载3个LED全灭,但系统会自动挂载名为MAINTENANCE的U盘。尝试拖拽原版固件到U盘,板子重启,现象依旧,U盘内会增加FAIL.TXT,内容为更新失败。即启动卡在维护模式。此时基本能判断硬件没问题,bootloader异常。

接线

这里用刷了CMSIS-DAP的Blue Pill (STM32F103C8T6)做调试器。

DAP AIR32
PB14 SWD_DIO
PB13 SWD_CLK
PB0 RST

IMG_20221209_153505

编译OpenOCD

编译openocd-esp32,但不安装。

1
2
3
4
5
sudo apt-get install libhidapi-dev
git clone https://github.com/espressif/openocd-esp32
./bootstrap
./configure --enable-cmsis-dap
make

执行固件刷写的命令示例:

1
./src/openocd -s tcl -f interface/cmsis-dap.cfg -f tcl/target/air32f1x.cfg -c "program ~/src/luatos-soc-air32f103/AIR_Jlink_Keil/air32_daplink.hex verify reset exit"

其中air32f1x.cfg内容见此处,官方固件在这里。先输入好命令别急着回车。

系统存储器启动

Blue Pill上有两个跳线,通过设置BOOT0为1,BOOT1为0即可在通电后进入该模式。

$fileName

AIR32F103开发板没有,不过可以通过查阅AIR32F103芯片数据手册开发板原理图可得知BOOT0是芯片44脚(BOOT按键),BOOT1是PB2,接蓝色LED,未引出。

刷回官方固件

故救砖步骤如下:

  1. DAP通过USB连PC
  2. 按住BOOT键不放
  3. 按一下RST键
  4. PC按回车执行上一步输好的刷写命令

注:刷写过程中要一直按着BOOT键不放,直到刷写结束出现shutdown字样才松开。

最后断开DAP的USB,拆线,连上AIR32的USB,又可以继续愉快地折腾了。