15个版本 (8个重大更改)

0.18.0 2024年5月25日
0.16.1 2024年3月5日
0.16.0 2022年10月26日
0.15.1 2022年5月31日
0.11.0 2020年7月12日

嵌入式开发中排名第1528


2 个软件包中使用

MIT/Apache

535KB
12K SLoC

Nordic nRF9160的硬件抽象层

该软件包是Nordic nRF9160的硬件抽象层(HAL),它包装了PAC(nrf9160-pac)并为芯片的外设提供高级包装。

此软件包不了解您的PCB布局,也不知道哪些引脚分配给了哪些功能。唯一的例外是示例,这些示例是为在官方nRF9160-DK开发套件上运行而编写的。

使用方法

您需要安装thumbv8m.main-none-eabihf目标。

$ rustup target add thumbv8m.main-none-eabihf

安全模式与非安全模式

此HAL设计为在非安全模式下运行,如大多数应用程序代码应这样做。因此,您需要一个'引导加载程序',它在安全模式下启动,将所需的设备移动到'非安全'世界,然后跳转到您的应用程序。

我们已成功使用来自nRF SDK v1.5.1的Nordic的Secure Partition Manager。SPM v1.5.1配置为在地址0x0005_0000处期望您的应用程序,因此memory.x必须指定为Flash的起始位置。

注意:其他版本的SPM可能期望不同的起始地址——尤其是那些作为另一个应用程序(如at_sample)子映像编译的!您可以在启动时查看起始地址。

SPM: NS image at 0x50000

这告诉您SPM正在查找位于0x0005_0000的非安全(NS)映像。

要构建SPM,请运行

$ west init -m https://github.com/nrfconnect/sdk-nrf --mr v1.5.1 ncs
$ cd ncs
$ west update # This takes *ages*
$ cd nrf/examples/spm
$ west build --board=nrf9160dk_nrf9160
$ west flash

West是Nordic提供的用于构建nRF Connect SDK的Python工具。有关详细信息,请参阅Nordic网站

您的nRF9160-DK现在将在0x0000_00000x0004_FFFF之间安装SPM。在0x0005_0000处刷写您的应用程序不应影响SPM,前提是您没有选择擦除整个芯片或类似操作!

如果您想更改闪存地址,请提供您自己的应用crate(或您的板级支持crate)中的memory.x文件,并编写一个build.rs文件,该文件将您的memory.x复制到上面。

许可证

许可方式之一

任选其一。

贡献

除非您明确说明,否则您有意提交的任何贡献,包括在Apache-2.0许可证中定义的贡献,均应如上所述双许可,不附加任何额外条款或条件。

依赖关系

约7.5MB
~183K SLoC