Files
pikasTech-unidesk/docs/reference/constar-d601.md
T
2026-05-11 07:39:37 +00:00

6.3 KiB
Raw Blame History

ConStart / constar on D601

本文记录 D601 Provider 上 ConStart 固件工作区通过 UniDesk 维护桥进入、用 WSL wrapper 调用 Windows skill,以及完成编译、下载和运行态验证的稳定入口。项目内部细节仍以 ConStart 仓库自己的 docs/reference/ 为权威来源。

入口

  • UniDesk 侧从主 server 仓库执行:bun scripts/cli.ts ssh D601 -- '<command>'
  • 当前真实工作区路径是 D601 WSL 内的 /mnt/f/Work/ConStart。用户口头说的 /mnt/f/work/constar 可视为简称;实际执行前要先解析到真实大小写路径。
  • 远端工作优先使用 UniDesk SSH helperssh D601 skillsssh D601 findssh D601 globssh D601 pyssh D601 apply-patch,避免多层 shell/Windows 路径转义问题。
  • 不要宽泛扫描 /mnt/*;Windows 挂载层可能很慢且有权限噪声。应把查找范围限制到 /mnt/f/Work/ConStart 或已知子目录。

D601 skill 栈

D601 WSL 用户的 ~/.local/bin 已提供项目级 wrapper

  • keil:经 win-py 调 Windows 侧 Keil skillKeil MDK、pyOCD、USB probe 驱动和 Keil pack 都在 Windows 侧解析。
  • serial-monitor:经 win-npm 调 Windows 侧 Serial Monitor skill,因此能访问 Windows COMx 串口。
  • board-comm:直接用 WSL 侧 Board Comm skill 执行 JSON-RPC over TCP。
  • win-cmdwin-powershellwin-pywin-npmwin-skill-path:节点 bootstrap wrapper,通用规则见 docs/reference/windows-passthrough.md

基础自检:

bun scripts/cli.ts ssh D601 skills --limit 80
bun scripts/cli.ts ssh D601 -- 'export PATH="$HOME/.local/bin:$PATH"; command -v win-py win-npm keil serial-monitor board-comm'
bun scripts/cli.ts ssh D601 -- 'export PATH="$HOME/.local/bin:$PATH"; keil status; serial-monitor ports; board-comm debug build-jrpctcp-request get api'

ConStart 项目地图

以下命令默认在 /mnt/f/Work/ConStart 中执行,并先把 ~/.local/bin 放进 PATH

Project Keil project Target(s) 常见 probe / runtime
71-FREQ projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx FREQ_Controller_FW, BOOTLOADER STM32H723,通常 probe 3FD750C63E342E24APP JSON-RPC 192.168.0.154:8000bootloader TCP 192.168.0.154:9001,串口 921600
41-MASTER projects/41-00426-20-Controller-Code/Master_Controller/SDK/GD32470Z/Projects/26_ENET/Projects/FreeRTOS_tcpudp/MDK-ARM/Project.uvprojx MASTER, SLAVE, DEVELOP GD32F470,通常 probe 123456789ABCDEFJSON-RPC 192.168.0.151:8000,串口 115200
71-ACMOD projects/41-00426-20-Controller-Code/Slave_AC_Module/code/MDK-ARM/STM32H723ZGT6.uvprojx STM32H723ZGT6 STM32H723,必须显式选择 H7 probeJSON-RPC 192.168.0.152:8000,串口 115200

probe 和 COM 口是现场硬件状态,不是永久事实。下载前必须先跑 keil list-devices -p <project.uvprojx>H7 目标还要跑 keil detect -u <probe_uid> -p <project.uvprojx> -t <target>。41/GD32 的 pyOCD detect 预期会因为 pyOCD 不支持该 target 而失败;41 下载应走 Keil UV4 工程链,并通过串口或 board-comm 验证。

编译与下载模式

所有命令都显式传 projecttargetprobe,不要依赖 Keil 当前 target 或隐式 probe 选择。 program / flash 会改写真实目标板;只摸清流程或做文档核查时,先停在 project targetslist-devicesdetectbuild,确认目标板、probe、串口和期望固件后再执行下载命令。

# 查看 target 与 probe 绑定。
keil project targets -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx
keil list-devices -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx
keil detect -u 3FD750C63E342E24 -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx -t FREQ_Controller_FW

# 只编译。
keil build --wait -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx -t FREQ_Controller_FW

# 编译后下载,或下载已编译 target。
keil flash --wait -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx -t FREQ_Controller_FW -m daplink --program-backend pyocd -u 3FD750C63E342E24
keil program --wait -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx -t FREQ_Controller_FW -m daplink --program-backend pyocd -u 3FD750C63E342E24

# 不重烧,只复位运行。
keil reset-run --wait -p projects/71-00075-11/FirmWare/MDK-ARM/FREQ_Controller_FW.uvprojx -t FREQ_Controller_FW -u 3FD750C63E342E24

41/GD32 优先使用 Keil UV4 工程 backend,不要把 pyOCD generic 失败当成固件失败:

keil build --wait -p projects/41-00426-20-Controller-Code/Master_Controller/SDK/GD32470Z/Projects/26_ENET/Projects/FreeRTOS_tcpudp/MDK-ARM/Project.uvprojx -t MASTER
keil program --wait -p projects/41-00426-20-Controller-Code/Master_Controller/SDK/GD32470Z/Projects/26_ENET/Projects/FreeRTOS_tcpudp/MDK-ARM/Project.uvprojx -t MASTER -m daplink --program-backend keil -u 123456789ABCDEF

运行态验证

programflashreset-run 前先打开串口抓取,启动日志确认网络和 JSON-RPC ready 后再用 board-comm 主动请求。

serial-monitor ports
serial-monitor monitor start -p COM5 -b 115200
serial-monitor fetch --session-only --no-dedup -l 100

board-comm jrpctcp --host 192.168.0.154 --port 8000 get api
board-comm jrpctcp --host 192.168.0.154 --port 8000 get system/status

编译或下载成功只证明工具阶段完成。固件任务交付证据应同时包含 Keil 结果、新鲜串口启动证据,以及固件暴露 JSON-RPC 时与目标身份匹配的 board-comm 响应。

ConStart 内部文档

项目特有规则继续回到 ConStart 仓库:

  • AGENTS.md:项目索引和术语约定。
  • docs/reference/workspace/keil_skill_usage.md:Keil skill 使用和工程文件维护约束。
  • docs/reference/workspace/serial_monitor_skill_usage.md:串口证据和会话抓取规则。
  • docs/reference/workspace/board_comm_skill_usage.mdJSON-RPC 主动通信规则。
  • docs/reference/workspace/wsl_development_on_d601.mdD601 WSL 开发注意事项。
  • docs/reference/projects/71-00075-11/entry_and_build.mddocs/reference/projects/71-00075-11/TEST.md71-FREQ target、产物和验收入口。