桌面版应用_【Nordic博文分享系列】开发你的第一个NCS(Zephyr)应用程序

本文介绍了Nordic的nRF5 SDK和NCS SDK,推荐根据芯片系列和所需功能选择合适的SDK。重点讲解了NCS SDK的安装过程,包括Windows上的百度网盘下载、nRF connect桌面版下载以及nRF command line tools的安装。此外,还提到了NCS SDK的开发环境搭建,包括SES图形化环境和命令行方式,并概述了配置项目和重要目录结构。
摘要由CSDN通过智能技术生成
b607f283469a4a29f450d85f1a9750e9.gif

Nordic有2套并存的SDK

1、老的nRF5 SDK

2、新的NCS SDK

两套SDK相互独立,

大家选择其中一套进行开发即可。

  • 一般而言,如果你选择的芯片是nRF51或者nRF52系列,那么推荐使用nRF5 SDK

  • 如果你选择的是Nordic最新产品系列,比如nRF53或者nRF9160,那么请选择NCS SDK

还有一种特殊情况,虽然你选择的是nRF52芯片,但需要使用最新的一些射频技术,比如蓝牙测向,蓝牙Mesh v1.1,低功耗蓝牙音频,那么也需要使用NCS SDK。

换句话说,最新的射频技术,Nordic都只会在NCS上进行开发,而nRF5 SDK将进入维护阶段不再增加新的特性(如发现bug,会对其进行修复的)

08b591fba6ab6bc89a6cc8dca2930b50.png目录            

1、NCS SDK介绍                    

2、NCS SDK 安装

       2.1 - 百度网盘下载 (仅适用于Windows)

       2.2 -  通过nRF connect桌面版直接下载GitHub下载(Windows/ Linux/ macOS)

       2.3 - nRF command line tools安装

3、NCS SDK开发环境说明

       3.1 - SES 开发环境搭建

           3.1.1. nRF52项目示例

           3.1.2. nRF53项目示例

           3.1.3. nRF9160项目示例

           3.1.4. 自定义项目装载示例

       3.2 - 命令行方式开发环境搭建

           3.2.1. nRF52项目示例

           3.2.2. nRF53项目示例

           3.2.3. nRF9160项目示例

       3.3 - 命令行方式开发环境搭建

4、NCS SDK项目的配置或选项

       4.1 - NSC项目配置介绍(autoconf.h和devicetree_unfixed.h)

           4.1.1. Kconfig (Kconfig, prj.conf及autoconf.h)

           4.1.2. Device Tree (*.dts, *.overlay及devicetree_unfixed.h)

           4.1.3. 配置程序起始地址和大小

       4.2 - 图形化查看Kconfig选项

           4.2.1. SES查看

           4.2.2. 命令行方式查看

5、NCS SDK中几个比较重要的目录

       5.1 - 例子目录

       5.2 - API目录

       5.3 板子定义目录

6、开发你的第一个NCS程序

       6.1 - 修改hello_world main.c文件

       6.2 - 在项目中添加一个新的文件blinky.c

       6.3 修改blinky.c文件

       6.4 编译和运行你的第一个hello_world程序

       6.5 使用prj.conf和.overlay配置项目

7、开发你的第一个multi-image(多image)应用

       7.1 - 分区管理 (Partition Manager)

       7.2 多image的hello_world程序开发

8、NCS编译系统几个要注意的点

       8.1 - NCS几个重要的编译系统变量

       8.2 - conf文件命名规则及编译顺序

       8.3 - overlay 文件命名规则及编译顺序

nRF5 SDK的介紹

关于nRF5 SDK的介绍,请参考这篇博文之前的博文,基本上都是基于nRF5 SDK进行阐述的,尤其是这篇:

Nordic nRF51/nRF52开发环境搭建

详细讲解了nRF5 SDK开发环境的搭建,这里不再赘述。下面将只对NCS SDK进行阐述,以期让大家快速了解这个Nordic最新SDK,并尽快熟悉和上手。

1、NCS SDK介紹

