
nRF5 應(yīng)用開發(fā)的方式有挺多的,官方文檔介紹的就有:
- Keil μVision IDE,
- IAR Embedded Workbench,
- GCC ARM Embedded.
前兩種方式優(yōu)點(diǎn)是比較簡單,很多事情 IDE 可以幫你一下搞定,但劣勢(shì)也比較明顯,這兩個(gè)都是收費(fèi)軟件(如果你說可以和諧啊,那就當(dāng)我沒說啰...),還有就是只能在 Windows 系統(tǒng)下使用,跨平臺(tái)基本沒戲。
GCC ARM Embedded 是開源的交叉工具鏈,雖然配置稍微復(fù)雜一點(diǎn)點(diǎn),但人家免費(fèi)而且可以跨平臺(tái)開發(fā),無論你是使用 macOS,Windows,還是 Linux 進(jìn)行開發(fā),都完全無壓力。這也是我個(gè)人非常推崇的一種方式,強(qiáng)烈建議大家都到這條跑道上來。
一開始我本來打算寫個(gè)腳本,一條命令下去,屏幕“唰唰唰”蹦出一些“莫名其妙”的字符,最后跳出一句 “Completed successfully!”,一切輕松搞定,Perfect。這不是正好符合PM們說的“把你的用戶當(dāng)傻瓜”的理念嗎?后來細(xì)想,我面對(duì)的人不是傻瓜,他們是比我不知道聰明多少倍的開發(fā)者,他們知道自己在干什么,這些小伎倆對(duì)他們來說簡直就跟喝水一樣。所以我還是老老實(shí)實(shí)還原整個(gè)構(gòu)建過程,需要自動(dòng)化構(gòu)建的工作就留給他們,他們經(jīng)常干這事的。
安裝 GCC ARM Embedded
下載 GCC ARM Embedded,可以嘗試最新版本,可能會(huì)出現(xiàn)不兼容問題,我當(dāng)前使用的版本是 gcc-arm-none-eabi-5_4-2016q3。
解壓到你自己指定的目錄,并驗(yàn)證是否能夠工作:
# 解壓到指定目錄
$ cd your_toolchain_path/
$ tar -xvf gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2
# 驗(yàn)證版本
$ cd your_toolchain_path/gcc-arm-none-eabi-5_4-2016q3/bin/
$ ./arm-none-eabi-gcc --version

針對(duì) Windows
Windows 對(duì)開發(fā)者來說是個(gè)比較麻煩的平臺(tái),不能原生支持一些開發(fā)工具,如我們將需要用到的兩個(gè)命令行工具:make 和 rm。還好這個(gè)世界上有一些非??蓯鄣娜耍麄儭皠?chuàng)造了一個(gè)東西,然后分享出來,讓大家都能用 ”,這就是我們將需要用到的開源項(xiàng)目 GNU ARM Eclipse Windows Build Tools 。
下載并安裝最新版本 GNU ARM Eclipse Windows Build Tools Release ,這個(gè)開源工具將會(huì)安裝 make 和 rm 等命令行工具。

一路 Next,安裝完畢,為其添加環(huán)境變量:

# 驗(yàn)證是否配置正確
> make --version

安裝 nRF5 SDK
下載最新版本 nRF5 SDK,nRF5 SDK 版本更新比較頻繁,功能在不斷擴(kuò)展和改善中,可能會(huì)出現(xiàn)新舊 API 不兼容問題,小打小鬧無所謂,搞大工程的小伙伴慎重更新。我目前使用的版本是 nRF5_SDK_12.2.0_f012efa。
解壓到你自己指定的目錄:
# 解壓到指定目錄
$ tar -xvf nRF5_SDK_12.2.0_f012efa.zip -C ./your_sdk_path/
修改 Makefile.posix (在 Windows 下對(duì)應(yīng)的是Makefile.windows) 文件,配置成前面 GCC ARM Embedded 的路徑:
# macOS & Linux 對(duì)應(yīng) Makefile.posix 文件;Windows 對(duì)應(yīng) Makefile.windows 文件
GNU_INSTALL_ROOT := your_toolchain_path/gcc-arm-none-eabi/gcc-arm-none-eabi-5_4-2016q3
GNU_VERSION := 5.4.1
GNU_PREFIX := arm-none-eabi
可以編譯官方的示例驗(yàn)證是否正常工作:
$ cd nRF5_SDK_12.2.0_f012efa/examples/peripheral/blinky/pca10040/blank/armgcc/
$ make

安裝 pyOCD
pyOCD 是 mbed 社區(qū)為 ARM Cortex-M 系列 MCU 所提供的編程和調(diào)試服務(wù)工具。它主要基于 CMSIS DAP 接口,能為不同的廠商提供了統(tǒng)一的調(diào)試接口。該工具能夠與 DAPLink 仿真器完美配合,低成本實(shí)現(xiàn)市場上價(jià)格不菲的仿真器的主要功能。
pyOCD 基于 Python,需要先安裝 Python 2.7 和 pip:
安裝最新穩(wěn)定版本的 pyOCD:
# 如果安裝失敗,可以安裝高版本的 Python 2.7.x 試試
$ pip install --pre -U pyocd
實(shí)戰(zhàn)開發(fā)
如果你已經(jīng)拿到 YS-Beacon HDK,一切準(zhǔn)備就緒,可以進(jìn)入實(shí)戰(zhàn)開發(fā)了。第一個(gè)示例我已經(jīng) push 到 GitHub,可供參考:
$ git clone https://github.com/YS-Beacon/ys-beacon-blinky.git
$ cd ys-beacon-blinky
# 將 YS-Beacon 連接到 PC
$ make flash
一切順利的話,板子上的 RGB LED 將按照一定規(guī)律閃爍:
