zoukankan      html  css  js  c++  java
  • Nordic nRF51/nRF52开发环境搭建

    本文将详述Nordic nRF51系列(包括nRF51822/nRF51802/nRF51422等)和nRF52系列(包括nRF52832/nRF52810/nRF52840)开发环境搭建。如果你英文比较好的话,建议直接阅读Nordic官方的getting started教程,其中Segger embedded studio开发环境搭建请参考:

    https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_gsg_ses%2FUG%2Fgsg%2Fintro.html&cp=1_1_0

    Keil MDK开发环境搭建请参考:

    https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_gsg_keil%2FUG%2Fgsg%2Fintro.html&cp=1_1_1

    我下面的文章也是对上述两篇文章的总结和归纳。

    1. 强制安装项

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

    1.1 安装IDE

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

      • Keil (仅支持Windows平台) 。大家自行下载安装,这里不再赘述。
      • IAR (仅支持Windows平台)。大家自行下载安装,这里不再赘述。
      • SES强烈推荐,同时支持Windows,Mac和Linux)。SES跟Keil非常像,是Segger公司为Nordic芯片量身打造的,对Nordic用户来说,永久免费。另外Nordic后续的nRF91以及nRF53系列产品都会强力支持SES,所以强烈推荐使用SES来开发和调试Nordic产品。SES支持Windows/MacOS/Linux三种平台,下载链接为:https://www.segger.com/downloads/embedded-studio。下载成功后,你将得到“Setup_EmbeddedStudio_ARM_v410a_win_x64.exe”之类的安装包(ARM Windows 64bit 版本,版本号4.10),成功安装后,SES软件启动界面如下所示:

      

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

    1.2 安装nRF Command Line Tools (同时支持Win/Mac/Linux)

    nRF5x command line tools包括Jlink驱动以及Nordic自己开发的一些命令行工具,具体包括Jlink驱动,nrfjprog,nrfutil以及mergehex等。下载链接为:https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Command-Line-Tools/Download#infotabs,选择自己的平台以及需要的版本:

      

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

     

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

     

    1.3 安装nRF5 SDK

    nRF5 SDK就是一个压缩包,所以在Windows,MacOS以及Linux系统上都可以运行。SDK包含所有外设的驱动代码,大量的HAL库,丰富的应用例子,以及与本版本SDK配套的各种协议栈hex等。SDK下载链接为:https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK/Download#infotabsnRF52系列产品开发请选择最新版SDK,目前为SDK16.0.0。由于最新版SDK不支持nRF51系列产品,所以开发nRF51系列产品推荐使用SDK12.3.0. 下完之后,你将得到 “nRF5_SDK_15.2.0_9412b96.zip”之类的压缩包,解压缩该压缩包,SDK即安装完成。SDK16.0.0解压缩后界面如下所示:

     

     欲了解更多SDK知识,请参考:Nordic nRF5 SDK和softdevice介绍

    1.4 SDK插件安装

    下面按照SES,Keil5,Keil4,IAR和GCC等情形分别讲述SDK插件的安装。

    1.4.1 SES平台

    SES平台无需安装任何插件。如果要把老的Keil工程(SDK14.0之前的Keil项目)导入到SES中,需要安装一个package,如下:

     

    另外nRF5 SDK有一个非常重要的配置文件:sdk_config.h,这个文件的格式是按照CMSIS规范来写的,所以Keil可以原生态的支持这个文件格式,也就是说,Keil用户可以通过图形界面去更改sdk_config.h里面的内容,如下所示:

      

    SES用户可以添加如下脚本,以通过外部工具(CMSIS Configuration Wizard)来图形化解析sdk_config.h文件:

    打开SES,选择 File -> Open Studio Folder... -> External Tools Configuration,然后tools.xml文件将会打开,在 </tools>行之前插入如下文本 :

    <item name="Tool.CMSIS_Config_Wizard" wait="no">

        <menu>&amp;CMSIS Configuration Wizard</menu>

        <text>CMSIS Configuration Wizard</text>

        <tip>Open a configuration file in CMSIS Configuration Wizard</tip>

        <key>Ctrl+Y</key>

        <match>*config*.h</match>

        <message>CMSIS Config</message>

        <commands>

          java -jar &quot;$(CMSIS_CONFIG_TOOL)&quot; &quot;$(InputPath)&quot;

        </commands>

    </item>

     注意:由于CMSIS Configuration Wizard是一个Java应用程序,所以你必须先安装Java运行时环境(JRE)才能运行该工具

    然后你可以通过如下界面编辑sdk_config.h文件:

      

    1.4.2 Keil5/Windows平台

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

     

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

     

    Device family pack(又称nRF MDK)安装,nRF MDK下载链接为:https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-MDK/Download#infotabs,选择你的IDE和平台(Keil5选择pack哦,BSD license和Nordic license二选其一即可,推荐使用Nordic license(SDK16只能使用Nordic license))以及相应的device family pack版本(版本选择说明请见后文),如下:

        

    nRF MDK安装界面如下所示(安装过程中有可能会报错,不要管它!)

     

    这里要特别强调一下Device family pack版本的选择,不是说选择最新版本就好,而是要遵循你SDK例子里面Keil工程的提示,Keil提示你选择哪个版本,你就用那个版本(而不是选择最新的版本)。比如SDK16.0.0,提示你下载8.27.0版本,那你就下载8.27.0(8.27.1也是可以的,因为两者是兼容的,但是8.28及以后就不行)。注:你也可以直接打开如下界面去查看本版本SDK例子依赖的device family pack版本,如下所示:

     

    Nordic SDK原生态的例子都是开箱即用,直接就可以编译和运行的。如果你原生态的SDK例子都会编译报错的话,那么很有可能就是device family pack搞错了,或者可能是你安装了多个版本的device family pack,但安装的时候没有按照“低版本先装高版本后装”的顺序去装。此时建议你把所有已经安装好的device family pack都卸载了(卸载界面见下图),然后按照低版本先装高版本后装的顺序,把有关的device family pack都重装一遍,然后重新把Nordic原始SDK压缩包解压,此时再去编译,应该就不会有问题了。 

    1.4.3 Keil4/Windows平台

    Keil4只需安装SDK自带的如下插件即可:

     

    1.4.4 IAR/Windows平台

    IAR只需安装SDK自带的如下插件即可:

     

    SDK IAR例子默认都使用IAR7进行测试和开发的,由于IAR8和IAR7有一点点不兼容,使用IAR8直接编译某些带库的例子会报错,请参考SDK目录:nRF5_SDK_15.xdocumentation里面的release_notes.txt中提供的解决方案来解决IAR8编译报错问题。

    1.4.5 GCC平台

    GCC无需安装任何插件,需要注意的是编译器的版本以及一些环境变量的设置。另外GCC平台下也可以使用CMSIS Configuration Wizard工具来图形化配置sdk_config.h文件,命令为:make sdk_config。 注意:由于CMSIS Configuration Wizard是一个Java应用程序,所以你必须先安装Java运行时环境(JRE)才能运行该命令

      

    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只是桌面版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/releasesnRF Toolbox代码(包括iOS版和安卓版)是开源的,可以直接到上述Nordic Github上下载。安装成功后,你将看到如下所示的nRF toolbox:

      

    • nrfjprog(强制安装,同时支持Windows/MacOS/Linux平台)。nrfjprog是一个命令行工具,通过命令行的方式进行代码擦除烧写读取,芯片复位,存储器/寄存器访问等,其使用界面(Windows命令行或者Linux命令行或者MacOS命令行)如下所示:

      

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

      

     

    nrfjprog详细说明请直接参考help,命令nrfjprog –help,或者参考网上文档:https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_nrf5x_cltools%2FUG%2Fcltools%2Fnrf5x_nrfjprogexe.html&cp=6_1_3 

    • nrfutil(强制安装,同时支持Windows/MacOS/Linux平台)。nrfutil有两个不兼容的版本:传统版(版本号0.5.2)和现代版(版本号大于1.5.0)。nrfutil版本是跟SDK版本紧密配合的,不同的SDK版本要求使用不同版本的nrfutil。最新版本的nrfutil支持SDK12.0之后的所有SDK。
      • SDK12.0及以后版本SDK,请使用现代版nrfutil。现代版nrfutil支持的功能比较多,包括生成DFU用的zip包,生成settings page,生成密钥,执行DFU操作等,SDK12.0之后都必须使用现代版nrfutil。现代版nrfutil又包括很多版本,有些老版本的现代版nrfutil跟最新的SDK也是不兼容的,所以务必参考SDK中BootLoader例程的说明文档,选择正确版本的nrfutil。现代版nrfutil是通过Python来安装和使用的,安装命令:pip install nrfutil(MacOS安装命令为:pip install --ignore-installed six nrfutil)。另外Windows系统安装过程中有可能会缺少MSVC,请下载 Visual Studio 2013 或者Visual Studio 2015
      • SDK11.0及更早版本SDK,请使用传统版nrfutil,即0.5.2,主要用于明文OTA/DFU时生成手机端新固件zip包。安装nRFgo studio的时候,会自动安装传统版nrfutil,传统版nrfutil所在目录为“C:Program Files (x86)Nordic Semiconductor RFgo Studio”。 你只需在Windows path变量(环境变量)中包含此目录,就可以直接在Windows CMD中执行nrfutil命令了

       

      • 记住,传统版nrfutil和现代版nrfutil是两个完全不兼容的软件,使用的时候一定要二选其一。一般来说只有在早期的SDK9/10/11进行明文DFU的时候,才会用到传统版nrfutil,除此之外,都要使用现代版nrfutil的。可通过“nrfutil version”来得知当前nrfutil的版本号,如果发现nrfutil版本弄错了,请通过修改Windows path变量(环境变量)来指向正确的nrfutil版本。

     

    nrfutil详细使用说明请参考:https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_nrfutil%2FUG%2Fnrfutil%2Fnrfutil_intro.html&cp=6_5 

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

     

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

    • nRF Sniffer。nRF Sniffer用于抓取空中蓝牙包以debug通信问题,nRF sniffer包括硬件和软件两部分,硬件可以选择PCA10040开发板,PCA10056开发板,PCA10059 dongle,PCA10028开发板等,硬件连接图如下所示:

     

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

      

    nRF Sniffer详细使用说明请参考:https://infocenter.nordicsemi.com/pdf/nRF_Sniffer_UG_v2.1.pdf?cp=6_4_0

  • 相关阅读:
    什么是webview
    juqery.fn.extend和jquery.extend
    LeetCode
    5. Longest Palindromic Substring
    42. Trapping Rain Water
    11. Container With Most Water
    621. Task Scheduler
    49. Group Anagrams
    739. Daily Temperatures
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/iini/p/9043565.html
Copyright © 2011-2022 走看看