# dap-flasher **Repository Path**: michaelhyg/dap-flasher ## Basic Information - **Project Name**: dap-flasher - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DAPLink 下载器 + 串口调试助手 这是一个基于 `Qt Widgets` 的 DAPLink 上位机工程,当前实现的是 `P0` 阶段能力,并为后续 `P1/P2` 扩展预留了分层结构。 ## 当前已实现 - DAPLink 设备自动检测 - HEX / BIN / ELF 固件文件选择 - 可编辑的 MCU target 输入/下拉框 - BIN 基地址输入 - 调用 `pyOCD` 的一键下载 - 下载中状态切换与停止 - 日志实时输出 - 下载结果提示 - 基于输出关键字的伪进度显示 - 最近一次固件路径持久化 - 独立“DAP 下载 / 串口调试”页签,下载和串口调试不混在同一个界面 - 串口调试:串口刷新、打开/关闭、波特率/数据位/校验/停止位/流控配置 - 串口调试:文本/HEX 收发、CRLF 追加、接收时间戳、DTR/RTS 控制、RX/TX 计数 ## 当前架构 ```text MainWindow ├── DAP 下载页 │ ├── DeviceManager │ └── DownloadManager │ └── IDownloadBackend │ └── PyOcdBackend └── 串口调试页 └── SerialConsoleWidget └── QSerialPort ``` ## 目录结构 ```text src/ main.cpp MainWindow.* SerialConsoleWidget.* DownloadManager.* DeviceManager.* IDownloadBackend.h PyOcdBackend.* AppState.h DownloadTypes.h docs/ DAPLink_Qt上位机产品规划文档.md ``` ## 构建要求 - Qt 5.12+ 或 Qt 6.x - Qt SerialPort 模块,qmake 工程中已加入 `QT += serialport`,CMake 工程中已链接 `Qt::SerialPort` - CMake 3.16+ - 编译器:MSVC / MinGW / Clang 任一可用 - 运行环境中可执行 `pyocd` ## 构建示例 ```powershell cmake -S . -B build cmake --build build ``` 当前环境也可直接使用 Qt 自带的 `qmake`: ```powershell C:\Qt\Qt5.12.0\5.12.0\mingw73_64\bin\qmake.exe DapDownloader.pro C:\Qt\Qt5.12.0\Tools\mingw730_64\bin\mingw32-make.exe ``` 如果需要把 Qt 运行库部署到输出目录,可执行: ```powershell C:\Qt\Qt5.12.0\5.12.0\mingw73_64\bin\windeployqt.exe --release --no-translations .\release\DapDownloader.exe ``` ## 使用说明 1. 连接 DAPLink 设备。 2. 启动程序,确认界面显示设备已连接。 3. 选择 `.hex / .bin / .elf` 固件。 4. 如有需要,填写 `pyOCD target` 名称。 5. 如果下载的是 `bin`,填写写入基地址,例如 `0x08000000`。 6. 点击“开始下载”。 7. 通过日志窗口查看详细过程。 8. 切换到“串口调试”页签,可以独立打开串口进行日志查看或命令收发。 ## 已知限制 - 当前设备检测以 DAPLink 挂载盘符识别为主,后续可扩展为 `pyocd list` 与多设备枚举。 - 当前只实现 `pyOCD` 后端,后续可增加 DAPLink 盘符复制后端。 - `verify / reset` 等增强能力仍未在 UI 中开放。