# ConStart / constar on D601 本文记录 D601 Provider 上 ConStart 固件工作区通过 UniDesk 维护桥进入、用 WSL wrapper 调用 Windows skill,以及完成编译、下载和运行态验证的稳定入口。项目内部细节仍以 ConStart 仓库自己的 `docs/reference/` 为权威来源。 ## 入口 - UniDesk 侧从主 server 仓库执行:`trans D601 -- ''`。 - 当前真实工作区路径是 D601 WSL 内的 `/mnt/f/Work/ConStart`。用户口头说的 `/mnt/f/work/constar` 可视为简称;实际执行前要先解析到真实大小写路径。 - 远端工作优先使用 UniDesk SSH helper:`trans D601 skills`、`trans D601 find`、`trans D601 glob`、`trans D601 py`、`trans D601 apply-patch`,避免多层 shell/Windows 路径转义问题。 - 不要宽泛扫描 `/mnt/*`;Windows 挂载层可能很慢且有权限噪声。应把查找范围限制到 `/mnt/f/Work/ConStart` 或已知子目录。 ## D601 skill 栈 D601 WSL 用户的 `~/.local/bin` 已提供项目级 wrapper: - `keil`:经 `win-py` 调 Windows 侧 Keil skill,Keil 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-cmd`、`win-powershell`、`win-py`、`win-npm`、`win-skill-path`:节点 bootstrap wrapper,通用规则见 `docs/reference/windows-passthrough.md`。 基础自检: ```bash trans D601 skills --limit 80 trans D601 -- 'export PATH="$HOME/.local/bin:$PATH"; command -v win-py win-npm keil serial-monitor board-comm' trans 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 `3FD750C63E342E24`,APP JSON-RPC `192.168.0.154:8000`,bootloader 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 `123456789ABCDEF`,JSON-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 probe,JSON-RPC `192.168.0.152:8000`,串口 `115200` | probe 和 COM 口是现场硬件状态,不是永久事实。下载前必须先跑 `keil list-devices -p `;H7 目标还要跑 `keil detect -u -p -t `。41/GD32 的 pyOCD `detect` 预期会因为 pyOCD 不支持该 target 而失败;41 下载应走 Keil UV4 工程链,并通过串口或 `board-comm` 验证。 ## 编译与下载模式 所有命令都显式传 `project`、`target` 和 `probe`,不要依赖 Keil 当前 target 或隐式 probe 选择。 `program` / `flash` 会改写真实目标板;只摸清流程或做文档核查时,先停在 `project targets`、`list-devices`、`detect` 和 `build`,确认目标板、probe、串口和期望固件后再执行下载命令。 ```bash # 查看 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 失败当成固件失败: ```bash 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 ``` ## 运行态验证 `program`、`flash` 或 `reset-run` 前先打开串口抓取,启动日志确认网络和 JSON-RPC ready 后再用 `board-comm` 主动请求。 ```bash 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.md`:JSON-RPC 主动通信规则。 - `docs/reference/workspace/wsl_development_on_d601.md`:D601 WSL 开发注意事项。 - `docs/reference/projects/71-00075-11/entry_and_build.md` 与 `docs/reference/projects/71-00075-11/TEST.md`:`71-FREQ` target、产物和验收入口。