ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

如何用 ufbt 创建 Flipper Zero 首个 C 应用模板并在 VS Code 中构建运行

如何用 ufbt 创建 Flipper Zero 首个 C 应用模板并在 VS Code 中构建运行 如何用 ufbt 创建 Flipper Zero 首个 C 应用模板并在 VS Code 中构建运行【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware如果你在开发环境里准备写第一个 Flipper Zero 应用目标是走完这条路径在本机安装 uFBTmicro Flipper Build Tool用ufbt create生成一个可编译的应用模板工程在 VS Code 中完成代码编辑与构建最后把应用构建、上传并运行在 Flipper Zero 上。整个过程在 Windows / MacOS / Linux 上都适用前提是你手边有 Flipper Zero 设备本身并有一根 USB 数据线把它连接到电脑来源Your first app in C。准备环境安装 uFBT 与 VS Code按官方文档的要求开发环境需要两样软件uFBT—— FBT 的精简版本覆盖应用开发所需的全部构建功能。完整固件构建才需要 FBT见 Flipper Build Tool 文档中的说明VS Code—— 官方推荐的 IDE因为只有它可以直接与 uFBT 集成使用其他 IDE 需要额外的手动配置。安装 uFBT 时官方教程 要求按照 uFBT 仓库flipperzero-ufbt中的说明安装。当前固件仓库文档中给出的实际安装路径是基于pipx的见 Developer Board 固件更新指南Linux macOSpipx install ufbtWindows先确认已安装 Python 并在 PATH 中py -m pip install --user pipx py -m pipx ensurepath pipx install ufbt安装pipx本身请按其官方说明执行安装完成后建议重开一次终端再运行ufbt相关命令。安装成功后ufbt命令在任意目录可用。用 ufbt create 生成应用模板按以下步骤生成工程来源Your first app in C新建一个文件夹名字随意例如test_app。在该文件夹中打开终端运行ufbt create APPIDtest_appuFBT 会为应用生成所需的完整文件结构。再运行ufbt vscode_dist这条命令会把构建和调试所需的配置写入.vscode目录之后就能直接在 VS Code 里构建和调试 Flipper Zero 应用。注意APPID的取值限制只允许字母a-z、数字0-9和下划线_。生成完成后文件夹结构如下文档示例test_app为示例 APPIDtest_app/ ├── application.fam ├── test_app.c ├── test_app.png ├── .github/ │ └── workflows/ | └── build.yml └── images/ └── .gitkeep各文件的用途application.fam—— 应用清单文件uFBT 读取它来决定如何构建应用。参数详解见 AppManifeststest_app.c—— 应用主文件包含应用入口点test_app.png—— 应用图标要求 10x10、1-bit 色深images/—— 存放图片资源的目录。把 PNG 放进这里后uFBT 会自动将其转换为 Flipper 内部图片格式并生成对应的头文件images/.gitkeep—— 占位文件确保空的images/目录也被 Git 跟踪.github/workflows/build.yml—— GitHub Actions 构建 FAP 包的配置。对照仓库中的模板源文件 application.fam生成后的清单会包含apptypeFlipperAppType.EXTERNAL表示构建为.fap外部应用、entry_pointAPPID_app、stack_size2 * 1024、fap_categoryExamples和fap_icon_assetsimages等字段其中fap_version、fap_description、fap_author、fap_weburl是注释掉的可选值。读懂模板代码按需加一个对话框界面模板生成的主文件对照 模板源文件大致是#include furi.h /* generated by fbt from .png files in images folder */ #include test_app_icons.h int32_t test_app_app(void* p) { UNUSED(p); FURI_LOG_I(TEST, Hello world); FURI_LOG_I(TEST, Im test_app!); return 0; }其中FURI_LOG_I会把 info 级别日志写到 Flipper 控制台test_app_icons.h由 uFBT 根据images/中的 PNG 自动生成只有在应用用到图片时才需要这个头文件。如果想让应用显示图形界面在 VS Code 中用File → Open Folder...打开应用文件夹建议安装 VS Code 提示安装的全部推荐扩展把test_app.c的内容替换为#include furi.h #include dialogs/dialogs.h #include test_app_icons.h int32_t test_app_app(void* p) { UNUSED(p); DialogsApp* dialogs furi_record_open(RECORD_DIALOGS); DialogMessage* message dialog_message_alloc(); dialog_message_set_header(message, Hello world, 64, 20, AlignCenter, AlignTop); dialog_message_set_text(message, Im test_app!, 64, 32, AlignCenter, AlignTop); dialog_message_show(dialogs, message); dialog_message_free(message); furi_record_close(RECORD_DIALOGS); return 0; }这段代码使用DialogsGUI 服务打开RECORD_DIALOGS记录构造一条带标题和正文的消息并显示最后释放资源、关闭记录。GUI 的更多细节见 GUI in Apps。构建并在 Flipper Zero 上运行应用主路径一条命令完成构建、上传、启动。用 USB 线把 Flipper Zero 连到电脑。运行ufbt launch该命令会构建应用、通过 USB 上传并在 Flipper 上启动它。可选路径手动构建 FAP 再经 qFlipper 拷贝。如果不走ufbt launch可以在 VS Code 中按ShiftCtrlBWin/Linux或ShiftCmdBMac触发构建应用连同资源会被打包成自包含的 FAP 文件在 qFlipper 中进入File Manager → SD Card → apps → Examples文件夹不存在则先创建把构建出的应用拖进去在 Flipper Zero 上进入Apps → Examples选择你的应用运行。这条路径与模板中fap_categoryExamples的设定对应应用会被归入 Examples 分类。FAP 的运行机制App Loader 校验兼容性和完整性、拷入 RAM 后执行见 FAP (Flipper App Package)。关键限制SDK 版本必须一致。设备固件的 SDK 版本必须与 uFBT 使用的 SDK 版本匹配。如果启动应用时报 SDK version mismatch 错误用下面这条命令给 Flipper Zero 刷固件ufbt flash_usb验证运行结果日志验证如果应用里用了FURI_LOG_I输出日志运行ufbt cli打开控制台再执行log命令查看日志如果修改过默认日志级别则使用log info。界面验证如果改成了对话框版本ufbt launch后设备屏幕上应显示Hello world标题和Im test_app!正文两行文字。下一步继续深入学习应用开发 GUI 时参考 GUI in Apps需要单步调试 FAP 时参考 Debugging FAPs清单文件各参数stack_size、requires、fap_libs等的完整说明见 AppManifests。【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表