参考文献:

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, 并解压文件。

然后到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 进行升级。

NRF52840 DFU升级(一): 按键升级相关推荐

  1. NRF52840 DFU升级(四):GPREGRET标志位升级

    参考博文<蓝牙nrf51822空中升级> 相关文章:<NRF52840 DFU升级(一): 按键升级>                   <NRF52840 DFU升级 ...

  2. mysql_upgrade 升级_采用MySQL_upgrade升级授权表方式升级

    [[email protected] MySQL]# /usr/local/MySQL/bin/MySQL_upgrade Looking for 'MySQL' as: bin/MySQL Look ...

  3. linux deepin 20.4升级至20.5教程:升级系统和升级内核两个步骤(手动升级deepin内核命令)

    升级系统版本 在控制中心点击更新就可以实现. 升级内核版本 在控制中心完成系统版本的升级之后,发现内核版本并没有进行同步升级,这时候就需要手动实现内核的升级.手动升级内核的命令如下: sudo apt ...

  4. mysql dump工具升级_MySQL数据库升级

    当前不少系统的数据库依旧是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升,因此需要升级数据库.本文通过逻辑方式.物理方式原地升级来介绍MySQL5.6 升级至M ...

  5. Android 系统(144)---整包升级与差分升级的区别

    整包升级与差分升级的区别 原文地址:FULL VS INCREMENTAL OTA 一.简介: OTA升级有两种类型,每一种类型都有对应的用途和优势.但是,只有一种类型是用户常常能够接触到的.现在我们 ...

  6. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)

    https://www.cnblogs.com/yangfengwu/p/10360618.html 演示视频: https://www.bilibili.com/video/av54894356/ ...

  7. ubuntu14.04升级以及gitlab升级

    环境:系统版本ubuntu14.04 .gitlab-ce.8.11.3 升级要求:系统升级为目前最新的LTS版本的ubuntu16.04.gitlab升级为最新的版本 升级可以有两种方案: 一种类似 ...

  8. Oracle 10g升级之--PSU 升级(续)

    Oracle 10g升级之--PSU升级(续) 5.再从10.2.0.4.4 升级到10.2.0.4.11 -----------升级到10.2.0.4.11 [oracle@RH4 12879929 ...

  9. 电信物联网平台SOTA升级(软件升级)的全流程说明

      中国电信物联网开放平台(以下简称"平台")提供了基于LWM2M的固件升级功能,用于模组的固件升级.但是由于多数模组并未提供升级接口给MCU,所以MCU升级只能基于应用层来实现升 ...

  10. rust墙壁升级点什么_明日之后屋子墙壁怎么升级?墙壁升级条件方法一览

    明日之后屋子墙壁怎么升级?墙壁升级条件方法一览 2018-11-05 16:06 作者:佚名 来源:本站整理 浏览:4868 明日之后屋子墙壁怎么升级?在明日之后手游中,我们可以通过一些方法给自己屋子 ...

最新文章

  1. [SDOI2009]HH的项链
  2. 微服务网关从零搭建——(七)更改存储方式为oracle
  3. 论文笔记:ResNet v2
  4. android file isdirectory,android – 为什么我不能在Environment.DIRECTORY_PICTURES中创建一个目录?...
  5. 造假暴赚260亿的资本“大忽悠”,终于倒下了
  6. OpenShift Redhat的使用和介绍
  7. 【重磅】App内可直接打开微信小程序,新增内容安全接口等
  8. CVE-2021-3156:隐藏10年之久的 Sudo 漏洞,可使任意用户获得root 权限(详述)
  9. SQL 与 Hibernate 性能相差悬殊
  10. hibernate使用sql语句查询实体时,要写上addEntity
  11. [转载]Ubuntu 14.04设置固定ip
  12. 云鲸扫拖一体机器人说明书_云鲸小白鲸扫拖一体机器人好用吗?真实的测评带你走进智能化家居时代...
  13. XCode编译器里有鬼 – XCodeGhost样本分析
  14. eclipse优化配置
  15. 开关电流双线性映射无损积分器的电路结构和z变换函数
  16. Oracle里default什么意思,ORACLE中默认值default的使用方法
  17. Web设计中最常用的10种色调以及示例演示
  18. ingress 七层负载均衡器
  19. Win11如何隐藏输入法悬浮窗?
  20. [渝粤教育] 西南科技大学 建筑工程定额与预算 在线考试复习资料2021版(2)

热门文章

  1. 深度学习--激活函数之sigmoid激活函数
  2. 【STP】生成树协议及STP 802.1D (上)
  3. jar命令 解压/压缩 war、jar文件
  4. C4D实现宜家闹钟建模
  5. cloudflare_CloudFlare泄漏的消息揭晓,密码管理变得轻松
  6. NBNS扫描工具nbtscan-unixwiz
  7. (二)html 复杂表格
  8. Java软件开发技术交流群
  9. 射频电路学习之滤波电路
  10. 串口监听器使用说明书