flipperzero-firmware README

The project's README from github.com/flipperdevices/flipperzero-firmware. As one markdown file: README.md.

A pixel art of a Dophin with text: Flipper Zero Official Repo

Flipper Zero Firmware

Contributing

Our main goal is to build a healthy and sustainable community around Flipper, so we're open to any new ideas and contributions. We also have some rules and taboos here, so please read this page and our Code of Conduct carefully.

I need help

The best place to search for answers is our User Documentation. If you can't find the answer there, check our Discord Server. If you want to contribute to the firmware development or modify it for your own needs, you can also check our Developer Documentation.

I want to report an issue

If you've found an issue and want to report it, please check our Issues page. Make sure the description contains information about the firmware version you're using, your platform, and a clear explanation of the steps to reproduce the issue.

I want to propose a new feature

If you have a feature request or want to vote on an existing one, please use Discussions and follow our Discussion Guidelines.

I want to contribute code

Before opening a PR, please confirm that your changes must be contained in the firmware. Many ideas can easily be implemented as external applications and published in the Flipper Application Catalog. If you are unsure, reach out to us on the Discord Server or the Issues page, and we'll help you find the right place for your code.

Also, please read our Contribution Guide and our Coding Style, and make sure your code is compatible with our Project License.

Finally, open a Pull Request and make sure that CI/CD statuses are all green.

Development

Flipper Zero Firmware is written in C, with some bits and pieces written in C++ and armv7m assembly languages. An intermediate level of C knowledge is recommended for comfortable programming. C, C++, and armv7m assembly languages are supported for Flipper applications.

Requirements

Supported development platforms:

Supported in-circuit debuggers (optional but highly recommended):

Flipper Build System will take care of all the other dependencies.

Cloning source code

Make sure you have enough space and clone the source code:

git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git

Building

Build firmware using Flipper Build Tool:

./fbt

Flashing firmware using an in-circuit debugger

Connect your in-circuit debugger to your Flipper and flash firmware using Flipper Build Tool:

./fbt flash

Flashing firmware using USB

Make sure your Flipper is on, and your firmware is functioning. Connect your Flipper with a USB cable and flash firmware using Flipper Build Tool:

./fbt flash_usb

Documentation

Project structure

Also, see ReadMe.md files inside those directories for further details.

Links

SAST Tools

flipperzero-firmware (flipperdevices/flipperzero-firmware)

Searching Database…

这是什么?这是运行在 Flipper Zero 上的官方开源固件。Flipper Zero 是一个口袋大小的多功能工具设备(就是那只小海豚),可以和你身边的无线电、卡片和读卡器通信。
它是运行在我的电脑上,还是运行在设备本身上?运行在设备上:这个仓库就是 Flipper Zero 本机固件的源代码。你的电脑只用来编译代码,然后把编译好的固件刷进小海豚。
我怎么把固件装到我的 Flipper 上?克隆这个仓库,用 Flipper Build Tool 编译,然后在 Flipper 开机的状态下通过 USB 刷入,或者用在线调试器刷入。
编译之前我需要装好哪些东西?需要 Windows 10+、macOS 12+ 或 Ubuntu 20.04+,并装好 Git 和基本的编译工具;其余依赖都由 Flipper Build System 自动处理。在线调试器(ST-Link、J-Link、CMSIS-DAP 调试器或 Wi-Fi Dev Board)不是必需的,但强烈建议准备一个。
我必须是经验丰富的 C 开发者才能用它吗?建议具备中等水平的 C 语言基础,写起来才比较轻松;Flipper 应用本身可以用 C、C++ 或 armv7m 汇编来写。
我可以修改固件并刷入自己编译的版本吗?可以——代码采用 GPL-3.0 协议,只要自定义版本保持同样的许可证就没问题。想合入主线的改动必须与项目许可证兼容,并通过 CI 检查。
有了这个固件,Flipper 到底能做什么?它能驱动设备上的各种无线电和读取模块:Sub-GHz 无线电、RFID、NFC、红外、单总线 iButton 和蓝牙 LE,这些都是仓库标签里列出的功能。此外还有一个通用红外遥控器数据库,你可以把自己收藏的遥控器码贡献进去。
我可以不 fork 整个固件就添加自己的应用吗?可以。仓库里有一个 applications_user 文件夹,专门放你自己的应用和服务。维护者也提到,很多想法更适合做成独立的外部应用,发布到 Flipper Application Catalog,而不是合入固件。
Furi 是什么?Furi Core 是固件的操作系统层,提供了各种底层原语和辅助工具,其他所有功能都构建在它之上。在源码目录里,它单独放在 furi 目录中,旁边还有存放共享库的 lib 目录和存放各平台专用代码的 targets 目录。
如果刷机失败把我的 Flipper 刷变砖了怎么办?开发者文档里介绍了各种硬件按键组合和救砖方法,可以把设备从最糟糕的状态恢复回来——这也是为什么建议做底层开发时准备一个在线调试器。
Size
78.4 MB
Stars
16.7K
Age
6y
Commits · 90 Days