固件格式

JAM、STAPL 与 SVF 用途概览

区分 Jam STAPL/JAM 编程文件与 SVF 扫描向量,理解它们和固件映像的关系。

JAM/STAPL 和 SVF 都可能出现在 JTAG 编程流程中,但它们并不等同于通用 BIN 固件映像。它们更接近可由编程器或执行器解释的测试/编程操作描述;是否适用于某个目标,要看生成工具、器件支持和执行环境。

Jam STAPL 与相关文件

STAPL 是 Standard Test and Programming Language 的缩写。Intel 的资料将 Jam STAPL 描述为使用 IEEE 1149.1 JTAG 接口进行可编程器件配置、编程或测试的文件格式,并提及 JEDEC JESD-71。常见 Intel/Altera 工具链会生成 ASCII .jam 文件或字节码 .jbc 文件,由相应播放器执行;文件可包含器件编程所需的操作和数据。这里说的是特定工具生态中的常见形式,不能推断其他厂商器件都支持这些文件。

SVF

SVF(Serial Vector Format)以文本记录 TAP 状态和指令/数据扫描等 JTAG 操作。它适合传递扫描向量;某些编程工具可为受支持的目标导出 SVF,用来执行配置、编程或校验步骤。SVF 并不会自动携带所有目标识别、板级连接和安全前提,也不保证一个执行器对所有生成器扩展或编程操作都有相同行为。关于向量本身,可看 SVF 文件与边界扫描编程基础。

与 BIN/HEX/S-record 的区别

BIN、Intel HEX 和 S-record 主要承载程序或数据内容;其中 HEX 与 S-record 还能编码地址记录。JAM/STAPL 和 SVF 则表达或组织面向 JTAG TAP 的操作流程,可能同时涉及编程算法和数据。实际工作流有时由工具把映像转换为目标专用文件,也可能从编程工程导出 JTAG 操作文件。转换链路必须按照目标厂商流程确认,不能只看扩展名判断格式可互换。

类型主要表达使用前重点确认
BIN / Intel HEX / S-record固件字节及其地址组织地址映射、记录解释、填充规则和目标存储器
JAM / STAPL(如 .jam、.jbc)面向器件的编程/测试操作及相关数据对应播放器、工具链和器件支持
SVFTAP 状态与扫描向量扫描链配置、执行器支持和操作前提

执行前的准备、写入和校验步骤见 JTAG 固件编程流程 与 编程校验与回读。Intel 文档也展示了同一工具能够按特定器件和编程场景生成 .jam、.jbc、.svf 等不同输出,这不能视为跨厂商兼容承诺。

参考资料