固件烧录与系统升级
本篇目标:搞懂”固件”是什么,学会把出厂/新版固件烧进板子的 NAND,以及不重烧整包时如何做小升级(换 Logo、更新分区)。
本篇不涉及编译(编译另见系统编译文档)。你拿到的是已经打包好的.img固件包,或厂家提供的升级文件。
先搞清楚:什么是”固件”
简单说,固件 = 能直接烧进板子存储、让板子跑起来的完整镜像,里面包含:
- U-Boot(启动引导):负责初始化硬件、加载内核。
- Linux 内核:操作系统的核心。
- 根文件系统(rootfs):所有命令、库、配置、应用的集合。
本板使用 NAND Flash 启动,固件被烧录到 NAND 上。出厂时板子已经烧好一份可用固件,正常开发体验不需要重烧;只有在”固件损坏 / 需要换版本 / 批量生产”时才需要烧录。
板子上的分区(了解即可)
固件在 NAND 上被分成几个区(定义见 SDK 的 sys_partition.fex):
| 分区名 | 作用 |
|---|---|
boot-resource |
存放开机 Logo 等启动资源 |
env / env-redund |
U-Boot 环境变量(双备份) |
bootA |
内核镜像 |
rootfsA |
根文件系统(ubifs,可读写) |
private |
厂商私有数据 |
什么时候需要整包烧录
| 场景 | 是否要整包烧 |
|---|---|
| 板子变砖(起不来) | ✅ 是 |
| 想换一个完整版本固件 | ✅ 是 |
| 批量生产烧同样的固件 | ✅ 是 |
| 只想换张开机 Logo | ❌ 否(见 2.6) |
| 只想更新某个文件 | ❌ 否(串口/scp 即可) |
方式一:USB 量产(PhoenixSuit,最常用)
全志平台标准的 USB 烧录工具叫 PhoenixSuit(也常叫”烧写工具”)。适合开发阶段和维修。
步骤
- 安装 PhoenixSuit(Windows 版),按提示安装附带的 USB 驱动。若设备管理器出现带黄叹号的未知设备,手动指定驱动到 PhoenixSuit 安装目录下的
Drivers。 - 打开 PhoenixSuit → 一键刷机 / Firmware → 选择你的
.img固件包。 - 让开发板进入 USB 烧录(下载)模式。通过长按开发板的烧录键⑰,再接上电源①。
- 板子进入下载模式后,PhoenixSuit 会自动识别并开始烧录,进度条走完即成功。
- 断开 USB、重新上电,板子从 NAND 启动新固件。
⚠️ 烧录过程不要断电、不要拔 USB。中途断开可能导致 NAND 分区损坏,需要重来。
💡 若 PhoenixSuit 一直识别不到设备:换 USB 口/数据线、确认驱动装好、确认确实进入了下载模式(可用
lsusb在 Linux 上看是否出现全志设备)。
方式二:卡量产(TF 卡烧录,适合无 USB 下载场景)
SDK 提供了卡量产机制(cardtool.fex / cardscript.fex),把量产文件写入 TF 卡,插入量产卡,触发烧录模式,将系统烧写至 NAND。
简述流程(以厂家提供的卡量产包为准):
- 准备一张 TF 卡,用厂家提供的卡量产工具把量产镜像写入 TF 卡。
- 将 TF 卡插入开发板,按硬件手册方式上电/启动,使其从卡启动并自动烧写 NAND。
- 烧写完成后拔卡、重新上电,从 NAND 启动。
卡量产多用于产线,普通开发更推荐 PhoenixSuit。具体工具与镜像请向厂家索取。
注:本文档仅提供了通过USB烧录的教程,其它方式请自行查找相关资料
TF烧录工具包可见网盘链接:
通过网盘分享的文件:TF卡烧录工具包
链接: https://pan.baidu.com/s/1EmWw1-yLhHWaRtzfQujRqQ
提取码: YZJS
拿到固件包后:先确认再烧
拿到 .img 后,建议先和厂商确认:
- 固件对应的 板型(必须是 YPT153EVB /
t153_nand_base)。 - 固件对应的 NAND 容量档(256MB 页 2048 / 512MB 页 4096)——烧错容量档会分区溢出。
- 固件对应的 显示模式默认(rgb / hdmi)。
不重烧整包:运行期小升级
很多小改动不需要整包烧录,板子起来后在命令行就能做。
2.6.1 更换开机 Logo(最常用)
开机 Logo 是一张 1024×600 的 BMP 图片,存在 boot-resource 分区。板上已内置 logo_update 工具:
# 把做好的 bootlogo.bmp 传到板子后,执行(文件名必须叫 bootlogo.bmp)
root@YPT153EVB:~# logo_update bootlogo.bmp- 文件名必须是
bootlogo.bmp,否则脚本报错。 - 脚本会把图片写入
boot-resource分区(/dev/mtdblock6)。 - 重启后生效(Logo 由 U-Boot 在启动早期读取)。
详细做法与图片制作见《更换开机 Logo》篇。
2.6.2 更新单个分区(谨慎)
可用 sunxi_flash 读写指定分区(如更新内核分区 bootA)。该操作有风险,误操作会破坏系统,仅建议在清楚自己在做什么时使用,普通用户请优先用整包烧录或厂家升级包。
root@YPT153EVB:~# sunxi_flash -h # 查看用法排障
| 现象 | 原因 / 处理 |
|---|---|
| PhoenixSuit 识别不到 | 驱动未装好 / 没进下载模式 / 数据线问题 |
| 烧到一半失败 | USB 接触不良、断电;重来 |
| 烧完上电黑屏 | 固件与板型/NAND 容量档不匹配;确认后再烧 |
| logo_update 报错 | 文件名不是 bootlogo.bmp;或图片不是 1024×600 BMP |
最后编辑:林晓燕 更新时间:2026-11-05 14:56