前言:
在嵌入式产品开发中,量产阶段的系统烧录一直是个让人头疼的问题。传统的串口烧录需要连接电脑、打开工具、配置参数,步骤繁琐还容易出错。今天给大家介绍一个更高效的解决方案——U盘自动烧录功能。
一、背景小知识
U盘自动烧录功能,简单来说,就是"免电脑、免工具、插盘即烧"的自动升级方式,能大幅降低操作门槛、提升部署效率。。
你只需将系统镜像文件和烧录脚本放入U盘,插入设备后开机,系统就能自动识别并完成烧录。整个过程无需人工干预,也不需要连接电脑。
💡 小贴士:不仅支持U盘,TF卡也能实现同样的功能,系统会先检测TF卡再检测U盘,两种存储都能用。自动升级逻辑:
上电 → UBoot阶段 → 扫描TF/U盘 → 识别升级脚本 → 按指令烧录 → 完成后正常启动
本文基于眺望电子T113-i核心板,完整讲解从配置修改、UBoot开启、U盘准备到烧录指令编写的全流程,新手也能快速上手。
二、技术实现详解
2.1 修改启动配置
device/config/chips/t113_i/configs/evb1_auto/buildroot/env.cfg
在 env.cfg 文件中调整启动顺序,让系统在启动时先检查是否需要自动烧录:
# 原配置
bootcmd=run setargs_mmc boot_normal
# 修改为
boot_autoupdate=auto_update_check
bootcmd=run setargs_mmc boot_autoupdate boot_normal
2.2 U-Boot配置
针对眺望电子T113-i核心板的硬件设计(VBUS引脚为PB12),需要在U-Boot中开启相关配置:
CONFIG_SUNXI_AUTO_UPDATE=y
CONFIG_SUNXI_USB=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB0_VBUS_PIN="PB12"
CONFIG_USB1_VBUS_PIN="PB12"
CONFIG_USB2_VBUS_PIN="PB12"
CONFIG_USB3_VBUS_PIN="PB12"
CONFIG_CMD_USB=y
2.3 U盘准备
将U盘格式化为FAT32,按以下目录结构放置文件:
├─scripts/
│ └─ auto_update.txt # 烧录脚本
├─update/
│ ├─ t113_i_buildroot_evb1_auto_uart0.img # 整包镜像
│ └─ boot.fex # 单独分区镜像(可选)
auto_update.txt文件示例格式为:
sunxi_flash write <file name> <partition>
2.3.1 整包烧录
根据上诉的U盘目录结构,在scripts/auto_update.txt文件写入以下内容
sunxi_flash write update/t113_i_buildroot_evb1_auto_uart0.img firmware
2.3.2单独烧录指定分区
根据上诉的U盘目录结构,在scripts/auto_update.txt文件写入以下内容
sunxi_flash write update/<file name> <partition>
%
示例:单独烧录kernel
sunxi_flash write update/boot.fex boot
%
分区名有部分是跟OTA使用一样,如boot0之类的,其余跟分区表保持一致即可(文件系统分区暂不支持)
总结
全志T113-i的U盘自动烧录,本质是UBoot阶段的自动检测+脚本执行,只要配置正确、目录规范,就能实现真正的“插盘即烧”。U盘自动烧录功能看似简单,却能显著提升量产效率,降低对操作人员的技术要求。对于使用全志T113-i平台进行产品开发的企业来说,这是一个值得在方案设计阶段就规划进去的功能。
希望这篇技术分享对你有帮助,如果有任何实现细节想了解,欢迎留言交流!
416