快速構(gòu)建 nRF5 SDK + ARM GCC 開發(fā)環(huán)境

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è)命令行工具:makerm。還好這個(gè)世界上有一些非??蓯鄣娜耍麄儭皠?chuàng)造了一個(gè)東西,然后分享出來,讓大家都能用 ”,這就是我們將需要用到的開源項(xiàng)目 GNU ARM Eclipse Windows Build Tools 。

下載并安裝最新版本 GNU ARM Eclipse Windows Build Tools Release ,這個(gè)開源工具將會(huì)安裝 makerm 等命令行工具。

一路 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ī)律閃爍:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容