flipperzero-firmware - FlipperZeroファームウェアのソースコード

(Flipper Zero firmware source code)

Created at: 2020-08-01 05:43:20
Language: C
License: GPL-3.0

フリッパーゼロファームウェア

不和

コードを見せて

Flipper Zeroのファームウェアリポジトリへようこそ!私たちの目標は、優れたドキュメントを備えたすてきでクリーンなコードを作成し、誰もが一緒に作業できるようにすることです。

リポジトリのクローンを作成する

でクローンを作成する必要があります

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

ファームウェアを更新する

UpdateServerから最新のファームウェアを入手する

Flipper Zeroのファームウェアは、次の2つのコンポーネントで構成されています。

  • Core2ファームウェアセット-STによる独自のコンポーネント:FUS+無線スタック。FUSは工場でフラッシュされているため、更新しないでください。
  • Core1ファームウェア-HAL+OS+ドライバー+アプリケーション。

両方とも、説明されている順序でフラッシュする必要があります。

オフラインアップデートパッケージ付き

USB経由でフリッパーを接続した場合:

./fbt --with-updater flash_usb

パッケージをビルドするだけです:

./fbt --with-updater updater_package

更新するには、結果のディレクトリをFlipperのSDカードにコピーし

update.fuf
、アーカイブアプリでファイルに移動します。

STLinkで

Core1ファームウェア

前提条件:

一発ギャグ:

./fbt firmware_flash

USBDFU付き

  1. 最新のファームウェアをダウンロードする

  2. フリッパーをブートローダーに再起動します

  • ← Left
    +を押し続けると
    ↩ Back
    リセットされます
  • 放して、青いLEDが点灯するまで
    ↩ Back
    押し続けます
    ← Left
  • リリース
    ← Left
  1. 走る
    dfu-util -D full.dfu -a 0

Dockerでビルドする

前提条件

  1. DockerEngineとDockerComposeをインストールします
  2. コンテナを準備します。
docker-compose up -d

すべてをコンパイルする

docker-compose exec dev ./fbt

dist/
ビルド出力を確認します。

flipper-z-{target}-full-{suffix}.dfu
デバイスをフラッシュするために使用します。

コンパイルが失敗した場合は、すべてのサブモジュールがすべて初期化されていることを確認してください。でクローンを作成する

--recursive
か、を使用します
git submodule update --init --recursive

Linux/macOSでビルド

documentation/fbt.md
ファームウェアの構築とフラッシュの詳細については、こちらをご覧ください。

macOSの前提条件

すべての依存関係を作成してインストールしいることを確認してください。

brew bundle --verbose

Linuxの前提条件

gcc-arm-none-eabi

toolchain="gcc-arm-none-eabi-10.3-2021.10"
toolchain_package="$toolchain-$(uname -m)-linux"

wget -P /opt "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/$toolchain_package.tar.bz2"

tar xjf /opt/$toolchain_package.tar.bz2 -C /opt
rm /opt/$toolchain_package.tar.bz2

for file in /opt/$toolchain/bin/* ; do ln -s "${file}" "/usr/bin/$(basename ${file})" ; done

オプションの依存関係

  • openocd(SWDを介したデバッグ/フラッシュ)
  • 熱収縮(画像アセットのコンパイル)
  • clang-format(コードフォーマット)
  • dfu-util(USB DFUを介したフラッシュ)
  • protobuf(プロトソースのコンパイル)

たとえば、Debianにインストールするには、次を使用します。

apt update
apt install openocd clang-format-13 dfu-util protobuf-compiler

熱収縮はソースからコンパイルする必要があります。

すべてをコンパイルする

./fbt

dist/
ビルド出力を確認します。

flipper-z-{target}-full-{suffix}.dfu
デバイスをフラッシュするために使用します。

すべてをフラッシュする

ST-Linkを介してデバイスを接続し、以下を実行します。

./fbt firmware_flash

リンク

プロジェクトの構造

  • applications
    -ファームウェアで使用されるアプリケーションとサービス
  • assets
    -アプリケーションとサービスで使用される資産
  • furi
    -Furi Core:OSレベルのプリミティブとヘルパー
  • debug
    -デバッグツール:GDBプラグイン、SVDファイルなど
  • docker
    -Dockerイメージソース(ファームウェアビルドの自動化に使用)
  • documentation
    -ドキュメント生成システムの構成と入力ファイル
  • firmware
    -ファームウェアのソースコード
  • lib
    -私たちとサードパーティのライブラリ、ドライバーなど...
  • scripts
    -補足スクリプトとPythonライブラリホーム

ReadMe.md
これらのディレクトリ内のファイルにも注意してください。