news 2026/9/14 3:46:02

通过 Wi-Fi Developer Board 调试 Flipper Zero 固件:VS Code 全流程实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通过 Wi-Fi Developer Board 调试 Flipper Zero 固件:VS Code 全流程实战指南

通过 Wi-Fi Developer Board 调试 Flipper Zero 固件:VS Code 全流程实战指南

【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware

Flipper Zero 的 Wi-Fi Developer Board(开发者板)本质上是一个调试探针,它在主机电脑上的 IDE/调试器与 Flipper Zero 内部的目标微控制器之间架起一座桥,让你可以在 VS Code 中像调试普通嵌入式程序一样,对 Flipper Zero 固件进行断点、单步、变量查看等操作。本文将基于仓库中的官方调试文档 Debugging via the Devboard,从环境准备、连接方式、调试模式切换,到 VS Code 调试会话的启动与源码级配置解析,完整讲解整套调试流程,并延伸覆盖日志读取与开发者板固件更新等配套操作。

调试架构概览:Developer Board 如何桥接 IDE 与 MCU

按官方文档的定位,Developer Board 扮演**调试探针(debug probe)**的角色,负责在两端之间转发调试协议:

  • 主机侧:用户在连接到 Developer Board 的电脑上运行调试器(IDE),通过Wi-FiUSB 线缆控制整个调试过程;
  • 目标侧:Developer Board 与 Flipper Zero 之间通过Serial Wire Debug(SWD)接口交换数据,使用到 GPIO 排针上的两个引脚:
    • Pin 10:Serial Wire Clock(SWCLK)——SWD 时钟线;
    • Pin 12:Serial Wire Debug Data I/O(SWDIO)——SWD 双向数据线。

从源码结构看,仓库在 scripts/fbt_tools/blackmagic.py 中封装了 Black Magic 探针的配套构建/烧录逻辑,在 scripts/fwflash.py 与 scripts/wifi_board.py 中提供了固件烧录与开发者板相关的工具脚本;而 VS Code 调试依赖的 cortex-debug 配置模板位于 scripts/ufbt/project_template/.vscode/launch.json。下文会结合这些文件逐层展开。

开始前的准备

1. 在 Flipper Zero 上启用 Debug 模式

调试应用之前,需要先在 Flipper Zero 本机上开启 Debug 模式:进入Settings → System,将Debug设置为ON(详见 Get started with the Dev Board)。

[!note]每次更新 Flipper Zero 固件后,Debug 模式都需要重新开启。

Debug 模式开启后,你才能通过调试器访问应用的调试符号,并在应用 UI 与 CLI 中使用调试相关选项。

2. 安装 Git 并克隆固件仓库

调试面向的是固件源码,因此电脑上需要先安装 Git。然后打开Terminal(Linux/macOS)或PowerShell(Windows),在希望存放源码的目录中执行:

git clone --recursive https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware.git cd flipperzero-firmware

--recursive会一并拉取仓库依赖的 submodule(包括 FreeRTOS-Kernel、mbedtls、fatfs 等位于 lib 目录下的第三方库)。

3. 构建固件

在克隆得到的flipperzero-firmware目录下,使用Flipper Build Tool(FBT)构建固件:

./fbt

FBT 是仓库根目录下 fbt 入口脚本对应的构建系统(构建规则见 SConstruct 与 firmware.scons),首次运行会自动下载并校验 toolchain。构建产物中与调试直接相关的.elf文件(含完整调试符号)会被后续 VS Code 调试配置引用。

4. 更新开发者板固件(推荐)

开发者板出厂固件可能不含全部最新特性与修复,官方建议在首次使用前按 Firmware update on Developer Board 的步骤升级到最新版本,以确保调试功能的稳定性。

建立开发者板与电脑的连接

Developer Board 支持Wi-FiUSB两种连接方式,两种方式的调试能力略有差异(详见下文“选择与切换调试模式”一节)。

Wi-Fi 连接:接入点(AP)模式(默认)

出厂状态下开发者板工作为 Wi-Fi 接入点。连接步骤如下(见 Wi-Fi connection to the Devboard):

  1. 关闭 Flipper Zero 电源,插上开发者板,再重新开机;
  2. 在手机/笔记本等客户端设备的 Wi-Fi 设置中连接开发者板创建的无线网络:
    • 网络名(SSID):blackmagic
    • 密码:iamwitcher
  3. 浏览器访问开发者板 Web 管理界面:http://192.168.4.1 或 http://blackmagic.local。

