17个版本 (6个稳定版)

2.7.1 2024年8月9日
2.4.2 2023年9月6日
2.1.0 2022年12月25日
1.5.1 2021年5月19日
0.1.6 2019年7月31日

#3 in #nrf9160

Download history 31/week @ 2024-05-03 12/week @ 2024-05-10 11/week @ 2024-05-17 4/week @ 2024-05-24 15/week @ 2024-05-31 35/week @ 2024-06-07 52/week @ 2024-06-14 30/week @ 2024-06-21 7/week @ 2024-06-28 120/week @ 2024-07-05 7/week @ 2024-07-12 54/week @ 2024-07-19 91/week @ 2024-07-26 10/week @ 2024-08-02 229/week @ 2024-08-09 31/week @ 2024-08-16

每月375次下载
用于 3 个crate

自定义许可

1.5MB
123

包含 (静态库,400KB) oberon_3.0.15.lib,(静态库,400KB) liboberon_3.0.15.a,(静态库,400KB) liboberon_3.0.15.a,(静态库,130KB) libmodem.a,(静态库,130KB) libmodem.a,(静态库,24KB) liboberon_mbedtls_3.0.15.a 以及2个其他文件。

nrfxlib-sys

这是一个Rust对Nordic nrfxlib 库集的包装,主要用于nRF91*系列芯片(System-in-Packages)的libmodemliboberon。支持的芯片如下:

  • nRF9160
  • nRF9151
  • nRF9161

任何使用此crate的二进制文件都需要提供大量的C库函数,因为Nordic的库期望它们。这包括但不限于

  • atoi
  • snprintf
  • strol
  • strchr

您不能只是链接newlib,因为它定义了memset,这与编译器内置crate的memset定义冲突。请通过明信片回答——目前我正在使用tinyrlibc

使用

注意:此crate不遵循semver。此crate的版本跟踪底层Nordic 的版本。

在您的程序或库中,您可以使用常规方式依赖此crate

[dependencies]
# A chip feature must be selected
nrfxlib-sys = { version = "=2.7.1", feature = ["nrf9160"] }

由于调制解调器库的调试部分被压缩,而Rust的工具链默认不支持这一点,因此此crate会剥离调试部分或解压缩它们。

默认情况下,此crate使用llvm-tools,可以通过rustup component add llvm-tools安装。在这种情况下,调试部分会被剥离。

如果您希望解压缩调试部分,请禁用此crate的默认功能并启用arm-none-eabi-objcopy功能。这将尝试使用您可以从ARM网站下载的arm-none-eabi-objcopy二进制文件。该二进制文件支持调试部分压缩。

这是一个底层包装器。您可能更喜欢更高层次的阻塞包装器

[dependencies]
nrfxlib = "*"

您也可能更喜欢异步包装器

[dependencies]
nrf-modem = "*"

许可证

除了./third_party文件夹外的任何代码都受蓝橡树许可证约束。位于./third_party文件夹内的任何代码(包括Nordic nrfxlib)都有其自己的许可证文件。

贡献

除非您明确说明,否则任何有意提交以包含在您的工作中的贡献,都应按照上述方式许可,不附加任何额外条款或条件。

变更日志

未发布变更(源代码 | 变更

v2.7.1(源代码 | 变更

  • 通过包含二进制文件修复了构建问题

v2.7.0(源代码 | 变更

v2.4.2(源代码 | 变更

  • 更新到nrfxlib v2.4.2
  • 改进了构建脚本搜索llvm-objcopy的方式

v2.1.0(源代码 | 变更

v1.4.2(源代码 | 变更

  • 更新到nrfxlib v1.4.2
  • 为调用bsd_init函数添加了新的参数。
  • 在Cargo问题#5730关闭后,切换回bindgen crate。

v1.2.0(源代码 | 变更

  • 更新到nrfxlib v1.2.0
  • 修复了由usize/u32和isize/i32转换引起的某些构建错误。

v1.1.0-rc3+rel1(源代码 | 变更

  • 更新到nrfxlib v1.1.0-rc3
  • libnrf_cc310(CryptoCell 310 API)生成头文件
  • liboberon(优化的软件加密实现)生成头文件

v1.1.0-rc2+rel1(源代码 | 变更

v0.2.0(源代码 | 变更

  • 要求用户安装bindgen作为命令行工具。

v0.1.7 (源代码 | 变更)

  • 使用Cargo 5730的解决方案。
  • 更新bindgen到0.51版本。
  • 使用Rustfmt生成的代码。
  • 使用制表符重新格式化。

v0.1.6 (源代码 | 变更)

  • 捆绑C头文件(修复了Travis构建问题)。

v0.1.5 (源代码 | 变更)

  • 上游nrfxlib的子模块。

v0.1.4 (源代码 | 变更)

  • 添加bsd_limits.h, nrf_key_mgmt.h和nrf_apn_class.h头文件。

v0.1.3 (源代码 | 变更)

  • 更新本README以指定检出v1.0.0标签。
  • 添加了Travis CI文件。

v0.1.2 (源代码 | 变更)

  • 添加NEWLIB_PATH以便用户可以指向正确的新lib头文件。

v0.1.1 (源代码 | 变更)

  • 更新README和crate元数据。

v0.1.0 (源代码)

  • 第一个版本。

无运行时依赖。

~0–1.8MB。
~36K SLoC