《设备固件安全升级方案实战课程》
第2章 固件基础
📦 2、固件基础:什么是固件、固件在嵌入式系统中的角色、常见固件格式
🔍 2.1 什么是固件
固件(Firmware) 是嵌入在硬件设备中的软件程序,它位于硬件与操作系统(或应用程序)之间,是设备运行的“灵魂”。与普通软件不同,固件通常存储在非易失性存储器(如 Flash、ROM、EEPROM)中,断电后不会丢失。
💡 核心特点:
- 固化性:写入后不易修改,升级需专用工具或协议
- 紧耦合:与硬件寄存器、外设地址直接交互
- 实时性:通常运行在裸机或 RTOS 环境下,响应时间确定
- 资源受限:RAM/Flash 容量小,代码需高度优化
▲ 图1:固件在嵌入式系统中的层次位置
🎯 2.2 固件在嵌入式系统中的角色
▲ 图2:固件在嵌入式系统中的核心角色
📄 2.3 常见固件格式 (BIN / HEX / ELF)
固件以不同格式存储和分发,每种格式适用于不同阶段(开发、调试、量产)。以下是三种最常用的格式:
📦 BIN
纯二进制,无地址信息,从起始地址连续存储。
✅ 适合量产烧录
✅ 体积最小
📋 HEX (Intel HEX)
文本格式,包含地址、数据、校验和,可分段。
✅ 支持非连续地址
✅ 可读性强
🔧 ELF
可执行与链接格式,包含符号表、调试信息、段表。
✅ 用于开发调试
✅ 支持动态链接
▲ 图3:BIN / HEX / ELF 格式结构对比
📝 示例:HEX 文件片段解析
:10000000FF0123456789ABCDEF0123456789ABCDEF00
:10001000AABBCCDDEEFF0011223344556677889900
:04002000DEADBEEF
:00000001FF
🔹 每行以 : 开头,包含长度、地址、类型、数据、校验和。
🔹 最后一行 :00000001FF 表示文件结束。
📌 本节要点
- 固件 是嵌入式设备的底层软件,负责硬件初始化、驱动、协议和安全。
- BIN 是纯二进制,适合量产;HEX 带地址和校验,适合编程器;ELF 带调试信息,适合开发。
- 升级固件时,通常将 BIN/HEX 通过 Bootloader 写入 Flash,并校验完整性。
专注课程资料整理