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