快速构建 nRF5 SDK + ARM GCC 开发环境

nRF5 应用开发的方式有挺多的,官方文档介绍的就有:

  • Keil µVision IDE,
  • IAR Embedded Workbench,
  • GCC ARM Embedded.

前两种方式优点是比较简单,很多事情 IDE 可以帮你一下搞定,但劣势也比较明显,这两个都是收费软件(如果你说可以和谐啊,那就当我没说啰...),还有就是只能在 Windows 系统下使用,跨平台基本没戏。

GCC ARM Embedded 是开源的交叉工具链,虽然配置稍微复杂一点点,但人家免费而且可以跨平台开发,无论你是使用 macOS,Windows,还是 Linux 进行开发,都完全无压力。这也是我个人非常推崇的一种方式,强烈建议大家都到这条跑道上来。

一开始我本来打算写个脚本,一条命令下去,屏幕“唰唰唰”蹦出一些“莫名其妙”的字符,最后跳出一句 “Completed successfully!”,一切轻松搞定,Perfect。这不是正好符合PM们说的“把你的用户当傻瓜”的理念吗?后来细想,我面对的人不是傻瓜,他们是比我不知道聪明多少倍的开发者,他们知道自己在干什么,这些小伎俩对他们来说简直就跟喝水一样。所以我还是老老实实还原整个构建过程,需要自动化构建的工作就留给他们,他们经常干这事的。

安装 GCC ARM Embedded

下载 GCC ARM Embedded,可以尝试最新版本,可能会出现不兼容问题,我当前使用的版本是 gcc-arm-none-eabi-5_4-2016q3

解压到你自己指定的目录,并验证是否能够工作:

# 解压到指定目录
$ cd your_toolchain_path/
$ tar -xvf gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2

# 验证版本
$ cd your_toolchain_path/gcc-arm-none-eabi-5_4-2016q3/bin/
$ ./arm-none-eabi-gcc --version

针对 Windows

Windows 对开发者来说是个比较麻烦的平台,不能原生支持一些开发工具,如我们将需要用到的两个命令行工具:makerm。还好这个世界上有一些非常可爱的人,他们“创造了一个东西,然后分享出来,让大家都能用 ”,这就是我们将需要用到的开源项目 GNU ARM Eclipse Windows Build Tools

下载并安装最新版本 GNU ARM Eclipse Windows Build Tools Release ,这个开源工具将会安装 makerm 等命令行工具。

一路 Next,安装完毕,为其添加环境变量:

# 验证是否配置正确
> make --version

安装 nRF5 SDK

下载最新版本 nRF5 SDK,nRF5 SDK 版本更新比较频繁,功能在不断扩展和改善中,可能会出现新旧 API 不兼容问题,小打小闹无所谓,搞大工程的小伙伴慎重更新。我目前使用的版本是 nRF5_SDK_12.2.0_f012efa

解压到你自己指定的目录:

# 解压到指定目录
$ tar -xvf nRF5_SDK_12.2.0_f012efa.zip -C ./your_sdk_path/

修改 Makefile.posix (在 Windows 下对应的是Makefile.windows) 文件,配置成前面 GCC ARM Embedded 的路径:

# macOS & Linux 对应 Makefile.posix 文件;Windows 对应 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  

可以编译官方的示例验证是否正常工作:

$ cd nRF5_SDK_12.2.0_f012efa/examples/peripheral/blinky/pca10040/blank/armgcc/
$ make

安装 pyOCD

pyOCD 是 mbed 社区为 ARM Cortex-M 系列 MCU 所提供的编程和调试服务工具。它主要基于 CMSIS DAP 接口,能为不同的厂商提供了统一的调试接口。该工具能够与 DAPLink 仿真器完美配合,低成本实现市场上价格不菲的仿真器的主要功能。

pyOCD 基于 Python,需要先安装 Python 2.7 和 pip:

安装最新稳定版本的 pyOCD:

# 如果安装失败,可以安装高版本的 Python 2.7.x 试试
$ pip install --pre -U pyocd

实战开发

如果你已经拿到 YS-Beacon HDK,一切准备就绪,可以进入实战开发了。第一个示例我已经 push 到 GitHub,可供参考:

Star

$ git clone https://github.com/YS-Beacon/ys-beacon-blinky.git
$ cd ys-beacon-blinky

# 将 YS-Beacon 连接到 PC
$ make flash

一切顺利的话,板子上的 RGB LED 将按照一定规律闪烁:


如无特殊说明,本文版权归本文作者及「创客日记」所有,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

转载请注明:来自「创客日记」https://makerdiary.co/setup-nrf5-arm-gcc-development-environment/