Nordic nRF5 SDK和softdevice介绍_nordic softdevice

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

除了nRF5 SDK,Nordic还针对某些特殊应用领域推出了一些专门的SDK,这些SDK和nRF5 SDK采用了相同的软件架构,相同的驱动和库,以及相同的编码风格。对开发者来说,只要熟悉了nRF5 SDK,这些特殊SDK上手也会比较快。Nordic提供了如下种类的特殊SDK:

nRF5 SDK for Mesh,用于开发蓝牙Mesh应用
nRF5 SDK for Thread and ZigBee,用于开发ZigBee应用或者Thread应用
nRF5 SDK HK,用于开发苹果homekit应用
Thingy SDK,用于开发Nordic Thingy传感器套件
nRFready Smart Remote 3,用于开发蓝牙语音电视机遥控器
nRFready Desktop 2,用于开发蓝牙或者2.4G的无线键盘和鼠标
如果你的应用是上面6种垂直应用,那么建议你选择上面的SDK,否则一律推荐使用nRF5 SDK。下面将对nRF5 SDK进行阐述。

  1. nRF5 SDK和Softdevice概述

1) nRF5 SDK是Nordic nRF5系列产品软件开发环境,Softdevice是Nordic蓝牙协议栈的名称,为了方便用户的使用,每一个版本的SDK都包含了该版本支持的所有softdevice,请到SDK根目录\components\softdevice目录查看具体支持的softdevice版本。

2)nRF5 SDK版本编号,nRF51 SDK v9.0.0,nRF51 SDK v10.0.0,nRF5 SDK v11.0.0, nRF5 SDK v12.0.0 …目前最新版是nRF5 SDK v15.0.0。之前nRF51和nRF52的SDK是分开的,现在Nordic把nRF51和nRF52的SDK统一到一个版本,即nRF5 SDK。这里顺带提一下,如果你需要使用多个版本nRF5 SDK,那么就会同时用到多个device family pack,请按照低版本先装高版本后装的顺序来安装(如果SDK例程报device family pack错误,请先完全卸载之前的device family pack,再按照由低到高的顺序重装一遍所有的pack)

3) Nordic一般推荐使用最新版的SDK,因为其功能最强大,考虑最周全,可靠性最好。比如nRF51系列,推荐使用SDK12.3.0(12.3.0已经是nRF51能支持的最高版本SDK了),nRF52系列推荐使用SDK15.0.0(15.0.0是目前的最新版,后续还会有更新)。但是最新版的SDK占用的Flash资源和RAM资源比较多,而且新版SDK为了兼容各种情况设计得也比较复杂。为了节省资源或者让应用看起来简洁,客户也可以使用某些老版本的SDK。比如nRF51,如果应用只是BLE从设备(BLE peripheral角色或者slave角色),那么也可以使用SDK9或者SDK10。再比如nRF52832,如果只需要明文DFU不需要签名DFU,那么可以使用SDK11。当然对于老用户来说,要不要升级SDK,一个原则:测试为王,只要你的应用测试下来没有任何问题,你的SDK就是稳定和可靠的,不需要升级SDK。当然,如果你要加入新SDK的功能和特性,那么就需要升级SDK了。请打开SDK根目录\documentation\release_notes.txt以查看最新版SDK的新功能和新特性。

4) Softdevice命名规则一。Softdevice包括两种底层协议栈:BLE和ANT,BLE包括两种角色:central和peripheral,因此需要给这些不同的协议栈类型命名。协议栈命名格式为Sxyz,其中

x – 表示协议栈的类型,1表示BLE协议栈,2表示ANT协议栈,3表示同时支持BLE和ANT
y – 表示BLE角色,1表示从设备,2表示主设备,3表示同时支持主设备和从设备
z – 表示芯片类型,0表示nRF51系列,2表示nRF52系列
比如S110,表示只支持从设备模式的nRF51 BLE协议栈
比如S130,表示既支持从设备模式又支持主设备模式的nRF51 BLE协议栈
比如S132,表示既支持从设备模式又支持主设备模式的nRF52 BLE协议栈
比如S212,表示nRF52只支持ANT协议栈
比如S332,表示nRF52既支持BLE协议栈又支持ANT协议栈,而且BLE协议栈既支持从设备模式又支持主设备模式
5)Softdevice命名规则二。大体上跟命名规则1相同,但是协议栈编号最后2位跟芯片型号一样,比如S140,代表这个协议栈专门用于nRF52840。
6)Softdevice版本编号,从1.0.0开始编号,然后2.0.0,3.0.0,…S110最新版本是8.0.0,S130最新版本是2.0.1,S132最新版本是6.0.0,S112最新版本是6.0.0,S140最新版本是6.0.0(S132/S112/S140版本后续还会升级)。
7)SDK和softdevice兼容性问题。不要查看兼容性表格,直接打开SDK,直接使用SDK里面的softdevice,肯定没有问题。比如S132 在SDK如下文件夹中:
在这里插入图片描述
8)芯片版本和SDK版本兼容性问题。如果你使用的是Nordic最新版芯片,就没有这个所谓的兼容性问题,直接下载最新版本的SDK即可。如果你不幸还有Nordic老版本芯片库存,那么只能使用某些老版本的SDK,具体请参考兼容性表格。之所以会有这个兼容性问题,是因为新版本SDK是为新版本芯片服务的,也就是说新版本SDK默认芯片以前的bug已经修复了,所以新版本SDK不会包含老版本芯片的workaround(补丁),导致老版本芯片运行在最新版本SDK上会有一些问题。

  1. nRF5 SDK目录结构解读
    欲下载nRF5 SDK,请参考“Nordic官网/Infocenter/Devzone/Github简介”,或者直接到这里下载:http://developer.nordicsemi.com/nRF5_SDK/。

