本文将详述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. android ndk编译项目(android-ndk-16r1)

    由于采用android-ndk-16r1版本的ndk来编译 编译的环境之类在这里省略,注意是最后编译的命令如下 Administrator@WIN-AF6P80LVIJ0 ~ $ cd $ANDROI ...

  2. Android SDK工具(谷歌提供的16个工具)简介

    Android SDK包含了许多可以帮助你开发Android平台应用的工具.这些工具分为两类:一是SDK工具:而是平台工具.SDK工具独立于平台,任何开发Android应用的平台都需要配置.平台工具是 ...

  3. Vim/Vi实用技巧(第二版)

    Vim/Vi实用技巧 1.导入文件 :r [文件名] #导入到当前编辑的文件中 如 :r /etc/inittab 文件上部为/etc/services文件,下部为/etc/inittab文件 2.执 ...

  4. Leetcode_203_Remove Linked List Elements

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45868027 Remove all elements fr ...

  5. Android绘图机制(四)——使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美

    Android绘图机制(四)--使用HelloCharts开源框架搭建一系列炫酷图表,柱形图,折线图,饼状图和动画特效,抽丝剥茧带你认识图表之美 这里为什么不继续把自定义View写下去呢,因为最近项目 ...

  6. android的服务分类-andrioid学习之旅(94)

    摘自韩国棒子的书,android框架摘要 android服务类型分类,如下图: 对于本地服务,有两种类型,一中是绑定进行数据交流,一种是不绑定的,生命周期如下图:

  7. LeetCode(65)-Power of Four

    题目: Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example ...

  8. 译文:ovs+dpdk中的“vHost User NUMA感知”特性

    本文描述了"vHost User NUMA感知"的概念,该特性的测试表现,以及该特性为ovs+dpdk带来的性能提升.本文的目标受众是那些希望了解ovs+dpdk底层细节的人,如果 ...

  9. 织云 Metis:看腾讯怎么做智能运维

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作为企业智能运维门户,业界早已关注织云的智能运维体系.我们很荣幸地宣布织云 Metis 智能运维体系正式发布.自此,织云家族已发布:织云企业 ...

  10. pandas数据处理基础——筛选指定行或者指定列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构). 本文为了方便理解会与excel或者sql操作行或列来进行联想类比 ...