摘要:
Nordic半导体在2016年做出重大战略调整,将Zephyr作为其nRF Connect SDK的基础。Zephyr是一个为低功耗嵌入式系统提供的开源、安全、连接的实时操作系统,是集成了驱动、协议、中间件、工具、安全等功能的生态系统,是由Linux基金会主导的,由众多活跃用户和贡献者的社区。Nordic 是Zephyr的主要贡献者之一,迄今为止,Nordic对Zephyr在蓝牙低功耗(Bluetooth LE)、USB协议栈、west 工具、DFU 框架等领域中做出的贡献大约为Zephyr社区中的贡献者对Zephyr做出的总贡献的四分之一。
nRF Connect SDK是Nordic半导体推出的基于Zephyr实施操作系统(RTOS)的完整的软件开发套件,集成了Nordic半导体的nRF52、nRF53、nRF54系列、nrf7002、nrf9160系列等器件的软件驱动、库以及应用例程,应用例程包括cellular IoT(LTE-M和NB-IoT)、蓝牙低功耗、Thread、Zigbee以及蓝牙Mesh.
在nRF Connect SDK中,软件应用例程与硬件开发板之间是完全解耦的,每个软件例程可以支持多种硬件开发板,每个硬件开发板支持多个软件例程。开发板上面Nordic器件(处理器)的引脚的分配是通过叫做设备树的文件来完成的。例如,nRF54L15-DK开发板上的处理器nRF54L15的IO引脚与SDK例程的源文件的映射机制是通过文件夹C:\ncs\v2.9.1\zephyr\boards\nordic\nrf54l15dk\中的设备树文件完成的。这是一个多层次的过程,确保硬件配置和软件代码解耦,同时保证类型安全和编译时验证。
本文首先在第1章通过一个例程介绍了Nordic官方开发板设备树文件、用户开发板设备树文件、编译后自动生成的设备树文件;之后在第2章介绍了用户如何根据自己设计的电路板的需求编写设备树文件,并通过编译进行验证;在第3章中,将编译生成的烧写文件下载到开发板中,验证了引脚分配过程。
1. 设备树文件
从软件开发过程来分,设备树文件包括SDK开发包中定义的官方开发板的设备树文件(包括处理器芯片级的SOC设备树文件(如nrf54l15.dtsi)和电路板级设备树文件(如nrf54l15dk_nrf54l15.dts)),用户根据自己设计的硬件电路编写的后缀为.overlay的设备树文件以及编译后自动生成的工程的设备树文件(build\peripheral_lbs\zephyr\zephyr.dts)。
以NCS中的例程C:\ncs\v2.9.1\nrf\samples\bluetooth\peripheral_lbs为例,若选用的开发板为nrf54l15dk/nrf54l15/cpuapp,NCS采用文件夹C:\ncs\v2.9.1\zephyr\boards\nordic\nrf54l15dk\中的设备树文件对nRF54L15-DK上面的处理器nrf54l15的引脚进行配置,该文件夹中包含的文件如下图所示:

其中文件C:\ncs\v2.9.1\zephyr\boards\nordic\nrf54l15dk\nrf54l15dk_common.dtsi中有关于板卡上关于LED和BUTTON引脚配置的描述:
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "nrf54l15dk_nrf54l_05_10_15-pinctrl.dtsi"
/ {
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
label = "Green LED 0"

7960

被折叠的 条评论
为什么被折叠?



