玩 nRF52832 - PCA10040 - S132 DK開發板

動機:要如何在 nRF52832 - PCA10040 - S132 DK開發板(如下圖)上安裝 SDK 開發環境 及 燒寫 blinky(點亮LED1~LED4) 範例呢?!

準備環境
1.Windows10筆電(安裝 VirtualBox 5.6.2 + 架設 Ubuntu 17.10 虛擬機)
2.MacBook筆電
3.nRF52832 - S132 DK開發板(需連接USB數據線)

實作步驟
一、Windows10筆電
1.依據 參攷1. 安裝 J-Link,下載 J-Link Software and Documentation pack for Linux, DEB Installer, 64-bithttps://www.segger.com/downloads/jlink/JLink_Linux_V630b_x86_64.deb )
指令如下
sudo dpkg -i JLink_Linux_V630b_x86_64.deb

或直接點按上述.deb檔案執行之,如下圖


2.安裝 GNU ARM Embedded Toolchain,下載  https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2?revision=375265d4-e9b5-41c8-bf23-56cbe927e156?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,7-2017-q4-major
並解壓縮至 /home/user/opt/gcc-arm-none-eabi-7-2017-q4-major 目錄中


輸入指令安裝,如下
$ sudo su -
# add-apt-repository ppa:team-gcc-arm-embedded/ppa
# apt-get update
# apt-get install gcc-arm-embedded
測試如下
$ arm-none-eabi-gcc --version

3.下載 nRF5 SDKhttps://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v14.x.x/nRF5_SDK_14.2.0_17b948a.zip 及 https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v14.x.x/nRF5_SDK_14.2.0_offline_doc.zip ) 並解壓縮至 /home/user/opt/nRF5_SDK_14.2.0_17b948a 目錄

修改 Makefile 設定
# nano /home/user/opt/nRF5_SDK_14.2.0_17b948a/components/toolchain/gcc/Makefile.posix
如下圖


二、MacBook筆電
( 步驟有三,如下:
  • Getting the development tools installed
  • Getting and updating the SDK
  • Building and installing an example project )
1.安裝 JLink,下載 ( https://www.segger.com/downloads/jlink/JLink_MacOSX_V630c.pkg ) 並執行...

2.安裝 GNU ARM Embedded Toolchain,依據 參攷2. 指示如下
(1)安裝 GCC
$ brew tap PX4/homebrew-px4
$ brew update
$ brew install gcc-arm-none-eabi

(2)下載 S132 nRF52 SoftDevice,網址
https://www.nordicsemi.com/eng/nordic/download_resource/58989/13/20550758/116068 並解壓縮至 /Users/user/opt/s132_nrf52_5.1.0/ 目錄

(3)下載 nRF5x Command Line Tools,網址  https://www.nordicsemi.com/eng/nordic/download_resource/58855/19/28622809/99977 並解壓縮至 /Users/user/opt/nRF5x-Command-Line-Tools_9_7_2_OSX/ 目錄,並設定 Symbolic link 如下
$ ln -fs /Users/user/opt/nRF5x-Command-Line-Tools_9_7_2_OSX/nrfjprog/nrfjprog /usr/local/bin/nrfjprog
$ ln -fs /Users/user/opt/nRF5x-Command-Line-Tools_9_7_2_OSX/mergehex/mergehex /usr/local/bin/mergehex

(4)安裝 nRF5x-pynrfjprog
$ pip install pynrfjprog
下載 pynrfjprog Example,網址
https://www.nordicsemi.com/eng/nordic/download_resource/51504/32/39278358/87798 並解壓縮至 /Users/user/opt/pynrfjprog-9.7.2/ 目錄
試玩 examples ( 參攷:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.gs%2Fdita%2Fgs%2Fgs.html&cp=1 )
$ python program_hex.py
$ python memory_read_write.py
如下圖
執行其燒寫指令如下
$ nrfjprog --family nRF52 -e
$ nrfjprog --family nRF52 --program nrf52_dk_blinky.hex
$ nrfjprog --family nRF52 -r
如下圖

(5)安裝 nRF-Connect-macOShttps://www.nordicsemi.com/eng/nordic/download_resource/56320/13/30416895/108238 ) 並執行之...

3.下載 nRF5 SDK
(1)下載 nRF5_SDK_v14.2.0,網址
https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v14.x.x/nRF5_SDK_14.2.0_17b948a.zip 並解壓縮至 /Users/user/opt/nRF5_SDK_14.2.0_17b948a/ 目錄

(2)下載 nRF5_SDK_14.2.0 offline documentation,網址
https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v14.x.x/nRF5_SDK_14.2.0_offline_doc.zip 並解壓縮至 /Users/user/opt/nRF5_SDK_14.2.0_offline_doc/ 目錄

(3)修改 nRF5 SDK arm-gcc Makefile 路徑
$ nano /Users/davis/opt/nRF5_SDK_14.2.0_17b948a/components/toolchain/gcc/Makefile.posix
內容如下
GNU_INSTALL_ROOT := /usr/local/Cellar/gcc-arm-none-eabi/20160928/bin/
GNU_VERSION := 5.4.1
GNU_PREFIX := arm-none-eabi

4.開始玩SDK
$ cd /Users/user/opt/nRF5_SDK_14.2.0_17b948a/examples
Git操作
$ git init
$ git add .
$ git commit -m "initial version"
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

5.編譯 HEX & 燒寫Flashing至開發板
$ cd /Users/davis/opt/nRF5_SDK_14.2.0_17b948a/examples/peripheral/blinky/pca10040/s132/armgcc
$ make
$ make flash
執行如下圖

示範影片如下

程式碼如下



後記:特誌感謝 WiFiBoy(wifiboy.club賴'r 贈送 nRF52開發板 及 開發教導!!


參攷
1.Embedded Development on Linux - nRF5x - nRF51822, https://kuziel.nz/notes/2017/07/embedded-development-linux-nrf5x-nrf51822.html
2.nRF52 Toolchain Setup in Mac OS X, https://gist.github.com/cheburashka/c74840823cde609a5ec379c9440fc0fe
3.nRF52 Development Kit (for nRF52832), http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.gs%2Fdita%2Fgs%2Fgs.html&cp=1
4.ROGRAMMING AN NRF52 ON A MAC, https://aaroneiche.com/2016/06/01/programming-an-nrf52-on-a-mac/

留言