NCS全称nRF Connect SDK,是Nordic最新的SDK平台,该平台将支持Nordic所有产品线,包括低功耗蓝牙,蜂窝网,2.4G,蓝牙Mesh,Zigbee,Thread,CHIP等。

换句话说,由于短距离无线网络和长距离无线网络共用同一个SDK,将使得你同时具备两种网络的开发经验,因为他们的框架是一样的,驱动是一样的,网络协议栈的编写风格也是相仿的。

只要你熟悉了其中一种网络的开发,那么相关的经验可以迅速复制到新网络平台上。

NCS SDK内嵌Zephyr RTOS,并沿用了Zephyr project的编译系统。Zephyr Project是Linux基金会推出的一个Apache2.0开源项目,版权非常友好,适合用于商业项目开发。

°Zephyr Project

  • Zephyr Project是一个合作社区,其产品就是Zephyr,具体包括Zephyr RTOS,Zephyr组件以及Zephyr编译系统等

  • Zephyr很多地方都模拟了Linux,比如使用了DeviceTree和Kconfig,对Linux很熟的同学,阅读Zephyr代码会感到很亲切的

  • 经常有人问:为什么NCS要使用Zephyr RTOS?

    • 其实答案就蕴含在Zephyr Project的愿景中:The Zephyr™ Project strives to deliver thebest-in-class RTOS for connected resource-constrained devices, built be secureand safe

  • Zephyr的愿景跟Nordic的产品策略高度吻合,这也是为什么Nordic要选Zephyr的主要原因

NCS SDK和Zephyr Project两者最大的区别有3个:

  1. owner不同,NCS SDK由Nordic负责,Zephyr SDK由Linux基金会负责。NCS开发中碰到的所有问题,Nordic都将负责解决

  2. 产品管理不一样,NCS SDK将由Nordic完成所有相关测试和考核,并符合Nordic产品开发,测试,发布和质量控制流程,因此NCS有自己的版本,并跟Zephyr版本控制解耦

  3. NCS具有很多增强特性,比如Nordic特有的蓝牙链路层等

所以,从产品角度看,NCS SDK和Zephyr SDK是两套完全不同的SDK。但是,如果从代码角度看,那么NCS SDK和Zephyr SDK又基本上是一样的。

在本文章的下面部分,在不引起混淆的情况下,经常会把NCS和Zephyr两个概念换着使用,因为本质上他们是一个东西。

°NCS使用了CMake编译系统

  • 并使用了大量Python脚本以辅助生成一些头文件,代码和hex,这些都大大增加开发的可移植性和便利性。

°NCS SDK放在GitHub上

  • 里面包含多个代码库,其主代码库(Manifest)是nrf,同时还包含Zephyr,MCUBoot,mbedtls,nrfxlib等其他代码库。NCS SDK可以同时在Windows,macOS和Linux上运行。

°于Zephyr和NCS的build系统是一样的

  • 于Zephyr和NCS的build系统是一样的,如果你正在学习Zephyr RTOS,那么也可以参考本篇文章,从NCS SDK开始学习Zephyr。由于NCS SDK新增了很多特性,比如图形化的DEBUG,丰富的例程,你会发现从NCS SDK学习Zephyr是一条便捷通道。

2、NCS SDK安裝

NCS SDK开发包比较大,目前大概4G(后续有可能会更大),由于GitHub网络带宽的问题,很多人下载的时候会出现超时错误,为此我们提供如下两种安装方案。

如果你能在早上6点左右起床,请参考2.2方案(GitHub直接下载);如果你不想早点起来,请参考2.1方案(百度网盘下载)。

°2.1 百度网盘下载(仅适用于Windows)

代码链接

地址如下所示

下载链接:https://pan.baidu.com/s/1FKTfY3Q_zBVvviO7KC7Gyg#list/path=%2Fblog

提取码:y8fb

进入目录“开发你的第一个NCS(Zephyr)应用程序”,选择相应的版本,推荐使用最新版本。本篇博文完成之时最新量产tag为:

ncs_v1.4.1

后续还会有ncs_v1.5.0,ncs_v1.6.0等。

直接把相应的压缩包下载下来并解压到本地目录,SDK即算安装完成。