以SDK12.3.0为例,nRF5 SDK目录结构如下所示:
在这里插入图片描述

-components. 该目录包含了Nordic自己开发的SDK源代码,切记:在产品开发过程中,不要去修改该目录下的任何文件!components目录结构如下所示:
在这里插入图片描述

这里特别说明一下,每个版本的SDK都有与之配套的softdevice,他们都位于\components\softdevice目录下。非此目录下的softdevice版本需要经过移植才能用(有的版本连移植都不能用)。所以一定要用\components\softdevice目录下的softdevice,而不要使用官网其他地方下载的softdevice。\components\softdevice目录结构如下所示:

在这里插入图片描述

-examples. 该目录包含了丰富的应用示例,不仅包含BLE应用示例,也包含每个外设如何使用的示例,还包含bootloader示例代码。一般来说,开发过程中碰到的大部分问题,都可以在这个目录找到示例。examples目录结构如下所示:
在这里插入图片描述

客户用得最多的两个目录是:\ble_peripheral和\peripheral。\ble_peripheral目录包含了BLE作为从模式的应用示例,而\peripheral包含了所有外设应用示例。\ble_peripheral目录结构如下所示:
在这里插入图片描述

\peripheral目录结构如下所示:
在这里插入图片描述

在Nordic SDK中,经常会碰到deprecated和experimental目录,他们的作用如下:

\deprecated,该目录的内容已被舍弃,并有新版本来替代他们。但为了兼容老产品,SDK还是将其保留下来,比如如下目录:components\drivers_nrf\twi_master\deprecated,如果你是新用户,切记不要使用\deprecated目录下的API。

\experimental 。SDK不断的有new feature/new example出现,有些new feature/new example推出来不久,还没有经过市场大规模验证,对此Nordic会在这些new feature/new example前面加一个前缀:experimental,比如:examples\ble_peripheral\experimental_ble_app_buttonless_dfu,碰到experimental一定要小心,里面有可能有bug,希望用户自己进行充分测试,以保证产品的质量。

  1. nRF5 SDK和softdevice帮助文档
    1)不管是SDK API还是softdevice自有 API,建议直接查看SDK自带的头文件说明,里面有该API详细说明和使用注意事项。比如softdevice_enable() API相关说明在头文件softdevice_handler.h中:
    在这里插入图片描述

再比如sd_ble_gatts_hvx API说明文档在头文件ble_gatts.h中:
在这里插入图片描述

再比如ble_advertising_init API说明文档在ble_advertising.h中:
在这里插入图片描述

2) Softdevice还有一份专门的spec,来阐述softdevice工作原理,资源占用情况,性能参数,使用注意事项等,建议大家一定要阅读该份spec。

S110 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.softdevices51%2Fdita%2Fsoftdevices%2Fs110%2Fs110.html&cp=3_7_0
S130 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s130.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=3_7_2_0
S132 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s132.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=2_3_1_0
S112 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s112.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=2_3_0_0
S140 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s140.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=2_3_2_0
3) SDK还有在线帮助文档和离线帮助文档,两者一模一样,离线帮助文档就是通过在线帮助文档生成的,以方便网络不好的用户使用。你可以根据自己的情况选择其中一份帮助文档即可。离线版帮助文档可以到这里下载:http://developer.nordicsemi.com/nRF5_SDK/。

在线版帮助文档链接为:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk%2Fdita%2Fsdk%2Fnrf5_sdk.html&cp=4_0。
在这里插入图片描述

展开帮助文档左边的目录,你会发现:帮助文档目录层级跟SDK目录层级是一一对应的。以SDK12.2.0为例,SDK帮助文档的目录层级与SDK自身的目录层级一一对应。
在这里插入图片描述
在这里插入图片描述

因此对SDK有任何疑问,可以直接去查对应的帮助文档说明,比如如果你想了解nRF5_SDK_12.2.0_f012efa\examples\peripheral\spi这个例子是干什么的,直接找到帮助文档对应的条目:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v12.2.0%2Fspi_master_example.html&cp=4_0_1_4_5_31,你就会明白这是一个告诉你如何使用SPI master的例子。再比如你想知道nRF5_SDK_12.2.0_f012efa\examples\dtm\direct_test_mode这个例子是不是讲如何进行DTM测试的,找到帮助文档相关条目说明:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v12.2.0%2Fble_sdk_app_dtm_serial.html&cp=4_0_1_4_4,你就会知道自己的猜测是对的。

  1. 选择一个SDK example以开始你的开发之旅
    Nordic nRF5 SDK包含了丰富的应用实例,一般来说,我们的开发都是基于其中某一个例子来开始的。所有example都包含在SDK根目录\examples目录下,

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值