⚙️ FT-asm66x — C66x DSP 汇编器

将 TI C66x 汇编指令翻译为机器码的开源汇编器。核心开发已完成——Python 引擎 417/417 测试全部通过,DSPlib 161/161 与 TI 官方工具 .text 逐字节匹配。

项目全景时间线

FT-asm66x 开发历程

timeline title FT-asm66x 开发时间线 2026-05 : M0 项目脚手架 : 证据目录结构 : pytest 框架搭建 2026-05 : M1 CCS/asm6x golden 验证 : 建立 TI 官方工具对照基准 2026-06 : M2 导入冒烟汇编器 : fail-closed 不支持编码 : 基础指令编码 2026-06 : M3 DSPlib 子集编码器 : SPRUGH7 证据驱动 : 按 TI 手册逐条对照 2026-06-20 : M4 ELF/link 兼容 : lnk6x 链接器对接 2026-07-01 : M5 DSPlib 批量 .obj 验证 : 161/161 .text 匹配通过 2026-07-04 : M6 DSS C6678 运行时验证 : done=1 failures=0 : MATHLIB same-source 144/144 2026-07-04 : Full-ISA probes 63/63 : 完整指令集探测覆盖 : 无静态条目或 .text 证据缺口 2026-07-10 : 中央 active 18 条归 Compiler66x : FT-asm66x owner match=0 2026-07-12 : SUBSP closure 完成 : 417/417 pytest : CCS5 静态库通过 : mixed C/ASM DSS 通过

里程碑详解

里程碑日期产出状态
M02026-05项目脚手架、证据目录、pytest 框架
M12026-05CCS/asm6x golden-model 对照基准
M22026-06导入冒烟汇编器、fail-closed 不支持编码
M32026-06DSPlib 子集编码器、SPRUGH7 证据驱动
M42026-06ELF/link 兼容 lnk6x 链接器
M52026-07-01DSPlib 批量 .obj 验证 161/161 .text 匹配
M62026-07-04DSS C6678 运行时 done=1 failures=0 checksum=7
SUBSP closure2026-07-12417/417 pytest、CCS5 静态库、mixed C/ASM DSS

质量基准

Python pytest417/417DSPlib .text 匹配161/161DSPlib 可重定位链接161/161DSS 串行验证161/161MATHLIB same-source144/144Full-ISA probes63/63CCS5 静态库构建通过Mixed C/ASM DSSdone=1 failures=0

技术架构

汇编器工作流程

flowchart LR ASM["📄 .asm 汇编源文件"] --> PARSE["🔍 解析器
识别助记符+操作数"] PARSE --> ENCODE["🔢 编码器
按SPRUGH7手册
生成32位机器码"] ENCODE --> OBJ["📦 .obj 目标文件
COFF格式"] OBJ --> VERIFY["✅ 验证
与TI asm6x
逐字节.text对比"] style PARSE fill:#3987e5,color:#fff style VERIFY fill:#199e70,color:#fff

Python 引擎是冻结的兼容性基线——后续 native V1 验证不是推翻重来,而是在相同基准上验证新实现,除非同一用例在 Python 基线也复现失败。

🎯 第一发布边界

首个正式发布覆盖 DSPlib 使用的助记符和操作数形式,而不是完整的 C66x ISA。接收标准:TI 链接器兼容 + DSS 运行时成功。.text 逐字节对比仍是主要回归度量。