#flipper-zero #utils

flipper0-build-cfg

Constants & values for Flipper0 build utils

4 releases

Uses new Rust 2021

0.1.3 Nov 5, 2022
0.1.2 Oct 22, 2022
0.1.1 Oct 17, 2022
0.1.0 Oct 7, 2022

#113 in Build Utils

Download history 46/week @ 2022-10-07 47/week @ 2022-10-14 53/week @ 2022-10-21 20/week @ 2022-10-28 43/week @ 2022-11-04 26/week @ 2022-11-11 23/week @ 2022-11-18 17/week @ 2022-11-25 9/week @ 2022-12-02

78 downloads per month
Used in 3 crates (2 directly)

MIT license

4KB

Rust bindings for Flipper Zero

Automatically generated bindings (or "externs") for Flipper Zero Fw with some little hand-crafted wrappers and additions as upper abstraction layer.

State

Current state of the project is WiP. Highlly & dirty work-in-progress.

Supported (means "tested with") fw version: 0.68.0 but should work normally with any 0.68.

Prerequisites

  • Rust toolchain (currently only nightly supported)
  • target thumbv7em-none-eabihf
  • libclang for bindgen
  • clone of Flipper Zero firmware
  • ARM toolchain, run fbt to easily get it

Add this as dependency to your cargo manifest file:

[dependencies.flipper0]
version = "0.1"
default-features = false # disable prebuild

To build just add FLIPPER_REPO_PATH to your ENV anyhow (config, build-script, shell-rc, etc..), for example run:

FLIPPER_REPO_PATH=~/path/to/flipperzero-firmware/ cargo build --release

Configuration

Environment variables:

  • FLIPPER_REPO_PATH: optional, needed when feature prebuild disabled, points to root of working copy of the firmware repo;
  • ARM_TOOLCHAIN: optional, if omitted build-script will search it in the working copy of the firmware repo. Typically should points to "arm-none-eabi" directory.

Features:

  • prebuild: default, use pre-generated bindings

prebuild is default feature just for ability to build crate out-of-the-box.

Development

Any contribution are appreciated.

TODO:

  • logger & logging feature
  • wrapper for stdout
  • wrapper for threading
  • wrapper for fs
  • impl panic handler
  • impl global alocator
  • get from web by api_symbols.csv with opaque types
  • gen from source
  • gen from built firmware
  • gen from product of fbt sdk_tree
  • tool for apps to build & link elf (with or without fbt)
  • examples
  • proper documentation
  • split api to modules under feature-gates, like "furi" or "gpio".
  • tests
  • CI/CD
  • update to latest fw version

No runtime deps