dsh-mcu-lab:51 單片機開發閉環

前言

在 DSH(DeepSeek Harness)的插件生態中,51 單片機的開發流程通常涉及 Keil C51 編譯、Proteus 仿真以及人工判定 LED 亮滅。人工判定依賴視覺模型,受引腳編號漂移影響,結果不穩定。dsh-mcu-lab 插件將這條鏈路接進 DSH 會話,提供確定的判定依據(如編譯是否產出 hex、CPU 是否增長、是否有失敗標記文本),讓 AI 能夠直接在對話中完成開發閉環。

是什麼

這是一個 DSH 插件(lib/index.js)配合一個命令行內核(kernel/mcu_lab.py)的集合體。插件層負責向 DSH 註冊 5 個工具,接收 AI 參數並調用內核;內核層使用 Python 編寫,負責編譯、仿真和判定邏輯。

它解決的問題很具體:把原本需要人工拆解的“編譯 hex、複製到電路、跑仿真、看結果”這一系列操作,封裝成 AI 可直接調用的工具,輸出 PASS/FAIL 及判定依據。

核心功能

該插件提供以下核心能力:

  1. 5 個工具:mcu_run(默認入口)、mcu_build(僅編譯)、mcu_sim(截圖)、mcu_verify(復判)、mcu_list(索引電路)。
  2. 命令行內核:kernel/mcu_lab.py,支持 check、list、build、run、verify、sim 六個子命令。
  3. 編譯器支持:支持 Keil C51 和免費開源的 SDCC。
  4. 仿真與判定:集成 Proteus ISIS 仿真,提供確定性判定後端(無需視覺模型介入)。

安裝與啓用

方式一:裝進 DSH(獲取 5 個工具)

  1. 放置倉庫:將本倉庫放到 DSH 的 profile 模塊目錄下,目錄名必須與包名一致:
    <DSH_HOME>\profiles\node_modules\dsh-mcu-lab\
(`<DSH_HOME>` 默認爲 `%USERPROFILE%\.dsh`)
  1. 添加裝載行:在對應 profile 的 cordis.patch.yml 末尾添加:
    - insert:
      - id: mcu-lab
        name: 'dsh-mcu-lab'
  1. 重啓 DSH:執行 dsh web 重啓後,5 個工具將出現在會話中。

方式二:只用命令行內核(不依賴 DSH)

如果不需要 DSH 的插件層,可以直接運行內核腳本:

python kernel/mcu_lab.py check
python kernel/mcu_lab.py list
python kernel/mcu_lab.py build examples\led_blink.c
python kernel/mcu_lab.py run  examples\led_blink.c <你的電路.DSN> --wait 6
python kernel/mcu_lab.py verify <你的電路.DSN> --wait 6
python kernel/mcu_lab.py sim <你的電路.DSN> --seconds 8 --shot out.png

典型用法

在會話中直接調用工具,例如:

把 examples/led_blink.c 在這個電路上跑一遍,告訴我過沒過。

對應的命令行操作如下:

  • 體檢環境:
    python kernel/mcu_lab.py check
  • 列出可用電路:
    python kernel/mcu_lab.py list
  • 編譯源碼:
    python kernel/mcu_lab.py build examples\led_blink.c
  • 運行仿真並判定:
    python kernel/mcu_lab.py run  examples\led_blink.c <你的電路.DSN> --wait 6
  • 僅判定電路狀態:
    python kernel/mcu_lab.py verify <你的電路.DSN> --wait 6
  • 生成仿真截圖:
    python kernel/mcu_lab.py sim <你的電路.DSN> --seconds 8 --shot out.png

前置條件與依賴

插件以 Windows 平臺爲基準,必須滿足以下條件:

  • 操作系統:Windows 11(作者實測),其他平臺未驗證。
  • 編譯器:Keil C51(或 SDCC)。Keil 專有關鍵字在 SDCC 路線下需自行改寫。
  • 仿真軟件:Proteus ISIS(安裝路徑建議純英文,中文路徑會導致崩潰)。
  • Python 環境:
    • 建議版本:Python 3.13.15(作者實測)。
    • 依賴包:僅編譯(check/list/build)使用標準庫;仿真與判定(run/verify/sim)需安裝 pywin32 和 Pillow。
  • 環境變量:
    • DSH_MCU_LAB_KEIL:指向 C51.exe。
    • DSH_MCU_LAB_ISIS:指向 ISIS.EXE。
    • DSH_MCU_LAB_IFACE:指向接口腳本目錄(默認爲倉庫內的 kernel/iface/)。

注意事項

  1. 目錄命名:安裝時,放入 node_modules 的目錄名必須與包名 dsh-mcu-lab 一致。
  2. 源碼編碼:C51 源碼必須是純 ASCII,包含中文註釋會報 C141 語法錯誤。
  3. 確定性判定:判定邏輯依賴“仿真進程 CPU 是否增長”等確定性指標,而非讀取截圖像素,因此結果穩定。
  4. 未驗證項:Keil C51 和 Proteus ISIS 的具體版本要求未做嚴格驗證,僅作者實測環境爲 C51 9.00 和 Proteus 7.08 SP2。
羽毛球分组比赛记分
小程序二维码

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

小夜