找不到blackmagic网络怎么办?

  • 尝试重置电脑的 Wi-Fi 连接;
  • 开发者板很可能已被配置为 Wi-Fi 客户端(STA)模式——按住BOOT10 秒重置为出厂设置,等待重启后即恢复 AP 模式。

AP 模式的缺点是:连接开发者板的 Wi-Fi 后,你的设备会暂时失去原有网络带来的互联网连接。

Wi-Fi 连接:客户端(STA)模式

如果你不希望断开互联网,可以让开发者板接入你现有的 2.4 GHz Wi-Fi 网络:

  1. 先按 AP 模式步骤连接开发者板并进入 Web 界面;
  2. 选择STA模式,输入你家网络的SSID密码(可点+号扫描附近 2.4 GHz 网络,不支持 5 GHz);
  3. 保存配置并重启开发者板;
  4. 此后即可通过现有 Wi-Fi 网络访问 http://blackmagic.local,同时保留互联网连接。

USB 连接

USB 连接用于 DAPLink 调试模式以及读取日志,步骤(见 USB connection to the Devboard):

  1. 若开发者板尚未插在 Flipper Zero 上:先关机 → 插入 → 再开机;
  2. 在电脑上查看串口设备列表:macOS 执行ls /dev/cu.*,Linux 执行ls /dev/tty*,Windows 打开设备管理器 → 端口(COM 和 LPT)
  3. 用 USB-C 线缆把开发者板连到电脑;
  4. 再次查看设备列表,出现两个新设备即代表开发者板已被识别。

[!warning] 若列表中看不到开发者板,请更换线缆、USB 口或电脑尝试。

选择与切换调试模式

开发者板支持Black MagicDAPLink两种调试模式(详见 Devboard debug modes),可用模式取决于连接方式:

连接方式可用调试模式说明
Wi-Fi仅 Black Magic无线调试仅支持 Black Magic
USBBlack Magic(默认)/ DAPLink可在 Web 界面中切换

[!note] Black Magic 模式不支持查看 RTOS 线程,但其他调试操作不受影响。

切换 USB 调试模式需要无线完成(你没看错),且要区分开发者板当前的 Wi-Fi 工作模式:

  1. 若开发者板未连接 Flipper Zero:先关机 → 插入 → 再开机;
  2. 按上文的 AP 或 STA 方式进入 Web 界面;
  3. WiFi标签页点击USB mode,选择BlackMagicProbeDapLink
  4. 点击SAVE保存,再点击REBOOT重启生效。

[!note] 切换后,记得在 VS Code 的Run and Debug面板中选择与之匹配的调试器,再点击 ▷Start Debugging

在 VS Code 中调试固件

以下流程以核心文档 Debugging via the Devboard 为骨架,并结合仓库内真实的 launch.json 模板展开。

1. 安装推荐扩展

在 VS Code 中打开flipperzero-firmware目录后,通常会弹出推荐扩展通知,直接安装即可;若未弹出,可在Extensions标签页搜索栏输入@recommended,安装工作区推荐的扩展(调试依赖其中的 Cortex-Debug 扩展)。

2. 生成 VS Code 调试配置

运行 FBT 的配置生成命令:

./fbt vscode_dist

该命令会生成.vscode下的调试配置文件。仓库中同时提供了一份完整的参考模板 scripts/ufbt/project_template/.vscode/launch.json(由 ufbt 的vscode_dist按同样机制生成),其中预置了四种调试配置:Attach FW (ST-Link)Attach FW (DAP)Attach FW (blackmagic)Attach FW (JLink)

3. 选择调试器

打开Run and Debug标签页,从下拉菜单中按连接方式选择:

  • Attach FW (blackmagic):支持Wi-FiUSB两种连接;
  • Attach FW (DAP)仅 USB连接可用。

通过 USB 调试时,必须确保所选的调试器与开发者板当前的 USB 调试模式一致:在开发者板 Web 界面(进入方式见上文 Wi-Fi 连接一节)查看USB mode字段即可确认当前模式;如需切换,按“选择与切换调试模式”一节操作。

