NRF52840 DFU升级(一): 按键升级

参考文献:

Nordic官方博客 《Getting started with Nordic's Secure DFU bootloader, a step by step guide》

小潘大神 《SDK12.0 nrf52832 空中升级详细步骤》

本文简要梳理总体的按键升级流程,更多细节请参考上述两个文献。

相关文章:《NRF52840 DFU升级(二):Hex文件打包》

                  《NRF52840 DFU升级(三) : Buttonless 升级》

                  《NRF52840 DFU升级(四):GPREGRET标志位升级》

1.  下载Nordic SDK

下载地址:http://developer.nordicsemi.com/nRF5_SDK/

选择自己平台的SDK版本,此处选择NRF52840对应的  nRF5_SDK_15.2.0_9412b96.zip

2.  安装GCC compiler toolchain for ARM

查看需要安装的GCC版本

在SDK的components/toolchain/gcc/Makefile.windows中定义了GCC的版本和安装路径

GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update/bin/
GNU_VERSION := 6.3.1
GNU_PREFIX := arm-none-eabi

直接到下载GNU页面https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads选择对应的版本

3. 安装WinGW

下载页面:https://osdn.net/projects/mingw/releases/  选择C与C++相关的编译器

将WinGW/bin添加到环境变量,然后执行

mingw-get install gcc g++ mingw32-make

然后将mingw32-make.exe 改名为make.exe

4. 编译micro-ecc

micro-ecc 下载地址:

https://github.com/kmackay/micro-ecc

下 载 ecc 的 zip 源 码 复 制 到 \external\micro-ecc 目 录 下 ,
micro-ecc-master 改名为 micro-ecc, 并解压文件。

NRF52840 DFU升级(一): 按键升级_第1张图片

然后到nrf52hf_armgcc 以及 nrf52nf_armgcc 路径下执行make编译

5. 生成KEY

5.1  下载nrfutil

下载地址: https://github.com/NordicSemiconductor/pc-nrfutil/releases,并将nrfutil 所在的路径添加到环境变量,方便使用

5.2   生成Private Key

nrfutil keys generate private.key

private key用于APP部分打包为OTA固件

5.3 生成Public Key

在prvate key的基础上生成public key.c , 并改名为 dfu_public_key.c 添加到Bootloader工程中

nrfutil keys display --key pk --format code private.key --out_file public_key.c

6. 编译bootloader

上述工作都做完以后,就可以直接编译Bootloader,并烧写到目标板中,(需要首先确认SoftDevice已写入),首先通过nrfgo烧写softdevice, 然后通过Keil烧写bootloader

7. 生成OTA升级包

将应用程序的hex文件与private key放在相同目录下,执行

nrfutil pkg generate --hw-version 52 --application-version 1 --application nrf52840_xxaa.hex --sd-req 0xae --key-file private.key app_dfu_package.zip

 

8. 安装nrf Connect

下载地址: https://github.com/NordicSemiconductor/Android-nRF-Connect/releases,使用最新版本,注意旧版本可能无法进行升级。

已经写入Bootloader的情况下,默认按下BTN4 复位设备会进入Bootloader, 然后使用nrf Connect 进行升级。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(BLE)