nRF52实践:开发环境搭建

·  阅读 91

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

本文介绍nRF52实践系列文章之环境搭建。

前言

笔者购买了一块 nrf52832 的板子,使用该板子对 BLE 协议进行研究。本文为 nRF52实践系列第一篇,主要介绍环境的搭建及编译烧写的过程。

概述

nRF52有2套SDK,分别是nRF5 SDK和NCS(nRF Connect SDK 的缩写)。

开发环境分3个层面:

  • 编辑

    IDE或任意编辑器即可,如NCS还支持 VS Code 开发。

  • 编译

    在不同的IDE中编译。gcc使用Makefile编译。

  • 烧录

    用 J-Link 烧录,在 Keil 中可直接下载烧录(设置好地址),在 NRFgo Studio、NCS 工具的 programmer也可下载。

整体看可用 Keil、IAR、SES开发环境进行编码编译,再用 NRFgo Studio 烧录。

当前使用:vscode写代码,Keil 编译,烧录。

nRF5 SDK

SDK 下载地址为:www.nordicsemi.com/Products/De… 。SDK最新的是 17.1.0,本文即使用此版本,解压后得到目录为nRF5_SDK_17.0.2_d674dde。注意,不同版本的SDK,keil 使用的组件版本不同,部分接口不同,不能兼容。

Keil

Keil 总体安装步骤如下:

直接安装 ARM 版本的 keil,找到SDK的示例工程文件,双击打开,会提示缺少包,再下载对应版本,安装之。完成。

下面分步介绍。

安装 Keil ARM版本

直接安装即可,注意是 ARM 版本(不能用 C51 版本)。

安装软件包

由于不同的 SDK 依赖的软件包版本不同,所以需先打开SDK的例程观察版本号,以 blinky 为例,其目录为:nRF5_SDK_17.1.0_ddde560\examples\peripheral\blinky\pca10040\blank\arm5_no_packs。 双击工程文件,Keil 提示缺失的软件包及版本(也可以直接在uvprojx文件中查看)。本文提示如下。

1.png

Device family pack

Device family pack 下载地址为:www.nordicsemi.com/Products/De…

使用版本如下:

2.png

下载文件名称:nordicsemiconductor.nrf_devicefamilypack.8.40.3.pack

ARM CMSIS 5

Keil 中默认4.5,但所需版本5.6.0。5系列下载:github.com/ARM-softwar…

注:4系列下载为:github.com/ARM-softwar…。之前的SDK是4版本。

下载的文件名为:ARM.CMSIS.5.6.0.pack、nordicsemiconductor.nrf_devicefamilypacknordiclicense.8.40.3.pack,分别双击安装之。

安装后, Keil 中的 Pack Installer 界面如下:

3.png

烧写工具nRFgo Studio

下载地址:www.nordicsemi.com/Products/De…

选择“Windows x86 64”版本,文件:nrfgostudiowin641212installer.msi

提示安装各种驱动和工具(J-Link、Command Line Tool),安装之。注意,这些配套的工具会有对应的版本,最新的不一定合适。

4.png

5.png

nRF Connect SDK

6.png 此为新的方式,笔者暂未深入使用,此时仅记录当时的操作。

下载地址:www.nordicsemi.com/Products/De…

版本3.10.0。

PC端

双击nrfconnect-setup-3.10.0.exe安装。过程提示安装J-Link,安装之。

如无法下载json文件,提示:

7.png

github.com/NordicSemic… 找到apps.json,将内容拷贝到C:\Users\Administrator.nrfconnect-apps\apps.json文件。

更新后界面:

8.png 选择需要的工具,点击“Install”,即可安装。

本文安装:Programmer、Toolchain Manager。

9.png

打开 Toolchain Manager 。安装最新的SDK。

10.png

提示确认下载目录,本文选择非C盘。

11.png

等待下载完成。界面右下角可显示下载日志。

12.png

13.png

手机端

在应用市场可下载,但无法访问。使用 github 仓库。

下载地址:github.com/NordicSemic…

版本:nRF.Connect.4.25.0。APP截图如下:

14.jpg

注:经实践,使用 APP 可以配合从机例程做测试,桌面版连接不了(应该是环境问题)。

例程

本节以官方SDK的例程演示编译烧写看日志过程。

注:经测试,笔者从某宝上购买的一板开发板,可直接使用官方的SDK例程编译烧写运行)。

例程说明

以blinky工程为例。

工程目录: examples\ble_peripheral\ble_app_blinky ,主文件:main.c。

nrf52832的keil 工程目录:\pca10040\s132\arm5_no_packs,配置文件:pca10040\s132\config\sdk_config.h

双击ble_app_blinky_pca10040_s132.uvprojx打开工程。

默认使用串口输出日志(NRF_LOG_BACKEND_UART_ENABLED宏为1),如需使用 RTT 输出日志,在sdk_config.h中设置 NRF_LOG_BACKEND_RTT_ENABLED 为1。

编译

按 F7 编译。

15.png

_build目录下生成可烧写文件,其实真正烧写的为nrf52832_xxaa.hex,在 keil 环境中下载所用的是nrf52832_xxaa.axf文件。需要注意的是,上图第一个红框为编译目标,还包含有flash_s132_nrf52_7.2.0_softdevice,不过笔者未试过在 Keil 中使用。

烧写

烧写使用 JTAG 接口,板子上已经有对应的接口,PC 端为 USB 口。

如果是纯单机程序,可烧写到0地址,如果带BLE协议栈,则必要先烧写 SoftDevice,再烧写应用程序。SoftDevice只烧写一次即可,其烧写文件为components\softdevice\s132\hex\s132_nrf52_7.2.0_softdevice.hex

打开nRFgo Studio软件,连接板子,稍等,点击左侧NRF5x Programming,出现下图界面。可选SoftDevice或Application类型烧写。

16.png

观察日志

安装 J-Link 时自动安装 RTT Viewer。打开,在初始化界面中选项目标设备。

17.png

注:图为显示日志后,再打开连接窗口。

板子连接J-Link接口后,会自动上电,初始化时的日志,此时应该已经打印了。但用RTT连接后,也能显示,估计是有缓存。

需要说明的是,在日常调试阶段,一般已经烧写了 SoftDevice,且各项参数已经配置好,在连接 JTAG 线时, 在 Keil 中按 F7 编译,再按 F8 烧写即可。笔者就是使用此方式,改代码,编译烧写验证,比较快速。

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改