4. 烧录固件并启动调试会话

  1. 必要时先用./fbt flash把刚构建的固件通过开发者板烧入 Flipper Zero;
  2. 点击调试侧边栏的 ▷Start Debugging启动调试会话;
  3. 注意:启动调试会立即暂停固件执行,需要点击顶部工具栏的 I▷Continue按钮让固件继续运行,随后即可在 VS Code 中设置断点、单步调试。

5. launch.json 源码级解析:Black Magic 配置做了什么

以仓库模板中的Attach FW (blackmagic)配置为例,其核心字段与启动命令说明了 Wi-Fi/USB 调试的底层机制(见 launch.json):

{ "name": "Attach FW (blackmagic)", "cwd": "${workspaceFolder}", "executable": "@UFBT_FIRMWARE_ELF@", // 固件 ELF(含调试符号) "request": "attach", // 附加到已运行的目标 "type": "cortex-debug", "servertype": "external", // 复用外部 GDB 服务器 "gdbTarget": "${input:BLACKMAGIC}", // 由 ufbt get_blackmagic 探测探针地址 "svdFile": "@UFBT_DEBUG_DIR@/STM32WB55_CM4.svd", // SVD 外设寄存器描述 "rtos": "FreeRTOS", // 通过 FreeRTOS 插件感知 RTOS "postAttachCommands": [ "monitor swdp_scan", // 扫描 SWD 端口上的目标 "attach 1", // 附加到扫描到的目标(Cortex-M4 核心) "set confirm off", "set mem inaccessible-by-default off", "source @UFBT_DEBUG_DIR@/flipperversion.py", "fw-version", "source @UFBT_DEBUG_DIR@/flipperapps.py", "fap-set-debug-elf-root @UFBT_DEBUG_ELF_DIR@" // 绑定 .fap 应用调试符号 ] }

其中inputs段的BLACKMAGIC输入通过shellCommand.execute执行ufbt -s get_blackmagic,自动解析出 Black Magic 探针的 GDB 目标地址——这正是 Wi-Fi 与 USB 两种连接都能被同一个配置覆盖的原因。flipperversion.py/flipperapps.py由构建系统生成(对应构建产物中的调试辅助脚本),用于把固件版本与应用(FAP)的 ELF 符号注入调试会话,从而实现对固件与应用的双重符号级调试。

对比Attach FW (DAP)配置(见 launch.json):它使用servertype: "openocd"+device: "cmsis-dap",通过 OpenOCD 连接 DAPLink 探针,因此只适用于 USB 连接。

通过开发者板读取日志(USB)

除了断点调试,开发者板还能经 UART 直接读取 Flipper Zero 的日志。与通过 CLI 读日志不同,这种方式独立于 Flipper Zero 的操作系统,在设备启动、升级或崩溃时也能看到日志,非常利于开发期排障(详见 Reading logs via the Dev Board)。

NOTE:目前只有 USB 连接支持日志查看,Wi-Fi 查看日志将在后续版本提供。

设置日志级别

按需进入主菜单 → 设置 → 日志级别(Log Level)调整日志输出详略,之后再按平台读取。

通用第一步:冷插拔(cold-plug)

三种平台一致:先关闭 Flipper Zero → 插上开发者板 → 重新开机,然后用 USB-C 线把开发者板连到电脑,并在串口设备列表中确认两个新设备出现。

macOS:使用 minicom

  1. 安装 Homebrew 后执行brew install minicom

  2. 查看串口设备:ls /dev/cu.*,记录连接开发者板后新出现的设备,例如:

    /dev/cu.usbmodemblackmagic1 /dev/cu.usbmodemblackmagic3

    (具体名称可能不同。)

  3. 编号较大的设备作为端口,以230400波特率连接:

    minicom -D /dev/cu.usbmodemblackmagic3 -b 230400
  4. 在终端查看 Flipper Zero 日志;退出时关闭窗口或经 minicom 菜单退出。

Linux:使用 minicom

  1. 安装:Ubuntu 等发行版执行sudo apt install minicom

  2. 查看串口设备:ls /dev/tty*,连接后通常出现/dev/ttyACM0/dev/ttyACM1

  3. 用编号较大的设备连接:

    minicom -D /dev/ttyACM1 -b 230400

    NOTE:若终端无日志输出,尝试换用另一个设备名重跑上一条命令。

  4. 查看日志;退出时关闭窗口或经 minicom 菜单退出。

Windows:使用 PuTTY

  1. 安装PuTTY
  2. 设备管理器 → 端口(COM 和 LPT)中找到连接开发者板后新增的 COM 口;
  3. 打开 PuTTY,连接类型选Serial,在Serial line填入该端口号,Speed设为230400,点击Open
  4. 在 PuTTY 终端窗口查看日志;退出直接关闭窗口。

开发者板固件更新

如需更新开发者板固件,官方流程(见 Firmware update on Developer Board)如下:

1. 安装 micro Flipper Build Tool(uFBT)

uFBT 是官方提供的跨平台轻量构建工具,支持构建/调试应用、烧录固件、生成 VS Code 配置以及给开发者板烧录固件。

  • Linux/macOS:先按 pipx 官方说明安装pipx并重启终端,再执行pipx install ufbt
  • Windows:安装 Python 后,在 PowerShell 中依次执行py -m pip install --user pipxpy -m pipx ensurepath,重启 PowerShell,再执行pipx install ufbt

2. 将开发者板切换到 Bootloader 模式

  1. 先查看串口设备列表(macOS:ls /dev/cu.*;Linux:ls /dev/tty*;Windows:设备管理器);
  2. 用 USB-C 线连接开发者板与电脑;
  3. 进入 Bootloader 模式:按住 BOOT 键不放 → 按住的同时按下并松开 RESET 键 → 松开 BOOT 键
  4. 再次查看串口设备列表,记录新出现的开发者板设备名。

3. 烧录固件

# Linux / macOS python3 -m ufbt devboard_flash # Windows(PowerShell) py -m ufbt devboard_flash

成功后会输出WiFi board flashed successfully

烧录失败的常见错误与处理:

A fatal error occurred: Serial data stream stopped: Possible serial noise or corruption. FileNotFoundError: [Errno 2] No such file or directory: '/dev/cu.usbmodem01'

可尝试:拔下并重插开发者板,再次按第 2 步进入 Bootloader 模式;或更换电脑的 USB 口、更换 USB-C 线缆。

4. 完成安装

RESET键重启开发者板,拔下并重新插上 USB-C 线缆,固件更新即完成。

相关文档导航

围绕开发者板的完整文档均位于 documentation/devboard 目录,可按需查阅:

  • Get started with the Dev Board:从启用 Debug 模式到插装硬件的完整入门;
  • Wi-Fi connection to the Devboard:AP/STA 两种无线连接方式;
  • USB connection to the Devboard:USB 连接与设备识别;
  • Devboard debug modes:Black Magic / DAPLink 模式与切换方法;
  • Reading logs via the Dev Board:三大平台下的串口日志读取;
  • Firmware update on Developer Board:开发者板固件更新流程。

结合本篇文章,你应已具备从零搭建“Flipper Zero + Wi-Fi Developer Board + VS Code”调试环境的能力:既能通过 Wi-Fi(Black Magic)或 USB(Black Magic/DAPLink)附加调试固件,理解 launch.json 中每条 GDB 命令的作用,也能独立完成日志读取与开发者板固件维护。

【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 3:44:37

LMS与RLS自适应滤波原理及语音降噪Python实现

简介:面向语音信号处理与自适应滤波方向的学习者,这份压缩包提供最小均方误差和递归最小二乘两种经典自适应滤波算法的程序实现。程序以语音信号处理为背景,完整覆盖数据预处理、滤波器系数初始化、迭代更新、误差计算与结果评估等关键环节&a…

作者头像 李华
网站建设 2026/9/14 3:43:58

上市公司碳排放数据分析与Stata应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 3:43:40

SpringBoot+Vue现代农业系统架构设计与实践

1. 项目概述:乐享田园系统的技术架构与核心价值乐享田园系统是一个典型的现代农业信息化解决方案,采用当前主流的前后端分离架构实现。这套系统最显著的特点是采用了SpringBootVueMyBatisMySQL这一黄金技术组合,为农业园区管理、农产品溯源、…

作者头像 李华
网站建设 2026/9/14 3:41:54

SLM工艺仿真与Fluent热源UDF开发实战

1. SLM工艺仿真背景与Fluent方案选型选择性激光熔化(Selective Laser Melting, SLM)作为金属增材制造的核心工艺,其过程涉及复杂的多物理场耦合现象。传统试错法开发参数成本高昂,而数值仿真成为优化工艺参数的有效手段。在主流CF…

作者头像 李华