【轉】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二選其一即可,SDK17推薦使用BSD license,SDK16推薦使用Nordic license)以及相應的版本(版本選擇說明請見后文),如下:

    

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版本,如下所示:

 

重要提示:請不要讓Keil自動下載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.x\documentation里面的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\nrf5x\bin” ,你只需在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\nRFgo 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

 

【轉】https://www.cnblogs.com/iini/p/9043565.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM