针对 FlowLogic 仓库 CMake 多变体工程:
- 侧边栏:选项目 / 构建配置、编译、从
build/<项目>/ 选择对应配置的 带 boot 的 Merge.bin / Combined.bin 烧录
- RTT 原生终端:运行 JLinkRTTClient,彩色日志 + 键盘输入
- Debug 自动 RTT:开始调试会话时自动启动并聚焦 RTT 终端
前置要求:工作区需为 FlowLogic CMake 工程(含 CMakePresets.json),并已安装 CMake + Ninja + arm GCC、SEGGER J-Link(JLinkExe / JLinkRTTClient)。
安装
使用时工作区打开 FlowLogic 仓库根目录(含 CMakePresets.json)。
用法
侧边栏(Activity Bar → FlowLogic)
| 区域 |
作用 |
| 项目变体 |
读 CMakePresets.json |
| 构建配置 |
Release / Debug / …;只列出该配置的 bin |
| 固件列表 |
build/<项目>/ 下带 boot 的 *{Config}*Merge.bin / *{Config}*Combined.bin(产测等独立固件为普通 bin);默认勾选最新 |
| Build |
cmake --preset + cmake --build --preset |
| Flash |
烧录当前勾选的 bin |
| RTT |
启动 / 停止 RTT 原生终端 |
| Map 报告 |
解析 .map 文件,生成 HTML 内存报告并打开(见下) |
双击固件条目可在系统文件管理器中显示。构建目录中的 bin 新增、修改或删除后,固件列表自动刷新。
Map 内存报告
编译成功或点击「Map 报告」后,插件解析 build/<项目>/ 下的链接器 .map 文件,
生成自包含 HTML 报告(内联样式/脚本,无网络请求)到 build/<项目>/<项目><配置>_map_report.html,
并在编辑器 Tab 中打开:
- 内存总览:FLASH / RAM / SRAM4 / FLASH_F 各区域占用条形图 + 百分比,点击行展开段明细(
.data 加载镜像单独计入 FLASH)
- 模块分解:按 App / Bsp / Hal / Middlewares / Protocol 等目录归并的 FLASH / RAM 占用排行,表头可排序
- 最大符号:最大的函数 / 全局变量 Top 12
- 报告文件可分享留档,双击用浏览器打开同样可看;构建成功后自动更新文件(不弹窗)
入口:侧边栏「Map 报告」按钮、命令面板 FlowLogic: 查看 Map 报告、资源管理器右键任意 .map 文件。
建议 FlowLogic 仓库将 map 输出改为按配置命名(-Wl,-Map=${TARGET_PROJECT}${CMAKE_BUILD_TYPE}.map),插件两种命名均兼容。
RTT 原生终端
在集成终端 FlowLogic RTT 中直接运行 SEGGER JLinkRTTClient,支持原生彩色日志与键盘输入。
- 不检测探针,不自动启动 GDB Server,不触发扩展原先的 J-Link 连接确认流程。
- RTT Server 尚未就绪时,客户端持续等待;启动调试或其他提供 RTT Server 的 J-Link 会话后连接。
- 默认端口 19021,可通过
flowlogic.rttPort 修改;可用 flowlogic.jlinkRttClientPath 指定客户端。
- 侧边栏运行状态表示客户端已启动,实际连接状态以终端输出为准。停止 RTT 或关闭终端会结束客户端。
Debug 自动弹出
- 任意 Debug 会话
onDidStartDebugSession → 自动 RTT 启动 + 聚焦终端
- 默认同时把构建配置切到 Debug(侧边栏固件列表对齐 debug 产物)
- 设置:
flowlogic.rttAutoOnDebug(默认 true)
flowlogic.rttAutoSwitchDebugConfig(默认 true)
Debug 结束时 不自动停 RTT,便于继续看日志。
状态栏
| 按钮 |
作用 |
| 项目名 |
选择变体 |
| Release / Debug… |
构建配置 |
| Build |
编译 |
| Flash |
烧录(优先侧边栏已选 bin) |
| RTT |
启动 / 停止 |
烧录规则
- 正式固件:当前配置的
*Merge.bin / *Combined.bin → 0x08000000
- 产测 /
*_rf_test:无合并镜像时用普通 .bin
- 工具:
JLinkExe,默认 STM32U545CE SWD 4000kHz
- 烧录前自动停 RTT(J-Link 独占)
日志在 Output → FlowLogic。
设置
| 键 |
默认 |
说明 |
flowlogic.device |
STM32U545CE |
器件 |
flowlogic.jlinkPath |
自动 |
JLinkExe |
flowlogic.jlinkRttClientPath |
自动 |
JLinkRTTClient |
flowlogic.rttPort |
19021 |
RTT Telnet 端口 |
flowlogic.rttAutoOnDebug |
true |
Debug 时自动 RTT |
flowlogic.rttAutoSwitchDebugConfig |
true |
Debug 时切到 Debug 配置 |
flowlogic.preferMergeBin |
true |
优先 Merge / Combined |
flowlogic.defaultProject |
m61_nb |
默认变体 |
flowlogic.defaultConfig |
Release |
默认配置 |
快捷键
| 键 |
命令 |
Cmd/Ctrl+Shift+B |
编译 |
Cmd/Ctrl+Shift+F5 |
烧录 |
Cmd/Ctrl+Shift+R |
启动 RTT |
依赖
- CMake + Ninja + arm GCC(见仓库
CLAUDE.md)
- SEGGER J-Link:
JLinkExe、JLinkRTTClient
开发
从源码构建 / 调试插件本身:
git clone https://github.com/Roomen/flowlogic-tools.git
cd flowlogic-tools
npm install
npm run compile # 或 npm run watch
VS Code:F5 启动 Extension Development Host 调试;或 F1 →
Extensions: Install from Location... 选本目录本地安装。
打包 .vsix:npm run package。
烧录时自动显示 FlowLogic Flash 终端,以 ASCII 进度条显示 J-Link 当前阶段的实际百分比;无百分比时显示 J-Link 日志。可按 Ctrl+C 或关闭终端取消烧录。