NRF52840 NRF52833 nRF5 SDK 开发

NRF52840 nRF5 SDK开发

  • 1 . nRF5 SDK简介
  • 2 . SDK目录介绍
  • 3. 如何基于SDK新建工程
  • 4. 相关开发工具介绍

1 . nRF5 SDK简介

  nRF5 SDK是Nordic NRF51 NRF52系列的固件开发SDK,提供了这两个系列MCU开发基本的外设驱动,当前最新版本为nRF5_SDK_17.1.0_ddde560,后续应该也不会有太大升级和改动,因为后续Nordic将主推另一套新的nrf connect ,新的SDK基于Zephyr RTOS,上手成本更高,搞得更复杂,对于旧的NRF51 NRF52系列完全没有必要使用这套新的SDK。
nRF5 SDK官网下载地址:nRF5 SDK

2 . SDK目录介绍

NRF52840 NRF52833 nRF5 SDK 开发_第1张图片
解压完的SDK目录如上图所示,下面简单介绍下每个目录里放的内容

  • components: ble文件夹里的内容主要与BLE协议栈等相关,libraries放的是一些芯片库等文件,softdevice放的是nordic无线协议栈的hex档和相关头文件,nordic无线协议栈像BLE部分是不开放的,是直接烧录hex到Flash中的,用户无法随意更改。
    NRF52840 NRF52833 nRF5 SDK 开发_第2张图片
  • config: 主要需要使用其中的sdk_config.h文件,这里是SDK配置的集合,通过宏定义来配置一些外设功能的使能和相关参数设定,很多时候添加了C文件和头文件还报错,可能是这里相关使能没有打开,需要特别关注
  • documentation: 里面有index.html,点击可以链接到官方的说明文档,可以查看关于SDK和softdevice的一些说明和介绍,有些不太清楚的地方可以在这里搜索下
  • examples: 这里是一些常用的例程工程,都可以直接打开工程编译,需要安装Keil V5或SEGGER Embedded Studio(SES),新手上手都可以先使用这些例程工程来了解SDK
    NRF52840 NRF52833 nRF5 SDK 开发_第3张图片
  • external和external tools: 一些第三方的驱动文件和工具,随便看看
  • integration和modules:底层驱动文件,有nrf和nrfx两个开头的,搞得很乱,应该有一些兼容老版本SDK的缘由,一般使用nrf开头的函数。

3. 如何基于SDK新建工程

  前期开发可以先使用例程工程来开发,但后续可以基于SDK新建工程来开发,为什么需要新建工程来开发,SDK中有很多文件是当前工程所不需要的,所以需要精简,当然也可以选择在当前例程工程中一步一步来删除多余的文件,但何不如新建个空工程来添加需要的文件,这样对于了解每个驱动文件所在的地方,进一步熟悉工程的完整架构,这里基于Keil V5来新建一个基本的工程,Keil所需要的pack下载地址:https://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/

    1. 从nRF5 SDK中复制所需要的文件,一般复制如下目录即可,这些目录下面也可以再次进行精简的,新建一个Nordic文件夹,把下述文件夹都复制到Nordic文件夹下,之后新建工程都可以直接复制这个Nordic文件夹进来就行。
      NRF52840 NRF52833 nRF5 SDK 开发_第4张图片
    1. 新建一个NRF52840工程这里就跳过,选择Device和添加启动文件即可,下一步添加源文件和头文件到空工程中,新建nRF_Drivers、nRF_Libraries、nRF_SDKConfig等目录,如下图所示
      NRF52840 NRF52833 nRF5 SDK 开发_第5张图片
      nRF_Drivers: 主要放置Nordic\integration\nrfx\legacy和Nordic\modules\nrfx\drivers\src里的c文件,可以按需添加
      nRF_Libraries: 放置Nordic\components\libraries里的c文件

  添加完c文件后需添加头文件,头文件的分布特别散,需要到components、external、integration、modules目录下仔细查找相关联的头文件,而且一层一层特别多,编译的时候可以根据相应的Error去找有那些头文件没有被包含
NRF52840 NRF52833 nRF5 SDK 开发_第6张图片

    1. 工程设置,在C/C++、 Asm 的Define栏中添加系统级的宏定义
      NRF52840 NRF52833 nRF5 SDK 开发_第7张图片
      如果出现Undefined symbol sdh_req_observers$$Base等警告,可以在Linker的Misc controls中加入–diag_suppress 6330来消除
      NRF52840 NRF52833 nRF5 SDK 开发_第8张图片
      Sample文件夹中对应的MCU型号
硬件标识 MCU
PCA10040 NRF52832
PCA10040e NRF52810
PCA10056 NRF52840
PCA10056e NRF52811
PCA10100 NRF52833
PCA10100e NRF52820

4. 相关开发工具介绍

  1. nRF Connect for Desktop: 集成了一些图形化的工具,如Programmer可以烧录程序,Bluetooth Low Energy对于BLE开发很有用,下载地址:https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-desktop/Download
  2. nRF Command Line Tools:命令行工具,可以进行烧录和读取(配合JLink),合并softdevice hex和app hex档等功能,也可以基于当中的nrfjprog DLL开发自己的烧录工具,下载地址:https://www.nordicsemi.com/Products/Development-tools/nRF-Command-Line-Tools/Download?lang=en#infotabs

你可能感兴趣的:(Nordic,NRF52,单片机,mcu,arm开发,物联网)