🔗 FT-Link66x — C66x DSP 链接器

负责将汇编器产生的 .obj 目标文件链接成可执行的 .out 文件。处理段分配、重定位表、符号解析——对标 TI lnk6x。

项目时间线

FT-Link66x 开发历程

timeline title FT-Link66x 开发时间线 2026-05 : 初始架构设计 : COFF 格式解析 : 段合并逻辑 2026-06 : 基础对象文件解析 : 符号表构建 : 重定位条目处理 2026-06-20 : ELF 兼容层 : lnk6x 二进制兼容 : 与 asm66x 联调 2026-07 : 段分配优化 : 符号解析引擎 : 交付目录结构建立

链接器是做什么的?

链接过程

flowchart LR OBJ1["📦 main.obj"] --> LINK["🔗 FT-Link66x
链接器"] OBJ2["📦 dsp_func.obj"] --> LINK LIB["📚 DSP库 .lib"] --> LINK LINK -->|"段合并"| SEC[".text: 所有代码段拼接
.data: 所有数据段拼接
.bss: 所有未初始化段拼接"] LINK -->|"重定位"| RELOC["🔧 修正地址引用
解决外部符号
填写跳转目标"] LINK -->|"导出"| OUT["▶️ program.out
可执行文件"] style LINK fill:#c98500,color:#000 style OUT fill:#199e70,color:#fff

核心功能

功能说明TI 对标
段分配多个 .obj 的 .text/.data/.bss 段合并排序lnk6x SECTION 指令
重定位修正跨文件的地址引用、填写绝对地址COFF 重定位条目
符号解析解决外部符号引用、库符号查找lnk6x --library
ELF 兼容兼容 lnk6x 链接器格式和输出TI lnk6x
🔗 链接器与汇编器的配合

汇编器产生 .obj 时会在重定位条目中标记"这里引用了一个外部符号,我还不知道它的地址"。链接器负责查找这个符号的定义(可能在另一个 .obj 或库里),计算地址,填回对应的机器码位置。两者通过 COFF 格式的重定位表协作。