Abstract
嵌入式开发从编译到烧录,会产生多种格式的产物文件。理解每种格式的用途和特点,是高效开发的基础。
本文按用途分类,系统梳理所有常见格式。内容既涵盖二进制固件产物,也包含调试辅助文件和构建记录等开发过程中有价值的文件类型。
备注:近期烧录客户板子遇到多种格式,在笔记中整理常见的烧录格式,分享出来,欢迎大家补充 阅读 批评 指正。support@softor.com.cn
.elf)— 通用源头母文件是什么:编译器(GCC、IAR、TASKING 等)生成的原始目标文件,是整个工具链的核心产物。采用 Executable and Linkable Format,是当今嵌入式领域最主流的可执行格式。
特点:包含最全信息——代码、数据、符号表、调试信息(DWARF)、段地址等。
用途:
示例:
# GCC / ARM-none-eabi 编译输出
stm32f103c8t6.elf
# TASKING TriCore 编译输出
tc397_app.elf
# IAR 编译输出
project.elf
.out)— TI 传统格式是什么:Texas Instruments 早期编译器(老版本 CCS)产生的目标文件,采用 Common Object File Format(COFF),并非 ELF。
特点:结构与 ELF 不同,符号表、段的组织方式有 TI 私有扩展;老版本 DSP(C2000、C5000、C6000)和部分 MSP430 项目常见。
Warning
注意虽然 TI 新版 CCS(基于 LLVM/Clang 的 ti-arm-clang 工具链)已全面转向 ELF 输出,但维护老项目时仍会遇到 COFF 格式的
.out文件,值得单独了解。
用途:
示例:
# TI CCS 旧版编译输出(COFF 格式)
project.out
# C2000 DSP 旧项目
f280049c_control.out
.axf)— ARM 调试中的主力是什么:ARM 工具链(Keil MDK、ADS、RVDS)生成的可执行目标文件。
特点:本质上是带有 ARM 特定扩展的 ELF(ARM Executable Format),工具链内部可当作 ELF 处理。同时包含代码与调试信息,Keil 生态专属。
用途:主要在 ARM 调试器中直接加载,如 Keil MDK、ULINK 调试会话。
示例:
# Keil MDK 编译输出
Project.axf
# 带版本信息的命名
firmware_v2.1.0.axf
.o / .obj)— 编译中间产物是什么:编译器将单个.c / .s 源文件编译后的中间产物,尚未链接。
特点:包含该编译单元的机器码和符号,但地址未最终确定;多个 .o 文件由链接器合并为最终的 ELF/AXF。
用途:
.o,加速构建.a / .lib 的组成单元示例:
# GCC 编译中间产物
main.o
startup_stm32f103.o
system_stm32f1xx.o
# Keil 编译中间产物
main.obj
# TASKING 编译中间产物
isr.o
.a / .lib)— 代码的”打包快递”是什么:将多个 .o 文件打包归档的文件,本质是目标文件的集合。
特点:链接时按需提取其中被引用的 .o;不包含动态链接信息。
用途:
示例:
# GCC / ARM-none-eabi 静态库
libstm32f1xx_hal.a
libfreertos.a
# Keil 静态库
stm32f1xx_hal.lib
# TASKING 静态库
libi2c.a
.map)— 内存布局的”地图”是什么:链接器生成的文本文件,记录了所有符号的地址、大小以及内存分配详情。
特点:纯文本,可人工阅读;包含段(Section)映射、符号地址表、内存用量统计。
用途:
示例:
# GCC / ld 链接输出
Project.map
# Keil 链接输出
Project.map
# TASKING TriCore 链接输出
tc397_app.map
Tip
实用技巧在 MAP 文件中搜索
Memory region可以快速找到 Flash/RAM 的使用汇总,判断是否接近上限。
.lst / .src)— 汇编与源码的对照表是什么:编译器/汇编器生成的混合文件,将 C 源码、对应的汇编指令和地址交织在一起。
特点:左侧是地址和机器码,中间是汇编,右侧是原始 C 代码行号。
用途:
示例:
# GCC -S 或 -Wa,-ahl=s 输出
main.lst
# Keil 生成的汇编列表
startup_stm32f103.lst
# TASKING 生成的汇编列表
isr_handler.lst
.sym)— 符号地址速查表是什么:从 ELF 中提取的符号名与地址的对应表,精简版调试信息。
特点:体积小,只保留符号名和地址,不含源码行号。
用途:
示例:
# nm 工具导出
firmware.sym
# addr2line 可直接使用此文件
arm-none-eabi-nm -n firmware.elf > firmware.sym
# TASKING TriCore
tricore-nm -n tc397_app.elf > tc397_app.sym
.hex / .ihex)— 生产烧录的”国际通行证”是什么:ASCII 文本文件,以 : 开头,记录地址、数据和校验和。
特点:带地址、带校验,可靠;几乎所有编程器、下载工具都支持。
用途:量产烧录、板级在线编程(如 STM32 的 ISP 下载)。
示例:
# 典型 HEX 文件内容
:020000040800F2
:1000000018F09FE518F09FE518F09FE518F09FE5C0
:1000100018F09FE518F09FE518F09FE518F09FE5B0
:00000001FF
Warning
注意区分有时也会见到
.hex后缀但实际是 Motorola S-record,开头的标识是S而非:,注意区分。
.hex)— 带扩展的 HEX是什么:在标准 Intel HEX 基础上,利用扩展记录类型(Type 04~05 等)携带额外信息,如分段地址、厂商专属数据块等。
特点:文件结构仍以 : 开头,与标准 HEX 兼容,但部分记录的含义由厂商自定义。
用途:
示例:
# NXP S32K 带安全扩展的 HEX
s32k344_app_with_hse.hex
# 包含 CSEc 密钥和用户固件的合并 HEX
s32k144_secure_boot.hex
Note
使用提示烧录此类 HEX 时,需使用厂商提供的专用工具(如 NXP S32 Flash Tool),普通编程器可能无法正确解析扩展段。
.txt)— TI 早期十六进制格式是什么:德州仪器早期定义的 ASCII 十六进制格式,用 @ 标记地址,后续行为该地址的数据。
特点:结构比 Intel HEX 更简单,没有校验和字段;每行格式为 @地址 + 数据。
用途:
示例:
# TI-TXT 文件内容
@1800
31 40 00 02 B2 40 80 5A
31 40 02 02 B2 40 80 5A
@1A00
FF FF FF FF FF FF FF FF
q
Info
备注文件末尾的
q表示结束。虽然格式简单,但因缺少校验和,传输可靠性不如 Intel HEX 和 S-record。
.s19 / .srec / .mot)— 另一大通用格式是什么:和 Intel HEX 类似的 ASCII 格式,以 S 开头。
特点:结构类似 HEX,常见变体:
Tip
快速识别文件扩展名常暗示地址宽度:
.s19= 16 位、.s28= 24 位、.s37= 32 位,但也有统一使用.srec或.mot的情况,需查看文件内容中的记录类型确认。
用途:在一些工业控制、汽车电子、Freescale/NXP 老平台中很常见。
示例:
S19(16 位地址,S1 数据记录):
# .s19 文件 — Freescale/NXP 68HC12 / S08 系列
S00600004844521B
S1137A00A48568656C6C6F20576F726C642D0D0A61
S1137A1245686C6C6F20576F726C642D0D0A49
S5030003F9
S9030000FC
S28(24 位地址,S2 数据记录):
# .s28 文件 — NXP MPC56xx / MPC57xx 系列
S00600004844521B
S214100000010020B5048000807000000000000000C
S21410001070B5024B0700088080808080808080809
S5030003F9
S804000000FB
S37(32 位地址,S3 数据记录):
# .s37 文件 — NXP S32R29 / 大地址空间芯片
S00600004844521B
S315800000004800780008000000000000000000000000
S315800000104800780008000000000000000000000000
S5030002FA
S70500000000FA
Tip
记录类型速记
• S0= 文件头(注释)• S1/S2/S3= 数据记录(16/24/32 位地址)• S5/S6= 记录计数• S7/S8/S9= 文件尾(对应 S3/S2/S1 的起始执行地址)• .mot扩展名与.srec含义相同,仅厂商习惯不同
.bin)— 最原始纯粹的镜像是什么:没有任何地址、校验、格式信息的纯二进制数据流。
特点:最紧凑、最快写入,但必须明确知道加载地址,否则无法使用。
用途:
Note
加密烧录有的加密烧录器要求带签名的
.signed.bin,本质是在 BIN 前后附加签名头/尾,并非独立格式,但生产环节需留意。
示例:
文件名示例:
# STM32 固件二进制
firmware.bin
# ESP32 分区表二进制
partitions.bin
# 文件系统镜像
littlefs.bin
spiffs.bin
# 带签名的加密固件
firmware_v2.1.0.signed.bin
Warning
无法直接展示内容
.bin是纯二进制文件,无法像 HEX/S-record 那样用文本编辑器查看。通常用hexdump/xxd等工具查看其十六进制表示:# 用 xxd 查看前 32 字节
xxd firmware.bin | head -4
# 输出示例(STM32 Cortex-M4 固件开头)
00000000: 0000 0020 7101 0000 0d12 0000 0d12 0000 ...q............
00000010: 0d12 0000 0d12 0000 4b02 0000 0100 0000 .......K.......其中
0x00000000处的00 00 00 20是 Cortex-M 的初始 SP 值(0x20000000,指向 RAM 顶部),紧接着71 01 00 00是Reset 向量(0x00000171,即复位函数地址)。这就是为什么 BIN 必须明确加载地址——文件本身不携带任何地址信息。
.uf2)— USB 拖拽烧录格式是什么:Microsoft 为微控制器设计的 USB 批量传输固件格式,由 Adafruit 和 MicroPython 推广。
特点:每个数据块 512 字节(与 USB 批量传输端点大小一致),包含目标地址和魔术数(UF2);设备进入 Bootloader 模式后表现为 U 盘,直接拖入即可烧录。文件末尾可能填充到 512 的整数倍。
用途:
示例:
# Raspberry Pi Pico 固件
firmware_pico.uf2
# CircuitPython
circuitpython_mpy.uf2
# Adafruit Feather 固件
feather_nrf52840.uf2
.dfu)— USB Device Firmware Upgrade 格式是什么:ST 等厂商定义的 USB 固件升级格式,包含固件数据和目标地址信息。
特点:通过 USB DFU 协议传输,STM32 内置 Bootloader 原生支持。
用途:
示例:
# STM32CubeProgrammer 生成的 DFU
firmware.dfu
# dfu-util 可直接烧录
dfu-util -a 0 -D firmware.dfu
.svf)— JTAG 串行向量格式是什么:Serial Vector Format,描述 JTAG TAP 状态机操作的 ASCII 文本脚本。
特点:平台无关,所有 JTAG 工具通用;描述的是 TDI/TDO 的位序列。
用途:
示例:
! SVF 文件示例(Xilinx FPGA 配置)
!REVISION 1.0
ENDDR DR;
STATE RESET;
SIR 8 TDI (E0);
SDR 0 TDI (00000000000000000000000000000000);
RUNTEST 1 TCK;
.xsvf)— SVF 的二进制压缩版是什么:Xilinx Serial Vector Format,SVF 的紧凑二进制版本。
特点:体积更小,解析更快,适合嵌入式播放器。
用途:嵌入式 JTAG 播放器(如嵌入式系统中用 MCU 通过 JTAG 配置 FPGA)。
示例:
# Xilinx 工具生成
fpga_config.xsvf
# 嵌入式 JTAG 播放器加载
# svf2xsvf input.svf output.xsvf
.jlink)— SEGGER J-Link 脚本是什么:SEGGER J-Link 的命令脚本,用于自动化 JTAG/SWD 操作。
特点:可编程控制 J-Link 执行烧录、擦除、读取等操作。
用途:
示例:
// J-Link Commander 脚本
connect
device STM32F103C8
h
loadbin firmware.bin 0x08000000
r
go
quit
.img)— 完整分区或磁盘的克隆是什么:包含完整分区表和文件系统的二进制镜像。
特点:可包含多个分区(boot、rootfs 等),直接写入 SD 卡或 eMMC。
用途:
示例:
# 树莓派系统镜像
raspbian-buster-lite.img
# Yocto / Buildroot 输出
sdcard.img
# ESP32 分区表 + 应用合并镜像
merged_flash.img
.gbl)— Silicon Labs OTA 升级包是什么:Silicon Labs(原 Energy Micro)定义的 Gecko Bootloader 固件升级格式。
特点:包含固件数据、版本号、签名和升级元信息;支持差分升级。
用途:
示例:
# Silicon Labs OTA 升级包
firmware_v2.1.0.gbl
# 差分升级包(仅包含差异部分)
firmware_v2.0.0_to_v2.1.0.gbl
.ebl)— Silicon Labs 旧版升级包是什么:Silicon Labs 早期的 Ember Bootloader 格式,GBL 的前身。
特点:功能较 GBL 简单,不支持差分升级。
用途:旧版 EFR32/EM35x 芯片的 OTA 升级。
示例:
# 旧版 OTA 包
firmware.ebl
.zip)— Nordic OTA 升级包是什么:Nordic Semiconductor 为 nRF5 系列定义的 DFU(Device Firmware Update)包,本质是一个 ZIP 压缩包。
特点:ZIP 内包含 manifest.json(版本、大小等元信息)和 firmware.bin(实际固件数据),支持签名校验和差分升级。
用途:
示例:
# Nordic DFU 升级包(ZIP 格式)
app_dfu_v2.1.0.zip
# 差分 DFU 包
app_dfu_v2.0.0_to_v2.1.0.zip
.hex / .bin)— Nordic nRF5 双区固件结构是什么:Nordic Semiconductor 的 nRF5 系列芯片的 SoftDevice(蓝牙协议栈)和应用固件。
特点:SoftDevice 是预编译的蓝牙协议栈,位于 Flash 固定区域;应用固件在其上方运行。
用途:
示例:
# Nordic SoftDevice
s132_nrf52_7.2.0_softdevice.hex
# Nordic 应用固件
ble_app_blinky_s132.hex
.bin)— ESP32 分区布局是什么:ESP-IDF 定义的 Flash 分区表二进制文件,描述各分区的类型、偏移和大小。
特点:包含 bootloader、app、data 等分区的布局信息。
用途:
示例:
# ESP32 默认分区表
partitions_singleapp.bin
# 自定义分区表
partitions.csv → partitions_custom.bin
.dsym)— macOS/iOS 调试符号是什么:macOS 平台的调试符号文件,从 Mach-O 二进制中剥离。
特点:包含 DWARF 调试信息,与可执行文件分离存储。
用途:
示例:
# Xcode 构建输出
MyApp.app.dSYM
.pdb)— Windows 调试符号是什么:Program Database,微软 Visual Studio 生成的调试符号文件。
特点:包含源码行号、变量类型、函数地址等调试信息。
用途:
示例:
# Visual Studio 构建输出
firmware.pdb
.log / .build_log)— 构建过程记录是什么:构建系统(Make、CMake、Keil 等)输出的编译过程日志。
特点:记录编译命令、警告、错误、时间戳等。
用途:
示例:
# CMake / Make 构建日志
build.log
# Keil 构建日志
Project._BuildLog.htm
# TASKING 构建日志
build_log.txt
.core / .dmp)— 运行时崩溃转储是什么:程序崩溃时保存的内存快照,包含寄存器状态和内存内容。
特点:需要配合符号文件(ELF/AXF)才能解析;不属于编译产物,而是运行时产物。
用途:
示例:
# Linux 嵌入式 core dump
core.12345
# Windows minidump
crash_snapshot.dmp
# FreeRTOS 崩溃转储
freertos_core_dump.bin
Info
关于 TASKINGTASKING 是汽车电子领域广泛使用的高级编译工具链,主要支持 Infineon TriCore(AURIX)、ARM Cortex、Power Architecture 等架构。其产物格式覆盖从中间文件到最终烧录文件的完整链路。
|
|
|
|
|---|---|---|
|
|
.elf |
默认输出
|
|
|
.hex |
--chip-output=IHEX 生成,支持 8/16/32 位地址 |
|
|
.sre
.srec |
--chip-output=SREC 生成,支持 S1/S2/S3 记录 |
|
|
.bin |
--chip-output=BIN 生成,每个 ROM 内存区域单独输出 |
|
|
.c
.h |
--format=CARR 生成,将固件数据以 C 数组形式输出 |
|
|
.map |
|
|
|
.lst |
--list 选项生成汇编列表 |
|
|
.o |
|
|
|
.a |
.o 打包归档 |
源文件 (.c/.s)
↓ cctc (编译器)
目标文件 (.o)
↓ ltc (链接器)
ELF (.elf) ← 调试用(默认)
↓ --chip-output
HEX (.hex) ← 烧录用
SREC (.sre) ← 烧录用(汽车电子常见)
BIN (.bin) ← 烧录用(每个 ROM 区域单独文件)
# TASKING TriCore 编译输出
tc397_app.elf # 调试用
tc397_app_pflash.hex # Program Flash 烧录
tc397_app_dflash.hex # Data Flash 烧录
tc397_app_pflash.bin # 纯二进制
tc397_app.map # 内存布局
isr_handler.lst # 汇编列表
# TASKING 命令行示例
cctc --cpu=tc397 --list main.c -o main.o
ltc --chip-output=tc397_app:IHEX main.o startup.o -o tc397_app.elf
Info
关于 iSystemiSystem 是专业的嵌入式调试工具厂商,其 winIDEA IDE 配合 BlueBox 硬件调试器,广泛用于汽车电子(Infineon AURIX、Renesas RH850、NXP S32 等)的调试和烧录。winIDEA 本身不产生编译产物,但支持加载多种第三方编译器生成的格式进行调试和下载。
|
|
|
|
|---|---|---|
| ELF / DWARF | 推荐格式
|
|
| IEEE-695 |
|
|
| Intel Extended HEX |
|
|
| Motorola S (S19) |
|
|
| OMF-51 |
|
|
| OMF2 251/MX51 |
|
|
| SLO |
|
|
| TMS COFF |
|
|
| UBROF |
|
|
调试文件: tc397_app.elf ← TASKING 编译输出
烧录文件: tc397_app.elf ← winIDEA 直接从 ELF 下载
或 tc397_app_pflash.hex ← 量产烧录用 HEX
winIDEA 操作流程:
1. Debug → Files for Download → Add → 选择 tc397_app.elf
2. File Format 自动检测为 ELF
3. Load Code and Load Symbols → Download
4. 支持源码级断点调试、变量观察、Trace 采集
调试文件: u2c_app.elf ← Green Hills 或 Renesas 编译器输出
烧录文件: u2c_app.elf ← winIDEA 直接下载
或 u2c_app.srec ← 量产烧录用 S-record
winIDEA 操作流程:
1. Debug → Files for Download → Add → 选择 u2c_app.elf
2. 配置 RH850 CPU 架构选项
3. Load Code and Load Symbols → Download
4. 支持 RH850 多核调试、Trace、Coverage 分析
调试文件: s32k344_app.elf ← GCC / S32DS 编译输出
烧录文件: s32k344_app.elf ← winIDEA 直接下载
或 s32k344_app.hex ← 量产烧录(可能含 HSE/CSEc 扩展段)
winIDEA 操作流程:
1. Debug → Files for Download → Add → 选择 s32k344_app.elf
2. 配置 ARM Cortex-M7 架构选项
3. Load Code and Load Symbols → Download
4. 支持 ARM ETM Trace、数据 Trace、代码覆盖率分析
注意:若 HEX 包含 HSE 固件扩展段,
建议使用 NXP S32 Flash Tool 烧录,
winIDEA 直接下载 ELF 更为可靠。
Info
关于 SoftorSoftor(索弗特)是浙江翠展微电子旗下的汽车研发工具链提供商,自主研发量产烧录器系列产品,兼容英飞凌、瑞萨、NXP、ST 等所有主流 MCU 厂家芯片,支持 30000+ 芯片型号,为汽车电子和工业量产提供”快、准、稳”的烧录解决方案。
官网:www.softor.com.cn
|
|
|
|
|---|---|---|
| ELF | .elf |
|
| Intel HEX | .hex
.ihex |
|
| Motorola S-record | .s19
.srec / .mot |
|
| Binary | .bin |
|
| TI-TXT | .txt |
|
Tip
格式自动识别Softor 烧录软件支持文件格式自动识别,加载固件文件后自动判断格式类型并解析。如自动识别不准确,可手动切换指定格式。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
编译器输出 Softor 烧录器加载
─────────── ──────────────
TASKING → .elf / .hex / .sre ──→ ✅ 直接加载
GCC → .elf / .hex / .bin ──→ ✅ 直接加载
Keil → .axf / .hex ──→ ✅ 直接加载(.axf 本质为 ELF)
IAR → .elf / .hex / .bin ──→ ✅ 直接加载
GreenHill → .elf / .hex ──→ ✅ 直接加载
TI CCS → .out (COFF) / .hex ──→ ✅ .hex 直接加载
TI CCS → .out (ELF) ──→ ✅ 直接加载
固件文件: tc397_app.hex ← TASKING --chip-output=IHEX 输出
或 tc397_app.sre ← TASKING --chip-output=SREC 输出
或 tc397_app.elf ← 直接使用 ELF
Softor 操作:
1. 加载固件文件(.hex / .sre / .elf 均可)
2. 软件自动解析段地址(PFlash / DFlash / LMU 等)
3. 配置烧录参数(擦除方式、校验方式等)
4. 一键烧录,自动完成 擦除 → 编程 → 校验
固件文件: u2c_app.elf ← Green Hills / IAR 编译输出
或 u2c_app.srec ← 量产烧录用 S-record
Softor 操作:
1. 加载 .elf 或 .srec 文件
2. 自动识别 RH850 芯片型号
3. 配置烧录区域和参数
4. 支持多通道并行烧录,提升量产效率
固件文件: s32k344_app.elf ← S32DS / GCC 编译输出
或 s32k344_app.hex ← 量产烧录用 HEX
Softor 操作:
1. 加载 .elf 或 .hex 文件
2. 若 HEX 包含 HSE/CSEc 扩展段,软件按厂商规范解析
3. 支持 Secure Boot 签名固件的烧录
4. 多通道并行 + MES 追溯,满足车规量产要求
除桌面式烧录器外,Softor 还提供完整的量产烧录台架解决方案:
Info
常用转换工具
|
|
|
|
|
|---|---|---|---|
|
|
|
objcopy |
arm-none-eabi-objcopy -O ihex firmware.elf firmware.hex |
|
|
|
objcopy |
arm-none-eabi-objcopy -O binary firmware.elf firmware.bin |
|
|
|
objcopy |
arm-none-eabi-objcopy -O srec firmware.elf firmware.s19 |
|
|
|
objcopy |
arm-none-eabi-objcopy -I ihex -O binary firmware.hex firmware.bin |
| BIN | HEX | `srec_cat` / `objcopy` | `srec_cat firmware.bin -binary -offset 0x08000000 -o firmware.hex -intel` |
|
|
|
uf2conv.py |
python uf2conv.py firmware.bin -o firmware.uf2 |
|
|
|
objcopy |
arm-none-eabi-objcopy -O binary firmware.elf firmware.bin && dfu-suffix |
|
|
|
fromelf
|
fromelf --i32 --output firmware.hex firmware.axf |
|
|
|
ld
|
arm-none-eabi-gcc -Wl,-Map=output.map |
|
|
|
nm |
arm-none-eabi-nm -n firmware.elf > firmware.sym |
|
|
|
objdump |
arm-none-eabi-objdump -dS firmware.elf > firmware.lst |
|
|
|
objcopy |
arm-none-eabi-objcopy -I elf32-littlearm -O binary firmware.elf firmware.bin && xxd -i firmware.bin > firmware.h |
Warning
BIN → HEX 注意BIN 转 HEX 时必须指定基地址(offset),否则所有数据将从地址 0x0000 开始,这在大多数 MCU 上是错误的。生产环节尤其要注意这一点。
|
|
|
|
|---|---|---|
|
|
.elf
.axf |
|
|
|
.hex
.bin / .s19 |
|
|
|
.hex
.bin(特定平台) |
|
|
|
.gbl
.ebl |
|
|
|
.zip
|
|
|
|
.uf2 |
|
|
|
.dfu |
|
|
|
.map |
|
|
|
.lst |
|
|
|
.sym
.core / .dmp |
|
|
|
.svf
.jlink |
|
|
|
.img |
|
|
|
.hex + App .hex |
|
|
|
.bin + 应用 .bin |
|
|
|
.elf
.hex/.sre(烧录) |
|
|
|
.elf
.srec(烧录) |
|
|
|
.elf
.hex(烧录) |
|
|
|
.hex
|
|
|
|
.txt
|
|
|
|
.hex
.elf / .s19 / .bin |
|
Quote
总结嵌入式开发中,ELF 是一切的源头(TI 老项目除外,使用 COFF),几乎所有其他格式都由它转换而来。理解每种格式的定位,能在调试、烧录、量产等环节少走弯路。掌握 `objcopy`、`nm`、`objdump` 这三大工具,就能在格式之间自由转换。在汽车电子领域,TASKING 和 iSystem winIDEA 是 TriCore / RH850 / S32 平台的主流工具链,理解它们的产物格式尤为重要。Softor 量产烧录器作为国产自研方案,兼容上述所有主流格式,支持自动识别和多通道并行烧录,是汽车电子量产的高效利器。
作者:tianpengbo / 田朋博。大家如果在项目中遇到相关技术问题,欢迎联系我交流。
support@softor.com.cn
tianpengbo@softor.com.cn
作者:tianpengbo / 田朋博。大家如果在项目中遇到相关技术问题,欢迎联系我交流。
support@softor.com.cn
tianpengbo@softor.com.cn