Files
pikasTech-unidesk/docs/reference/constar-d601.md
T
2026-06-03 01:44:46 +00:00

95 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ConStart / constar on D601
本文记录 D601 Provider 上 ConStart 固件工作区通过 UniDesk 维护桥进入、用 WSL wrapper 调用 Windows skill,以及完成编译、下载和运行态验证的稳定入口。项目内部细节仍以 ConStart 仓库自己的 `docs/reference/` 为权威来源。
## 入口
- UniDesk 侧从主 server 仓库执行:`trans D601 -- '<command>'`
- 当前真实工作区路径是 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 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-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 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` 验证。
## 编译与下载模式
所有命令都显式传 `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、产物和验收入口。