本文将详述Nordic nRF51系列(包括nRF51822/nRF51802/nRF51422等)和nRF52系列(包括nRF52832/nRF52810/nRF52840)开发环境搭建。

1. 强制安装项

如下工具必须安装,否则无法开发Nordic nRF51/52产品

  • 安装IDE。Nordic nRF51/52支持Keil,GCC,IAR和SES(Segger Embedded Studio)四种IDE,大家随便选择其中一种安装即可。

    • Keil。大家自行下载安装,这里不再赘述。
    • IAR。大家自行下载安装,这里不再赘述。
    • SES(推荐)。SES跟Keil非常像,是Segger公司为Nordic芯片量身打造的,对Nordic用户来说,永久免费。SES支持Windows/MacOS/Linux三种平台,下载链接为:https://www.segger.com/downloads/embedded-studio。下载成功后,你将得到“Setup_EmbeddedStudio_v330_win_x64.exe”之类的安装包(Windows 64bit版本),成功安装后,SES软件界面如下所示:

如果你是硬件工程师,IDE不是必须安装的,因为Nordic SDK所有例子都有已经编译好的hex文件供你使用。

下完之后,你将得到 “nRF5_SDK_15.0.0_a53641a.zip”之类的压缩包,解压缩该压缩包,SDK即安装完成,如下所示:

  • 安装与本SDK版本配套的ARM CMSIS软件包和IDE插件如果你是Keil5用户,一般可以通过如下界面,把相应的CMSIS和Device family pack安装好

由于某些原因,很多用户在上述界面无法安装,因此可以将CMSIS和IDE插件从网上下载下来,单独安装。

ARM CMSIS安装包下载地址:https://github.com/ARM-software/CMSIS/releases。从如下界面选择你需要的CMSIS版本。那具体选择哪个CMSIS版本呢?你可以随便打开SDK中一个例子,Keil或者其他IDE就会报错告诉你缺少那个版本的CMSIS(一般来说,缺少的都是CMSIS4.5.0),你再把它下下来即可。

ARM CMSIS4.5.0 Windows/Keil5安装界面如下所示:

所有IDE插件都可以到如下网址下载:https://www.nordicsemi.com/eng/Products/nRF52840#Downloads。根据自己的IDE,选择相应的插件:

注:上述所有插件都有2个版本,2个版本的功能是一模一样的,只是版权会有点不同。

以Keil5插件为例,Keil5的插件是Device family pack(其实上文已经提到它了),其安装界面如下所示(安装过程中有可能会报错,不要管它!)

以Windows系统为例,下载上图中的红圈中的win32版本,得到“nRF5x-Command-Line-Tools_9_7_2_Installer.exe”之类的可执行文件,双击安装,界面如下所示:

安装过程中,不要去更改默认选项,直接按照默认选项去安装即可。不过如下界面,一定要选择“select all”

2. 推荐安装项

  • 安卓版nRF connect或者iOSnRF connect。nRF connect是Nordic开发的一个通用性BLE app,以支持BLE扫描,BLE连接,BLE广播,BLE监视,BLE服务发现,BLE连接后交互等功能。iOS版nRF connect请到苹果app store下载,搜索“nRF”即可以找到。安卓版nRF connect是放在Google play里面的,如果你无法访问Google play,那么可以到Nordic Github官网上下载,下载链接为:https://github.com/NordicSemiconductor/Android-nRF-Connect/releases

安装成功后,你将看到如下所示的nRF connect:

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

确切地说,桌面版nRF connect更像一个容器,它可以装载各种不同的应用,前面提到的手机版nRF connect只是桌面版nRF connect的一个“Bluetooth Low Energy”应用。点击“Add/remove apps”,可以安装或者卸载Nordic其他的应用。另外,你也可以基于桌面版nRF connect(使用HTML5或者Javascript)来开发自己的应用,比如量产测试程序。

