dsh-embedded-kit:芯片与工具链中立的嵌入式固件工具包

前言

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

注意事项

  1. 数据真实性:所有工具区分设计值与实测值。对于无法获取的数据,工具会标记为 pending,而不是编造数值。
  2. 技能依赖:技能服务依赖于工具。如果工具不可用(例如未安装 Node.js 或路径错误),技能将无法调用。
  3. 兼容性判定:插件会在加载 profile 前检查 peerDependencies(@deepseek-ai/dsh*),若宿主版本不满足范围,该插件会被跳过,仅记录日志。
  4. 本地环境:由于是 Host 侧插件,所有计算与文件解析均依赖本地环境,需确保本地有相应的构建工具或数据文件。

结语

dsh-embedded-kit 为 DSH 提供了从底层时序计算到高层代码审查的完整能力。通过明确的工具调用与结构化的技能清单,它能够辅助开发者进行更严谨的嵌入式系统设计与验证。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