-
Notifications
You must be signed in to change notification settings - Fork 15
Build Process
This Wiki entry describes the somewhat complex build process that happens when you run make
in the root of the project repository.
Flipper targets three disparate targets, each of which have unique toolchains. These platforms are as follows.
-
arm-
- The embedded operating system.
-
avr-
- The co-processor firmware image.
-
x86_64-
- The platform library and tools.
The first component to be build is the embedded operating system for the device. The embedded operating system must be built first because the output file is needed to build the platform library. More on that later.
The libflipper
library contains all of the API needed for applications to interact with Flipper hardware. This library is built after the embedded operating system because the API included in this library is coupled with the API exposed by the device's firmware.
The fdwarf
tool analyzes the firmware image that is produced by step 1 of the build process. This tool then generates bindings for all of the modules declared in the firmware.
These module bindings are then compiled against the libflipper
source to produce libflipper.so
, a dynamically linked library. When API calls are made to functions that are exposed in the devices firmware image, libflipper
performs a remote procedure call to the corresponding function on the hardware.