8个版本 (4个破坏性更新)
0.18.0 | 2024年5月25日 |
---|---|
0.17.1 | 2024年4月18日 |
0.16.1 | 2024年3月5日 |
0.16.0 | 2022年10月26日 |
0.14.1 | 2022年1月3日 |
#1889 in 嵌入式开发
530KB
11K SLoC
Nordic nRF5340的硬件抽象层
此crate是Nordic nRF5340的硬件抽象层(HAL),它封装了PAC(nrf5340-pac
)并为芯片的外设提供了高级封装。
此crate不了解您的PCB布局或您将哪些引脚分配给了哪些功能。唯一的例外是示例,这些示例是为在官方nRF5340-DK开发套件上运行而编写的。
用法
您需要安装thumbv8m.main-none-eabihf
目标。
$ rustup target add thumbv8m.main-none-eabihf
安全与非安全
此HAL设计为在非安全模式下运行,您的应用程序代码中的大多数也应如此。因此,您需要一个'引导加载程序',该引导加载程序从安全模式开始,将所需的设备移动到'非安全'世界,然后跳转到您的应用程序。
我们已经成功使用了Nordic的来自nRF SDK v1.7的安全分区管理器。SPM v1.7配置为期望您的应用程序在地址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=nrf5340dk_nrf5340_cpuapp
$ west flash
West是Nordic提供的用于构建nRF Connect SDK的Python工具。有关详细信息,请参阅Nordic网站。
您的nRF5340-DK现在将在 0x0000_0000
和 0x0004_FFFF
之间安装SPM。在 0x0005_0000
处刷写您的应用程序不应影响SPM,前提是您没有选择“擦除整个芯片”等操作!
如果您想更改闪存地址,请将您自己的 memory.x
文件放在您的应用程序crate(或您的板级支持crate)中,并编写一个 build.rs
文件,将您的 memory.x
复制到这个文件的上方。
许可
根据您的选择,许可方式如下:
- Apache License,版本2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献,都应按上述方式双许可,不附加任何额外条款或条件。
依赖项
约10MB
约270K SLoC