注意,这个压缩包只能在Windows系统上运行,不能在Linux和macOS上运行。

*注:ncs_v1.4.99-dev1是专为nRF53准备的一个临时开发版本,量产版本需要等到v1.5.0或者更新。

°2.2 通过nRF connect桌面版直接GitHub下载(同时支持Windows, Linux和macOS)

采用这个方案,你必须早上6:00左右起床,切记!

首先,下载桌面版nRF connect (同时支持Windows/macOS/Linux平台)。下载链接为:

https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop/Download#infotabs,选择你的平台和版本。

dbdef408a2e5cf044dc0cc88a541b565.png

桌面版nRF connect安装成功后,将如下所示:

be5cac6bd4cefe29cbc02c0b157db148.png

在nRF connect桌面版中有2个app都可以完成NCS SDK安装:

  • 一个是Toolchain Manager

  • 一个是Getting Started Assistant

如果你是GitHub老手,可以按照Getting Started Assistant的步骤一步一步来安装。如果你嫌一步一步安装麻烦,那么建议你使用Toolchain Manager一键安装。

下面将会以Toolchain Manager的方式(支持Windows和macOS)来讲解安装过程(Getting Started Assistant的方式自己有兴趣可以自己去摸索,而且Linux系统目前只能采用这种方式)

首先install Toolchain Manager,然后open,进入settings界面,选择安装目录,如下:

8273fcdaf789773b84f8794bbc70f486.png

然后重新选择SDK ENVIRONMENTS页面,并选择SDK相应版本进行安装,如下所示:

2da299ef6c2c5ba10e817e1cf8c088cd.png

根据网速不同,这个过程持续时间变化很大,我这边网络大概需要20分钟完成所有下载和安装,安装成功后你将得到如下目录内容:

48621e5be9df6daa93f2da7094dff1dc.png

fb8cb947b8df1ef69a4204767210a52b.png

°2.3 nRF command line tools安装

下载完SDK压缩包,再下载 “nRF-Command-Line-Tools_10_11_1_Installer.exe”, 即nRF command line tools,nRFcommand line tools包括Jlink驱动以及Nordic自己开发的一些命令行工具,如nrfjprog,nrfutil以及mergehex等,这些工具对开发非常有帮助。nRF command line tools下载链接为: https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools/Download#infotabs

5582686167a0d8825a20515aaea85d6e.png

3、NCS SDK开发环境说明

NCS支持的工具链有2套:

  • 一套是SEGGER Embedded Studio,简称SES,图形化的IDE

  • 一套是命令行方式(沿用了Zephyr工具链),其实就是GCC工具链

两套工具链选其一即可,推荐大家使用SES,因为它的debug功能非常好使。(GCC工具链的debug功能使用起来就比较复杂了)。

下面将分别对SES和命令行方式两种开发环境进行介绍,大家可以参考其中一种或者两种结合一起使用。

°3.1 SES开发环境搭建

通过百度网盘或者Toolchain Manager安装的SDK, 必须进入如下目录: install folder\toolchain 并双击SEGGER Embedded Studio.cmd以打开SES,而不能在其他地方直接打开SES,如下所示

9cb2bbc64a55a64db4f7fbaf29912060.png

SES启动成功后,进入Tools->Options,我们需要先对IDE进行配置。

8e8feaea0742f81e94ff5c45e7728fa3.png

如下两种方式的配置有可能都能工作起来,选择一种适合你的(一般来说,推荐配置二,这个配置方式可以适用任何电脑环境)。

°配置一:

d81edfc34bac0b47902e9ab5d72a61dd.png

° 配置二:

0ce44777e4877dd8e13cc66942ffb837.png

配置好了之后,我们就可以打开一个工程进行编译了。进入File->Open nRF Connect SDK Project。

2e1062ed7e0aaa9ac4413d1c26f1c622.png

58f16a59492f4f0ce0aded4d62ae8822.png

在NCS中,项目是通过CMakeLists.txt表示的,如下:

2203f8eff0c8a46d273ba216f59be76f.png

而开发板一般是在如下目录的:

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值