0. Zephyr-初探

环境搭建

0. 环境安装

参照官方文档,在 WSL on windowsUbuntu 系统均成立。

烧录工具

一些板子默认的烧录工具为 nrfjprog,访问nRF Command Line Tools安装

一些板子默认的烧录工具为 pyocd,如无意外,会在安装依赖时自动安装上。
手动则使用 pip3 install pyocd 来安装。安装时,可使用 pip3 install -i <src> 指定国内源提升速度。

pip国内源
阿里源: https://mirrors.aliyun.com/pypi/simple/
清华源: https://pypi.tuna.tsinghua.edu.cn/simple/
中科大源: https://pypi.mirrors.ustc.edu.cn/simple/

Ubuntu 下安装 nrfjprog
Ubuntu 下使用 ln -s <src> <des> 命令在 /sbin 创建 nrfjprog 的软链接 (注意 src 应当使用绝对路径),支持安装 deb 包的系统可以直接使用 sudo dpkg -i <deb> 安装

WSL 环境下可能缺少依赖,需要手动安装 sudo apt install libtinfo5 libncurses5

使用 west init 的包可以拷贝至其他环境,避免重复下载耗费大量时间

已知问题

  1. west zephyr-exportWSL 环境可能无法使用,可以考虑按照官方给出的方式手动编译或者跳过此步。ps. Ubuntu下正常
  2. Fixed requirements.txt 里缺少 pyelftools 工具,需要手动安装 pip3 install pyelftools,否则最后无法编译。
  3. 由于 WSL 无法识别到宿主机的 USB,所以无法在 WSL 环境中烧录

建议在 Ubuntu 环境下开发,免去许多奇怪的问题。

编译

- nrf52832

指定开发板为官方支持开发板 nrf52832_mdk,使用 west 编译官方例程 blinky 如下:
west build -p auto -b nrf52832_mdk samples/basic/blinky

- nrf52840

指定开发板为官方支持开发板 nrf52840dongle_nrf52840,使用 west 编译官方例程 blinky,如下:
west build -p auto -b nrf52840dongle_nrf52840 samples/basic/blinky

烧录

- nrf52832_mdk

默认烧录工具为 pyocd,Ubuntu上可以正常使用 pyocd + cmsis-dap 的组合直接运行 west flash 进行烧录。

- nrf52840dongle_nrf52840

默认烧录工具为 nrfjprog,Ubuntu上可以正常使用 nrfjprog + jlink 的组合直接运行 west flash 进行烧录。

已知问题pyocd 识别不到 jlink,可以使用 pyocd + cmsis-dap 或者 nrfjprog + jlink 的组合进行烧录

调试

使用 west debug 启动 GDB

使用 west debugserver 启动 GDB server