🔧 C66x DSP 工具链 — 从零构建四件套

TI(德州仪器)C6000 系列 DSP 芯片的完整开源工具链:编译器、汇编器、链接器、集成开发环境。全部从零自研,替代 TI 官方商业工具。

四件套关系全景

flowchart TB C["📝 C 源代码"] --> COMPILER["🔧 Compiler66x
LLVM-based C→汇编
17条核心指令已启用"] COMPILER --> ASM["📄 汇编代码(.asm)"] ASM --> ASSEMBLER["⚙️ FT-asm66x
汇编器
417/417测试通过
DSPlib 161/161 .text匹配"] ASSEMBLER --> OBJ["📦 目标文件(.obj)"] OBJ --> LINKER["🔗 FT-Link66x
链接器
段分配·重定位·符号解析"] LINKER --> EXE["▶️ 可执行文件(.out)"] EXE --> IDE["🖥️ FT-IDE
集成开发环境
编辑·编译·调试一体"] IDE -.->|"调用"| COMPILER IDE -.->|"调用"| ASSEMBLER IDE -.->|"调用"| LINKER style COMPILER fill:#3987e5,color:#fff style ASSEMBLER fill:#199e70,color:#fff style LINKER fill:#c98500,color:#000 style IDE fill:#e66767,color:#fff

工具链总览

🔧 Compiler66x

LLVM-based C66x DSP 编译器。将 C 代码编译为 C66x 汇编。已启用 17 条核心指令(浮点/位操作/旋转/DSP点积)。CC66x 后端实现完成,CompilerSploop 循环优化专项。

LLVMC66x编译器后端活跃

⚙️ FT-asm66x

C66x DSP 汇编器。Python 引擎基准:417/417 单元测试通过,DSPlib 161/161 .text 匹配,MATHLIB 144/144 same-source 通过,full-ISA 63/63 probes 全覆盖。

汇编器Python417/417

🔗 FT-Link66x

C66x DSP 链接器。目标文件链接、段分配、重定位、符号解析。与 TI lnk6x 二进制兼容。

链接器ELF重定位活跃

🖥️ FT-IDE

C66x DSP 集成开发环境(IDE)。代码编辑器、项目管理、编译调试一体化。含编译器集成模块 FT-IDE-CC 和自动化测试套件。

IDEDSP开发活跃

为什么要自研这套工具链?

TI(德州仪器)的 C6000 系列 DSP 芯片广泛用于通信、音频、工业控制。TI 官方提供 CCS(Code Composer Studio)开发环境和 C6000 编译器,但:

这套自研工具链的目标:完全开源替代,从 C 代码到 DSP 可执行文件的全链路自主可控。对标 TI 官方工具,用 .text 逐字节对比作为质量基准。

四个项目的进展对比

项目核心基准测试覆盖TI 兼容性状态
Compiler66x17条指令已启用LLVM TableGen 验证~50条指令待启用⚠️ 后端实现完成,待构建验证
FT-asm66x417/417 pytestDSPlib+MATHLIB+ISA probesDSPlib 161/161 .text 完全匹配✅ 核心功能已验证
FT-Link66x段分配+重定位目标文件链接验证与 lnk6x 二进制兼容⚠️ 活跃开发中
FT-IDE编辑+编译+调试IDE 功能回归集成三件套⚠️ 活跃开发中

统一时间线:整个工具链的关键里程碑

2026年5月~7月 工具链全景时间线

timeline title C66x DSP 工具链全景时间线 2026-05 : Compiler66x LLVM 后端启动 : FT-asm66x M0 脚手架搭建 : FT-Link66x 初始架构 2026-06-11 : CC66x 17条指令 TableGen 完成 : LLVM 构建启动(8并行) 2026-06-20 : FT-asm66x M2 导入冒烟汇编器 : FT-IDE 编译器集成模块启动 2026-06-27 : CC66x LLVM 实现完成 : FT-asm66x DSPlib 编码器 M3 2026-07-01 : CompilerSploop 循环优化专项启动 : FT-Link66x ELF 兼容 2026-07-04 : FT-asm66x MATHLIB same-source 144/144 : Full-ISA probes 63/63 2026-07-10 : FT-asm66x DSPlib .text 161/161 : DSS C6678 运行时验证 2026-07-12 : FT-asm66x SUBSP closure : 417/417 pytest : CCS5 静态库通过