第03章 开发环境搭建
约 1196 字大约 4 分钟
2026-03-23
本项目软件层面使用NCS(Nordic Connect SDK)作为开发环境。
Nordic本身有三套开发环境:nRF5 SDK、nRF5 SDK for Mesh、Nordic Connect SDK。
其中 nRF5 SDK 是旧版本SDK,目前已经不更新新的功能了,只做Bug Fix;nRF5 SDK for Mesh是nRF5 SDK使用BLE Mesh功能的特种开发环境,也进入维护阶段;目前所有新功能,全部会进入NCS框架,所以新的芯片项目技术选型都应该选NCS作为开发环境。
1. 安装 NCS
NCS 的安装分为VSCode插件集成和nrfutil命令行安装两种方式,Nordic官方对于图形胡开发更推荐的是VSCode集成的安装方式。该扩展集提供了管理 SDK 和工具链安装的界面、编译器与链接器接口、支持实时操作系统的调试器、与 nRF Connect SDK 的无缝对接界面以及串行终端功能。
方式1 通过VSCode安装扩展
第一步:安装 JLink驱动并安装 下载地址

第二步:VS Code 中安装扩展 nRF Connect for VS Code Extension Pack

第三步: 打开扩展的侧边栏图标,点击 Install SDK and Install Toolchain 安装 Install SDK 和 Toolchain,按照步骤进行后续流程
方式2 命令行安装
安装 nrfutil:
winget install nrfutil依次执行以下三条命令:
nrfutil install sdk-managernrfutil sdk-manager config install-dir set "d:/ncs"nrfutil sdk-manager install v3.2.3 --region cn上面命令执行完毕后,修改 VsCode 设置:

2. Blink Demo
按照NCS官方文档,一个NSC项目开发需要经过创建APP->创建BSP->构建->刷写四步,下面我们结合官方文档来创建第一个LED Blink示例
2.1. 创建新的APP
官方的示例应用程序都在SDK的sample目录。如果我们想创建一个示例程序,可以在插件目录直接创建



注意:这里不要选nrf的sample

2.2 阅读项目说明
根据Zephyr官方项目说明,该项目构建需要BSP设备树中定义led0节点,所以接下来我们需要为我们的开发板添加BSP包,并添加led0节点。
2.3 添加板级支持包(BSP)
上面的文档详细叙述了添加zephyr板级支持包的规范,包括文件格式,目录结构等。我们如果想编译上面的Blinky样例,需要首先添加自己开发板的板级支持包。
在NCS的VSCode扩展中,我们可以很容易的使用向导添加板级支持包:



在开发板创建完毕后,我们就可以添加刚刚上文说的led0节点。以下是zephyr设备树说明:
添加节点之前,首先看原理图

我们有两个led可以使用,这里我们采用LED1,根据电路可知引脚为P1.02,拉低有效。在设备树中添加节点:
/dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi>
#include "test_board-pinctrl.dtsi"
/ {
model = "test for blinky";
compatible = "atguigu,test-board";
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
};
// LED
aliases {
led0 = &myled0;
};
leds {
compatible = "gpio-leds";
// GPIO 1.02 拉低有效
myled0: led_0 {
gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
};
};
};
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 DT_SIZE_K(48)>;
};
slot0_partition: partition@c000 {
label = "image-0";
reg = <0x0000c000 DT_SIZE_K(472)>;
};
slot1_partition: partition@82000 {
label = "image-1";
reg = <0x00082000 DT_SIZE_K(472)>;
};
storage_partition: partition@f8000 {
label = "storage";
reg = <0x000f8000 DT_SIZE_K(32)>;
};
};
};
// 开启GPIO外设
&gpio1 {
status = "okay";
};
&gpiote {
status = "okay";
};2.5 构建
Zephyr官方文档: Build and configuration system


2.6 烧录
构建完成后,将开发板使用 JLink 接入并刷写固件:

刷写完成后即可看到开发板上绿灯闪烁。
