前言¶
DeepSeek Harness (DSH) 作爲一個插件化框架,旨在通過插件擴展大模型的能力。在嵌入式開發場景中,模型往往缺乏具體的工程計算能力和對特定硬件/工具鏈的深度理解。dsh-embedded-kit 是一個針對嵌入式固件開發的本地插件,旨在填補這一空白。
是什麼¶
dsh-embedded-kit 是一個由開發者 anneqaq 維護的 Host 側插件。它提供了一套芯片與工具鏈中立的嵌入式固件工具包,包含 8 個底層工具和 21 個工程實踐技能。該插件支持 ELF、GNU ld map、Keil map 等多種輸入格式,能夠協助開發者進行體積分析、構建、協議驗證、時序計算、鏡像校驗以及故障診斷。
核心功能¶
插件的核心能力分爲“工具”和“技能”兩部分。工具主要負責具體的數值計算與文件處理,技能則提供工程審查清單與調試方法論。
工具(8 個)¶
工具主要運行在本地 Node.js 環境,用於處理固件文件與計算時序參數。
fw_size(體積分析):支持 ELF 文件、GNU ld.map、Keil MDK.map三種輸入格式的自動識別。輸出 ROM 與 RAM 佔用明細,並按符號級粒度排序體積大戶,提供預算佔用率分析。fw_build(多工具鏈構建):支持 keil、platformio、cmake、make、idf、iar、custom 七種構建後端。可通過probe探測可用工具鏈,或執行build並解析錯誤與警告。proto_frame(協議幀構建/驗證):支持 Modbus RTU 協議的幀構建與審查。內置參數化 CRC 引擎(支持 12 種預設及自定義參數),不侷限於 Modbus 協議。can_timing/canfd_timing(CAN/CAN-FD 位時序反算):計算 BRP、TSEG1、TSEG2、SJW 等寄存器值。CAN FD 部分特別處理 DLC 非線性映射(9~15 字節需補齊至合法長度)及 TDC(傳輸延遲補償)。clock_tree(時鐘樹求解):針對 PLL 進行組合求解,計算fout = fsrc/inputDiv×mul/outputDiv。逐節點校驗分頻鏈,並給出串口時鐘容錯預算。fw_image(鏡像校驗):對 Intel HEX 文件進行逐條校驗和與空洞檢測。同時提供 Cortex-M 向量表校驗,檢查 SP 對齊、復位向量 Thumb 位、目標地址及 VTOR 對齊。fault_decode(Cortex-M 異常分診):將 PC/LR 等寄存器值翻譯爲“函數名 + 偏移”,配合 CFSR/HFSR 等寄存器解讀,提供根因推斷。
技能(21 個)¶
技能以文本形式寫進上下文,提供審查清單與決策樹,按需加載。
代碼與架構審查:
* embedded-code-review:裸機與 RTOS 代碼審查清單,覆蓋 ARM/AArch64/RISC-V/Xtensa/AVR/PIC/8051/MSP430 架構差異。
* code-standards:嵌入式 C 代碼規範(R1~R10)。
* architecture-principles:依賴方向、模塊邊界、狀態單寫者等架構原則。
* scheduling-patterns:狀態機、多定時器分時、調度可行性判據。
調試與診斷:
* debug-methodology:二分定位、不用 printf 測時序、故障注入等調試方法論。
* fault-diagnosis:HardFault 分診決策樹、棧溢出判別、看門狗復位區分。
* low-power-and-leakage:低功耗模式、漏電分類排查、數據手冊電氣參數覈對。
協議與通信:
* protocol-review:串行通訊協議編寫與審查(CRC 坑、超時重試)。
* bus-timing:I²C/SPI/I²S/RS-485/RS-232/LIN/1-Wire/QSPI 時序電氣參數。
* ble-throughput:BLE 吞吐與廣播佔空比。
* pmbus-check:PMBus/SMBus 命令層與時鐘拉伸檢查。
* link-budget:無線鏈路預算與距離反推。
* lora-airtime:LoRa 空中時間與 EU868 佔空比合規性。
存儲與性能:
* nvm-storage:Flash 物理約束、掉電安全策略、磨損模型。
* storage-and-display:NVM 分區佈局、LVGL 緩衝配置。
* sdio-speed:SD/SDIO/eMMC 速率檔與有效吞吐。
* usb-bandwidth:USB 2.0 幀預算、週期上限與端點帶寬。
內核與電源:
* mcu-core:NVIC 優先級分組、中斷延遲上界、棧深度靜態上界。
* power-and-io:功耗預算、電源樹、引腳漏電與 ADC 採樣負載。
安裝與啓用¶
本插件爲 Host 側插件,依賴 Node.js 環境,需要 DeepSeek Harness 版本 >= 0.1.6-alpha.1。
推薦使用 npm 安裝方式,這會自動應用插件自帶的配置補丁:
dsh plugin --profile <profile> add dsh-embedded-kit
安裝後,可通過 dsh --profile <profile> --dump-config 檢查配置是否生效。
典型用法¶
技能通過 node 命令調用本地工具腳本。調用格式爲:
node <插件根>/skills/_shared/run-tool.mjs <工具名> key=value ...
示例:
* 探測可用工具鏈:
node <插件根>/skills/_shared/run-tool.mjs fw_build probe
- 計算 PLL 時鐘樹:
node <插件根>/skills/_shared/run-tool.mjs clock_tree
- 構建 Modbus RTU 幀:
node <插件根>/skills/_shared/run-tool.mjs proto_frame build
- Cortex-M 異常分診:
node <插件根>/skills/_shared/run-tool.mjs fault_decode
注意事項¶
- 數據真實性:所有工具區分設計值與實測值。對於無法獲取的數據,工具會標記爲
pending,而不是編造數值。 - 技能依賴:技能服務依賴於工具。如果工具不可用(例如未安裝 Node.js 或路徑錯誤),技能將無法調用。
- 兼容性判定:插件會在加載 profile 前檢查
peerDependencies(@deepseek-ai/dsh*),若宿主版本不滿足範圍,該插件會被跳過,僅記錄日誌。 - 本地環境:由於是 Host 側插件,所有計算與文件解析均依賴本地環境,需確保本地有相應的構建工具或數據文件。
結語¶
dsh-embedded-kit 爲 DSH 提供了從底層時序計算到高層代碼審查的完整能力。通過明確的工具調用與結構化的技能清單,它能夠輔助開發者進行更嚴謹的嵌入式系統設計與驗證。