This project contains the source code for the Local positioning System node firmware.
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.git
or 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-eabi
Download, extract and put in your path the compiler from https://launchpad.net/gcc-arm-embedded. For example:
mkdir -p ~/opt/
cd ~/opt
wget https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q3-update/+download/gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2
tar xvf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2
mv gcc-arm-none-eabi-5_4-2016q3 gcc-arm-none-eabi
rm gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2
echo "export PATH=\$PATH:\$HOME/opt/gcc-arm-none-eabi/bin" >> ~/.bashrc
On 64Bit Linux you also need to install some 32Bit libs:
sudo apt-get install libncurses5:i386
If all works you will be able to execute arm-none-eabi-gcc
:
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
Copyright (C) 2015 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.
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 throgh jtag
openocd : Launch OpenOCD
dfu : Flash throgh DFU
We use Unity and cmock for unit testing.
To run all tests
./tools/do test