This is a Rust wrapper for the Nordic nrfxlib driver, specifically libbsd for the nRF9160.
You will need to set the NRFXLIB_PATH environment variable to point to a checkout of https://github.com/NordicPlayground/nrfxlib. Be sure to comply with Nordic's licence for that repository.
You will also need to set the NEWLIB_PATH environment variable to point
to a locally installed copy of the newlib C library headers. This is
because Nordic's nrfxlib headers include <sys/types.h>
, amongst
other things. On Ubuntu, you might use /usr/include/newlib
. If you
have installed a GCC release from Arm, look in /opt/gcc*
somewhere.
console
user@machine:~ $ git clone https://github.com/NordicPlayground/nrfxlib
user@machine:~ $ cd ~/nrfxlib
user@machine:~/nrfxlib $ git checkout tags/v1.0.0
user@machine:~/nrfxlib $ cd ..
user@machine:~ $ export NRFXLIB_PATH=~/nrfxlib
user@machine:~ $ export NEWLIB_PATH=/usr/include/newlib
user@machine:~ $ cd some_project
user@machine:~/some_project $ cargo build
Any binary which uses this crate is going to need to provide a bunch of C library functions, because Nordic's library expects them. This includes, but is not limited to:
You can't just link newlib
, because that defines memset
which clashes with
the compiler-builtin
crate's definition of memset
. Answers on a post-card
please - for now I'm using
tinyrlibc.
Any of the code in this specific repository is under the Blue Oak Licence. The Nordic components that you build this library with are under their own licence.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.