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, 并解压文件。
然后到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升级(一): 按键升级相关推荐
- NRF52840 DFU升级(四):GPREGRET标志位升级
参考博文<蓝牙nrf51822空中升级> 相关文章:<NRF52840 DFU升级(一): 按键升级> <NRF52840 DFU升级 ...
- mysql_upgrade 升级_采用MySQL_upgrade升级授权表方式升级
[[email protected] MySQL]# /usr/local/MySQL/bin/MySQL_upgrade Looking for 'MySQL' as: bin/MySQL Look ...
- linux deepin 20.4升级至20.5教程:升级系统和升级内核两个步骤(手动升级deepin内核命令)
升级系统版本 在控制中心点击更新就可以实现. 升级内核版本 在控制中心完成系统版本的升级之后,发现内核版本并没有进行同步升级,这时候就需要手动实现内核的升级.手动升级内核的命令如下: sudo apt ...
- mysql dump工具升级_MySQL数据库升级
当前不少系统的数据库依旧是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升,因此需要升级数据库.本文通过逻辑方式.物理方式原地升级来介绍MySQL5.6 升级至M ...
- Android 系统(144)---整包升级与差分升级的区别
整包升级与差分升级的区别 原文地址:FULL VS INCREMENTAL OTA 一.简介: OTA升级有两种类型,每一种类型都有对应的用途和优势.但是,只有一种类型是用户常常能够接触到的.现在我们 ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
https://www.cnblogs.com/yangfengwu/p/10360618.html 演示视频: https://www.bilibili.com/video/av54894356/ ...
- ubuntu14.04升级以及gitlab升级
环境:系统版本ubuntu14.04 .gitlab-ce.8.11.3 升级要求:系统升级为目前最新的LTS版本的ubuntu16.04.gitlab升级为最新的版本 升级可以有两种方案: 一种类似 ...
- 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 ...
- 电信物联网平台SOTA升级(软件升级)的全流程说明
中国电信物联网开放平台(以下简称"平台")提供了基于LWM2M的固件升级功能,用于模组的固件升级.但是由于多数模组并未提供升级接口给MCU,所以MCU升级只能基于应用层来实现升 ...
- rust墙壁升级点什么_明日之后屋子墙壁怎么升级?墙壁升级条件方法一览
明日之后屋子墙壁怎么升级?墙壁升级条件方法一览 2018-11-05 16:06 作者:佚名 来源:本站整理 浏览:4868 明日之后屋子墙壁怎么升级?在明日之后手游中,我们可以通过一些方法给自己屋子 ...
最新文章
- [SDOI2009]HH的项链
- 微服务网关从零搭建——(七)更改存储方式为oracle
- 论文笔记:ResNet v2
- android file isdirectory,android – 为什么我不能在Environment.DIRECTORY_PICTURES中创建一个目录?...
- 造假暴赚260亿的资本“大忽悠”,终于倒下了
- OpenShift Redhat的使用和介绍
- 【重磅】App内可直接打开微信小程序,新增内容安全接口等
- CVE-2021-3156:隐藏10年之久的 Sudo 漏洞,可使任意用户获得root 权限(详述)
- SQL 与 Hibernate 性能相差悬殊
- hibernate使用sql语句查询实体时,要写上addEntity
- [转载]Ubuntu 14.04设置固定ip
- 云鲸扫拖一体机器人说明书_云鲸小白鲸扫拖一体机器人好用吗?真实的测评带你走进智能化家居时代...
- XCode编译器里有鬼 – XCodeGhost样本分析
- eclipse优化配置
- 开关电流双线性映射无损积分器的电路结构和z变换函数
- Oracle里default什么意思,ORACLE中默认值default的使用方法
- Web设计中最常用的10种色调以及示例演示
- ingress 七层负载均衡器
- Win11如何隐藏输入法悬浮窗?
- [渝粤教育] 西南科技大学 建筑工程定额与预算 在线考试复习资料2021版(2)