Skip to main content

Building in Arch Linux

To build AlphaFly, first the ARM toolchain has to be installed:

Setup GNU ARM Toolchain






pacman -S arm-none-eabi-gcc arm-none-eabi-newlib arm-none-eabi-binutils


For running tests, the libblocksruntime package from the AUR also has to be installed:






trizen -S libblocksruntime


At the time of writing, the repository version of GCC is 9.2.0, unlike 9.2.1 which AlphaFly expects. If you get the following error, you can override the GCC version in make/locak.mk before proceeding:






$ make


make/tools.mk:301: *** **ERROR** your arm-none-eabi-gcc is '9.2.0', but '9.2.1' is expected. Override with 'GCC_REQUIRED_VERSION' in make/local.mk or run 'make arm_sdk_install' to install the right version automatically in the tools folder of this repo. Stop.
$ echo "GCC_REQUIRED_VERSION = 9.2.0" >> make/local.mk

Building

After the ARM toolchain is installed, you should be able to build from source.






cd src


git clone git@github.com:alfafly/alfafly.git
cd alfafly
make configs
make MATEKF411

You'll see a set of files being compiled, and finally linked, yielding both an ELF and then a HEX:






...


$ ls -l obj/
total 1516
-rwxr-xr-x 1 s-ol s-ol 428584 Jan 11 12:04 alfafly_4.4.2_MATEKF411.bin*
-rw-r--r-- 1 s-ol s-ol 1136991 Jan 11 12:04 alfafly_4.4.2_MATEKF411.hex
drwxr-xr-x 3 s-ol s-ol 4096 Jan 11 12:04 main/

You can use the AlphaFly-Configurator to flash the obj/alfafly_4.4.2_MATEKF411.hex file.

Updating and rebuilding

Navigate to the local alfafly repository and use the following steps to pull the latest changes and rebuild your version of alfafly:






cd src/alfafly


git reset --hard
git pull
make clean
make