TCF (Target Communication Framework) 是 Eclipse 基金會主導的開放標準,專為**嵌入式裝置遠端除錯、部署、監控**設計。本文概述其架構、核心特性與應用場景。
+----------------+ TCF Protocol +----------------+
| IDE Client | <---------------------> | Target Agent |
| (Eclipse CDT) | (JSON-RPC over TCP) | (Embedded) |
+----------------+ +----------------+
| |
v v
+----------------+ +----------------+
| Services: | | Services: |
| - RunControl | | - RunControl |
| - Breakpoints | | - Memory |
| - Memory | | - Registers |
| - Files | | - Files |
| - Terminal | | - Terminal |
+----------------+ +----------------+
| 特性 | 說明 |
|---|---|
| 傳輸無關 | 可跑在 TCP、UDP、Serial、USB、Pipe 之上,適應各種嵌入式連線方式 |
| 服務導向 | 核心服務:RunControl(斷點/單步)、Memory(讀寫記憶體)、Registers、FileSystem、Terminal、SysMonitor |
| 輕量級 | Target Agent 僅需 ~50KB RAM,適合 MCU 級裝置 |
| 可擴展 | 自訂服務擴展專有功能 (如閃存編程、電源管理) |
| 語言中立 | Agent 可用 C/C++/Java/Rust 實作,Client 用 Java/TypeScript |
| 維度 | GDB RSP | TCF |
|---|---|---|
| 協議層級 | 低階 (記憶體讀寫、暫停/繼續) | 高階服務導向 (斷點管理、檔案傳輸、終端機) |
| 擴展性 | 擴展困難 (需修改 GDB 內核) | 插件式服務擴展 |
| 多核/多執行緒 | 支援有限 | 原生支援多上下文 |
| IDE 整合 | 需 GDB/MI 介面 | Eclipse CDT 原生支援、VS Code 擴充套件 |
若您的專案涉及嵌入式 Linux/RTOS 開發,採用 TCF 可大幅簡化 IDE 與 Target 的整合複雜度,是現代嵌入式工具鏈的標準選擇。