注:桌面版nRF connect前身是Master Control Panel(MCP,Nordic现已正式停止对MCP的支持,MCP所有功能都可以通过桌面版nRF connect来取代和实现。

3. 可选安装项

  • 安卓版或者iOSnRF toolboxnRF toolbox是Nordic开发的一系列BLE应用集,包括心率应用,蓝牙透传应用,DFU等。iOS版nRF toolbox请到苹果app store下载,搜索“nRF”即可以找到。安卓版nRF toolbox是放在Google play里面的,如果你无法访问Google play,那么可以到Nordic Github官网上下载,下载链接为:https://github.com/NordicSemiconductor/Android-nRF-Toolbox/releases。nRF Toolbox代码(包括iOS版和安卓版)是开源的,可以直接到上述Nordic Github上下载。

安装成功后,你将看到如下所示的nRF toolbox:

  • nRFgo studio。图形化的Flash烧写工具,以及nRF24系列开发工具,而且还集成有DTM,DFU升级等功能,不过随着桌面版nRF connect功能越来越多,nRFgo studio越来越被边缘化,因为大部分nRFgo studio的功能都可以被桌面版nRF connect取代,比如Flash烧写,DFU等。nRFgo studio下载链接为:https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRFgo-Studio/(language)/eng-GB#Downloads。安装nRFgo studio的时候,请按照默认选项来安装(不要去更改默认的安装目录!),安装成功后,界面如下所示:

 

注:nRFgo studio安装包也自带Jlink驱动安装包,如果你前面通过nRF5x command line tools已经把jlink驱动装好了,那么安装nRFgo studio的时候就不要再安装Jlink驱动了。

  • nrfjprog(必选)。nrfjprog用于代码擦除烧写读取,芯片复位,存储器访问等,其使用界面(Windows命令行或者Linux命令行或者MacOS命令行)如下所示:

由于在安装nRF5x command line tools的时候,系统就会自动安装nrfjprog,因此你不需要再额外安装nrfjprog。对于Windows系统,nrfjprog将位于如下目录“C:\Program Files (x86)\Nordic Semiconductor\nrf5x\bin” 你只需在Windows path变量(环境变量)中包含此目录,就可以直接在Windows‘Command Prompt’中执行nrfjprog命令了。

nrfjprog详细说明请参考:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fnrf5x_command_line_tools%2Fnrf5x_nrfjprogexe.html&cp=5_1_3

  • Sniffer。Sniffer用于抓取空中蓝牙包以debug通信问题,sniffer包括硬件和软件两部分,硬件就是一个nRF51的dongle或者PCA10028开发板或者PCA10040开发板(将来还会支持PCA10056开发板以及PCA10059 dongle),硬件连接图如下所示:

软件就是Wireshark,界面如下所示:

Sniffer详细使用说明请参考:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fsniffer%2Fsniffer_intro.html&cp=5_4

  • 低版本(0.x.xnrfutil。低版本nrfutil主要用于明文OTA/DFU时生成手机端新固件zip包,安装nRFgo studio的时候,会自动安装nrfutil,nrfutil所在目录为“C:\Program Files (x86)\Nordic Semiconductor\nRFgo Studio”。 你只需在Windows path变量(环境变量)中包含此目录,就可以直接在Windows‘Command Prompt’中执行nrfutil命令了

低版本nrfutil工作界面如下所示:

  • 高版本nrfutil>1.5.0。高版本nrfutil用于签名OTA/DFU时生成手机端新固件 zip包,以及生成公私钥对,生成settings page,执行DFU操作等,高版本nrfutil和低版本nrfutil是两个完全不兼容的软件,使用的时候,一定要“二选一”,一般来说只有在早期的SDK9/10/11进行明文DFU的时候,才会用到低版本nrfutil,除此之外,都是要使用高版本nrfutil的。

高版本nrfutil安装说明及使用说明请参考链接:

http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fnrfutil%2Fnrfutil_intro.html&cp=5_5

可通过“nrfutil version”来得知当前nrfutil是高版本还是低版本,如下所示:

低版本nrfutil版本号一般为0.x.x,而高版本nrfutil版本号大于1.5.0。如果发现nrfutil版本弄错了,请通过修改Windows path变量(环境变量)来指向正确的nrfutil版本。

 

Nordic nRF51/nRF52开发环境搭建的更多相关文章

  1. Nordic nRF51/nRF52开发流程说明

    Nordic nRF51系列包括nRF51822/nRF51422/nRF51802等芯片,nRF52系列包括nRF52832/nRF52840/nRF52810等芯片,硬件工程师可以按照如下流程去评 ...

  2. ubuntu下Nodic开发环境搭建

    ubuntu下Nodic开发环境搭建 1.编译环境 ubuntu可直接装gcc编译环境 sudo apt install gcc-arm-none-eabi 也可以下载可执行文件download 2. ...

  3. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  4. IntelliJ IDEA安装及jsp开发环境搭建

    一.前言 现在.net国内市场不怎么好,公司整个.net组技术转型,就个人来说还是更喜欢.net,毕竟不是什么公司都像微软一样财大气粗开发出VS这样的宇宙级IDE供开发者使用,双击sln即可打开项目, ...

  5. Qt for Android开发环境搭建及测试过程记录

    最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...

  6. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  7. TODO:小程序开发环境搭建

    TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...

  8. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  9. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

随机推荐

  1. Linux 开发环境搭建

    本文多参考自网上资料,在此多谢这些资料的作者的辛勤劳动! 另外,本文所用 Linux 版本为 CentOS 7.1. 终端配置 安装及配置 Zsh 在默认情况下,Linux 下的终端是 bash,但其 ...

  2. 取消选中单选框radio的三种方式

    作者: 铁锚 日期: 2013年12月21日 本文提供了三种取消选中radio的方式,代码示例如下: 本文依赖于jQuery,其中第一种,第二种方式是使用jQuery实现的,第三种方式是基于JS和DO ...

  3. C++中不能被重载的运算符介绍

    C/C++ 里大多数运算符都可以在 C++ 中被重载. C 的运算符中只有 . 和 ?:(以及 sizeof,技术上可以看作一个运算符)不可以被重载.C++ 增加了一些自己的运算符,除了 :: 和 . ...

  4. 超过1个G免费资源,16套质量超高风格多样的移动UIKIT

    编者按:前两天发了一篇价值4000元的收费可商用Web 模版,今天来一波同样高质量的的App UI KIT,包括音乐/餐厅/运动等等类型的App,无论是下载来学习还是商用(对的可商用!)都不容错过,@ ...

  5. 对FMDB的封装JRDB

    在自己开发中,每次用到数据库都会纠结是使用CoreData还是FMDB.CoreData虽然Api简单,但是调用栈非常复杂,要初始化一个Context需要至少20行代码.显然,对于这种这么恶心的情况, ...

  6. C/C++语言中NULL、'\0’和0的区别

    注:本文参考了http://blog.csdn.net/mylinx/article/details/6873253及书籍<征服C指针>([日]前桥和弥著). NULL.'\0'和0的值是 ...

  7. studio grandle渠道打包

    1. Mainfest 文件中添加一个键值对,这里的value 我定义为  "UMENG_CHANNEL_VALUE"(当然实际应用中可以根据自己的需要命名),后面打包的时候会对这 ...

  8. leetcode之旅(7)-Move Zeroes

    Move Zeroes 题目描述: Given an array nums, write a function to move all 0's to the end of it while maint ...

  9. javascript语言扩展:可迭代对象(4)

    js 1.7中还包含一个数组推导(array comprehension)的特性,如果不在最后介绍它好像显得不怎么完整. 数组推导其实很简单: let a = [x*x for(x in range( ...

  10. 恶补web之八:jQuery(3)

    jquery和其他js框架.jQuery使用$作为jQuery的简写,但是还有很多js框架,比如: MooTools,Backbone,Sammy,Cappuccino,Knockout,JavaSc ...