Crates.io | nrfxlib-sys |
lib.rs | nrfxlib-sys |
version | 2.7.1 |
source | src |
created_at | 2019-05-11 22:13:19.659692 |
updated_at | 2024-08-09 12:57:55.836162 |
description | Rust bindings to the Nordic nRF91* Socket Library. |
homepage | |
repository | https://github.com/nrf-rs/nrfxlib-sys |
max_upload_size | |
id | 133616 |
size | 2,404,107 |
This is a Rust wrapper for the Nordic
nrfxlib set of libraries,
primarily libmodem
and liboberon
for the nRF91* series chips (System-in-Packages). Supported chips are the following:
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.
NOTE: This crate does not follow semver. The version of this crate tracks the version of the underlying Nordic libraries.
In your own program or library, you can depend on this crate in the usual fashion:
[dependencies]
# A chip feature must be selected
nrfxlib-sys = { version = "=2.7.1", feature = ["nrf9160"] }
Because the modem library has its debug sections compressed and Rust's tooling doesn't have support for that by default, this crate either strips the debug sections or decompresses them.
By default the crate uses the llvm-tools
that can be installed using rustup component add llvm-tools
.
In this case the debug sections get stripped.
If you'd rather have the debug sections decompressed, then disable the default features on this crate and
enable the arm-none-eabi-objcopy
feature. This will try to use the arm-none-eabi-objcopy
binary that you can
download from the ARM website. This one does have support for debug section compression.
This is a low level wrapper. You might prefer the blocking higher-level wrapper:
[dependencies]
nrfxlib = "*"
You might also prefer the async higher-level wrapper:
[dependencies]
nrf-modem = "*"
Any of the code outside the ./third_party
folder is under the Blue Oak
Licence. Any code inside the ./third_party
folder (include
the Nordic nrfxlib) has its own LICENCE file.
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.
llvm-objcopy
bsd_init
function.bindgen
crate, after Cargo issue #5730 was closed.libnrf_cc310
(CryptoCell 310 API)liboberon
(Optimised software crypto implementation)