拓冰建站拓冰建站
首页 / 资讯中心 / 正文

通过 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-firmwareFlipper 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-Fi或USB 线缆控制整个调试过程目标侧Developer Board 与 Flipper Zero 之间通过Serial Wire DebugSWD接口交换数据使用到 GPIO 排针上的两个引脚Pin 10Serial Wire ClockSWCLK——SWD 时钟线Pin 12Serial Wire Debug Data I/OSWDIO——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。然后打开TerminalLinux/macOS或PowerShellWindows在希望存放源码的目录中执行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 ToolFBT构建固件./fbtFBT 是仓库根目录下 fbt 入口脚本对应的构建系统构建规则见 SConstruct 与 firmware.scons首次运行会自动下载并校验 toolchain。构建产物中与调试直接相关的.elf文件含完整调试符号会被后续 VS Code 调试配置引用。4. 更新开发者板固件推荐开发者板出厂固件可能不含全部最新特性与修复官方建议在首次使用前按 Firmware update on Developer Board 的步骤升级到最新版本以确保调试功能的稳定性。建立开发者板与电脑的连接Developer Board 支持Wi-Fi与USB两种连接方式两种方式的调试能力略有差异详见下文“选择与切换调试模式”一节。Wi-Fi 连接接入点AP模式默认出厂状态下开发者板工作为 Wi-Fi 接入点。连接步骤如下见 Wi-Fi connection to the Devboard先关闭 Flipper Zero 电源插上开发者板再重新开机在手机/笔记本等客户端设备的 Wi-Fi 设置中连接开发者板创建的无线网络网络名SSIDblackmagic密码iamwitcher浏览器访问开发者板 Web 管理界面http://192.168.4.1 或 http://blackmagic.local。找不到blackmagic网络怎么办尝试重置电脑的 Wi-Fi 连接开发者板很可能已被配置为 Wi-Fi 客户端STA模式——按住BOOT键10 秒重置为出厂设置等待重启后即恢复 AP 模式。AP 模式的缺点是连接开发者板的 Wi-Fi 后你的设备会暂时失去原有网络带来的互联网连接。Wi-Fi 连接客户端STA模式如果你不希望断开互联网可以让开发者板接入你现有的 2.4 GHz Wi-Fi 网络先按 AP 模式步骤连接开发者板并进入 Web 界面选择STA模式输入你家网络的SSID与密码可点号扫描附近 2.4 GHz 网络不支持 5 GHz保存配置并重启开发者板此后即可通过现有 Wi-Fi 网络访问 http://blackmagic.local同时保留互联网连接。USB 连接USB 连接用于 DAPLink 调试模式以及读取日志步骤见 USB connection to the Devboard若开发者板尚未插在 Flipper Zero 上先关机 → 插入 → 再开机在电脑上查看串口设备列表macOS 执行ls /dev/cu.*Linux 执行ls /dev/tty*Windows 打开设备管理器 → 端口COM 和 LPT用 USB-C 线缆把开发者板连到电脑再次查看设备列表出现两个新设备即代表开发者板已被识别。[!warning] 若列表中看不到开发者板请更换线缆、USB 口或电脑尝试。选择与切换调试模式开发者板支持Black Magic与DAPLink两种调试模式详见 Devboard debug modes可用模式取决于连接方式连接方式可用调试模式说明Wi-Fi仅 Black Magic无线调试仅支持 Black MagicUSBBlack Magic默认/ DAPLink可在 Web 界面中切换[!note] Black Magic 模式不支持查看 RTOS 线程但其他调试操作不受影响。切换 USB 调试模式需要无线完成你没看错且要区分开发者板当前的 Wi-Fi 工作模式若开发者板未连接 Flipper Zero先关机 → 插入 → 再开机按上文的 AP 或 STA 方式进入 Web 界面在WiFi标签页点击USB mode选择BlackMagicProbe或DapLink点击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-Fi与USB两种连接Attach FW (DAP)仅 USB连接可用。通过 USB 调试时必须确保所选的调试器与开发者板当前的 USB 调试模式一致在开发者板 Web 界面进入方式见上文 Wi-Fi 连接一节查看USB mode字段即可确认当前模式如需切换按“选择与切换调试模式”一节操作。4. 烧录固件并启动调试会话必要时先用./fbt flash把刚构建的固件通过开发者板烧入 Flipper Zero点击调试侧边栏的 ▷Start Debugging启动调试会话注意启动调试会立即暂停固件执行需要点击顶部工具栏的 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: openocddevice: 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安装 Homebrew 后执行brew install minicom查看串口设备ls /dev/cu.*记录连接开发者板后新出现的设备例如/dev/cu.usbmodemblackmagic1 /dev/cu.usbmodemblackmagic3具体名称可能不同。用编号较大的设备作为端口以230400波特率连接minicom -D /dev/cu.usbmodemblackmagic3 -b 230400在终端查看 Flipper Zero 日志退出时关闭窗口或经 minicom 菜单退出。Linux使用 minicom安装Ubuntu 等发行版执行sudo apt install minicom查看串口设备ls /dev/tty*连接后通常出现/dev/ttyACM0、/dev/ttyACM1用编号较大的设备连接minicom -D /dev/ttyACM1 -b 230400NOTE:若终端无日志输出尝试换用另一个设备名重跑上一条命令。查看日志退出时关闭窗口或经 minicom 菜单退出。Windows使用 PuTTY安装PuTTY在设备管理器 → 端口COM 和 LPT中找到连接开发者板后新增的 COM 口打开 PuTTY连接类型选Serial在Serial line填入该端口号Speed设为230400点击Open在 PuTTY 终端窗口查看日志退出直接关闭窗口。开发者板固件更新如需更新开发者板固件官方流程见 Firmware update on Developer Board如下1. 安装 micro Flipper Build TooluFBTuFBT 是官方提供的跨平台轻量构建工具支持构建/调试应用、烧录固件、生成 VS Code 配置以及给开发者板烧录固件。Linux/macOS先按 pipx 官方说明安装pipx并重启终端再执行pipx install ufbtWindows安装 Python 后在 PowerShell 中依次执行py -m pip install --user pipx、py -m pipx ensurepath重启 PowerShell再执行pipx install ufbt。2. 将开发者板切换到 Bootloader 模式先查看串口设备列表macOSls /dev/cu.*Linuxls /dev/tty*Windows设备管理器用 USB-C 线连接开发者板与电脑进入 Bootloader 模式按住 BOOT 键不放 → 按住的同时按下并松开 RESET 键 → 松开 BOOT 键再次查看串口设备列表记录新出现的开发者板设备名。3. 烧录固件# Linux / macOS python3 -m ufbt devboard_flash # WindowsPowerShell 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 DevboardAP/STA 两种无线连接方式USB connection to the DevboardUSB 连接与设备识别Devboard debug modesBlack Magic / DAPLink 模式与切换方法Reading logs via the Dev Board三大平台下的串口日志读取Firmware update on Developer Board开发者板固件更新流程。结合本篇文章你应已具备从零搭建“Flipper Zero Wi-Fi Developer Board VS Code”调试环境的能力既能通过 Wi-FiBlack Magic或 USBBlack Magic/DAPLink附加调试固件理解 launch.json 中每条 GDB 命令的作用也能独立完成日志读取与开发者板固件维护。【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门