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) | 面向器件的编程/测试操作及相关数据 | 对应播放器、工具链和器件支持 |
| SVF | TAP 状态与扫描向量 | 扫描链配置、执行器支持和操作前提 |
执行前的准备、写入和校验步骤见 JTAG 固件编程流程 与 编程校验与回读。Intel 文档也展示了同一工具能够按特定器件和编程场景生成 .jam、.jbc、.svf 等不同输出,这不能视为跨厂商兼容承诺。
参考资料
- Intel AN 425:命令行 Jam STAPL 编程方案
- Intel MAX 10 配置用户指南:生成 JAM/JBC/SVF 文件
- JEDEC JESD 71 的 STAPL 标准简介