This project contains the source code for the Local positioning System node firmware.
See the Bitcraze documentation for more information.
You'll need to use either the Crazyflie VM, install some ARM toolchain or the Bitcraze docker builder image. If you install a toolchain, the arm embedded gcc toolchain is recomended.
Frameworks for unit testing are pulled in as git submodules. To get them when cloning
git clone --recursive https://github.com/bitcraze/lps-node-firmware.gitor if you already have a cloned repo and want the submodules
git submodule init
git submodule update brew tap PX4/homebrew-px4
brew install gcc-arm-none-eabiInstall the compiler from the package manager:
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
If all works you will be able to execute arm-none-eabi-gcc:
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:13.2.rel1-2) 13.2.1 20231009
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Report if a newer compiler than the version in the example above does not work out of the box on the latest master commit.
sudo pacman -S community/arm-none-eabi-gcc community/arm-none-eabi-gdb community/arm-none-eabi-newlib
TODO: Please share!
make
or
docker run --rm -v ${PWD}:/module bitcraze/builder ./tools/build/compile
or
tools/do compile
TODO: Please share!
all : Shortcut for build
flash : Flash through jtag
openocd : Launch OpenOCD
dfu : Flash through DFU
We use Unity and cmock for unit testing.
To run all tests
./tools/do test
Go to the contribute page on our website to learn more.
Run the automated build locally to test your code
./tools/build/build