如果模块内置的eMMC中擦除引导加载程序(或使用无效映像写入)时,目标板将无法启动,这时则可以从其他介质引导目标板启动,然后在uboot界面中更新eMMC闪存中的启动镜像或是完整卡刷包。为了在加载uboot后,能使用卡刷包,请把带有正确镜像的卡刷包解压到U盘或是SD卡中(注意SD卡要用FAT32,并且不要用过大的扇区)
使用USB接口来恢复镜像(非usb转uart的console口),除了连接原有console口的调试电脑外,您还需要一台Linux主机和一根额外的USB Type-C 数据线。当然您也可以用同一台Linux电脑来实现。
操作方法: 注意,除了从官方的服务器下载预编译的固件外,确保无误的话也可以使用自己编译的固件。 下面固件下载请在Linux主机上完成:
dfu-util -a 0 -D tf-a-ccmp25-dvk-usb.stm32 dfu-util -a 0 -e sleep 1 dfu-util -a 0 -D fip-ccmp25-dvk-ddr.bin dfu-util -a 0 -e sleep 1 dfu-util -a 1 -D fip-ccmp25-dvk-optee.bin dfu-util -a 0 -e
串行终端显示启动 U-Boot 的设备,此时在Uboot界面,您可以继续将 U-Boot 重新刷到 eMMC 中。比如使用卡刷包卡刷,以更新eMMC中损坏的镜像。如果没有U盘或SD卡,也可以通过FTP来更新固件(参考后附官方文档)。
注意,卡刷完成后,您需要把微动开关恢复为原来状态,然后按reset或重新上电,以便从模块闪存上的固件来启动。