NRF52832空中升级DFU

1.工具环境搭建

  • gcc-arm-none-eabi编译环境:GCC编译环境

           Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer

  • mingw 平台(win版的Linux命令行)

          Download MinGW - Minimalist GNU for Windows

  • micro-ecc-master源码

          GitHub - kmackay/micro-ecc: ECDH and ECDSA for 8-bit, 32-bit, and 64-bit processors.

(我用的原来工程中的micro_ecc_lib_nrf52.lib)

  • python 安装文件

          Download Python | Python.org

我用的是python-3.10.10-amd64版本。

  • pc-nrfutil

         GitHub - NordicSemiconductor/pc-nrfutil: nrfutil python library and command line client

我用的是pc-nrfutil-6.1.7版本

  • nrfgo-studio
  • nrf connect app

2、升级文件制作

2.1 密钥生成文件

(1)新建文件夹key,在CMD命令中输入:

nrfutil.exe keys generate D:\TEST\key\private.key

生成私钥文件。

(2)在命令中输入:

nrfutil keys display --key pk --format code D:\TEST\key\private.key --out_file D:\TEST\key\public_key.c

生成公钥文件public_key.c,将文件名修改为:dfu_public_key.c,复制dfu_public_key.c文件到dfu工程,dfu\dfu_req_handling\ 。

2.2 升级包制作

(1)boot工程的hex生成

打开dfu下的boot工程,重新编译,生成hex文件,将文件名改为:boot.hex,拷贝到key 文件夹下。

注意:起始地址为:0x78000,大小:0x8000

(2)应用工程的hex生成

打开ble_peripheral文件夹下的应用工程,重新编译,生成hex文件,将文件名改为:app.hex,拷贝到key文件夹下。

注意:起始地址为:0x1f000,大小:0x59000

2.3 升级文件zip的生成

在key文件夹下,输入命令:

nrfutil pkg generate --hw-version 52 --application-version 2 --application app.hex --sd-req 0x99 --key-file private.key test_Dfu15.zip

生成用于升级的文件:test_Dfu15.zip,放进手机中利用nrf connect app传送至设备。

注意:

蓝牙协议栈版本如下:

                                  |s112_nrf52_6.0.0|0xA7|
                                  |s112_nrf52_6.1.0|0xB0|
                                  |s112_nrf52_6.1.1|0xB8|
                                  |s130_nrf51_1.0.0|0x67|
                                  |s130_nrf51_2.0.0|0x80|
                                  |s132_nrf52_2.0.0|0x81|
                                  |s130_nrf51_2.0.1|0x87|
                                  |s132_nrf52_2.0.1|0x88|
                                  |s132_nrf52_3.0.0|0x8C|
                                  |s132_nrf52_3.1.0|0x91|
                                  |s132_nrf52_4.0.0|0x95|
                                  |s132_nrf52_4.0.2|0x98|
                                  |s132_nrf52_4.0.3|0x99|
                                  |s132_nrf52_4.0.4|0x9E|
                                  |s132_nrf52_4.0.5|0x9F|
                                  |s132_nrf52_5.0.0|0x9D|
                                  |s132_nrf52_5.1.0|0xA5|
                                  |s132_nrf52_6.0.0|0xA8|
                                  |s132_nrf52_6.1.0|0xAF|
                                  |s132_nrf52_6.1.1|0xB7|
                                  |s140_nrf52_6.0.0|0xA9|
                                  |s140_nrf52_6.1.0|0xAE|
                                  |s140_nrf52_6.1.1|0xB6|

3、生产烧录文件制作

3.1 setting 文件的生成

在key文件夹中,输入命令:

nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 2 app_setting.hex

生成 app_setting.hex文件,用于下步合并文件的制作。

3.2 合并协议栈hex,boot的hex,应用的hex

在key文件夹中,输入命令:

mergehex --merge s132.hex boot.hex app.hex --output output3to1.hex

生成3个文件的合并文件output3to1.hex,用于下步合并文件的制作。

3.3 合并output3to1.hex 和app_setting.hex

在key文件夹中,输入命令:

mergehex --merge output3to1.hex app_setting.hex --output output4to1.hex

生成最终合并的output4to1.hex,可以直接用nrfgo软件直接烧录。

 

4、升级过程

连接设备蓝牙

1.使能Buttonless DFU的CCCD项;

2.点击按键2

点击SEND,设备进入boot模式,关闭当前连接,进入扫描项SCAN,连接DfuTrag

点击右上角的DFU小图标,选择ZIP文件(SDK12之后仅支持ZIP格式升级),点击OK,进入文件浏览器选择升级文件后自动开始升级,到100%时升级完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353431.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

hash传递攻击

简介 Pass the hash也就是Hash传递攻击,简称为PTH。模拟用户登录不需要用户明文密码只需要hash值就可以直接来登录目标系统。 利用前提条件是: 开启445端口开启ipc$共享 Metasploit pesexec模块 windows/smb/psexec 这里主要设置smbuser、smbPass …

月互联网十大热词出路 世博庙会、天上人间入选

世 博庙会、世 界杯家规、伪娘、京 十二条、菜奴、天 上人间、词媒体、零薪族、张悟本 世 博庙会 世博庙会是互动百科的智愿者针对上海世博会里游人熙熙攘攘排队、热热闹闹拍照、匆匆忙忙盖章的“走马观花”式的逛庙会游览方式的一种形象说法。世 界杯家规 世界杯家规&#xf…

2011最新整理分享平台代码参考

平台代码URL115收藏夹115http://fav.115.com139社区139http://www.139.com139邮箱139mailhttp://mail.10086.cn42区42quhttp://42qu.com5151http://www.51.com淘男网51taonanhttp://www.51taonan.com豆瓣9点9dianhttp://9.douban.com/就喜欢网9favhttp://www.9fav.comAsk.comas…

Web的基本漏洞--越权漏洞

目录 一、越权漏洞介绍 1.越权漏洞的原理 2.越权漏洞的分类 3.越权漏洞产生的原因 一、越权漏洞介绍 越权漏洞指的是应用在检查授权时存在纰漏,可以让攻击者获得低权限用户账户后,利用一些方式绕过权限检查,可以访问或者操作其他用户或者…

DevOps该怎么做?

年初在家待了一段时间看了两本书收获还是挺多的. 这些年一直忙于项目, 经历了软件项目的每个阶段, 多多少少知道每个阶段是个什么, 会做哪些事情浮于表面, 没有深入去思考每个阶段背后的理论基础, 最佳实践和落地工具. 某天leader说你书看完了, 只有笔记没有总结, 你就写个总结…

Java009——Java数据类型简单认识

围绕以下3点学习: 1、什么是Java数据类型? 2、Java数据类型的作用? 3、Java有哪些数据类型? 4、熟悉Java8大基本数据类型 一、什么是Java数据类型? 当我们写Java代码时,需要把数据保存在变量(…

win7系统卸载360管家之后无法上网怎么回事?

win7系统卸载360管家之后无法上网怎么回事?有用户电脑安装的360管家软件卸载了之后,发现网络连接也同时出现了错误。那么这个情况是什么原因呢?接下来一起来看看如何解决因为卸载360软件而导致的电脑无法上网问题的解决方法吧。 解决方法 1、…

360天擎无密码退出和卸载

无密码退出 删除配置(360Safe\EntClient\conf\EntBase.dat) **注:**删除时提示权限不够无法删除,使用360自带的文件粉碎机将文件粉碎即可无密码退出360天擎(重新打开程序时EntBase.dat会再次生成) 修改配置…

idesk卸载教程_【亲测可行】Autodesk 卸载工具,一键完全彻底卸载删除autodesk软件专门卸载工具...

autodesk卸载工具(AUTO Uninstaller)是专门为了针对autodesk类软件卸载不干净而导致autodesk安装失败问题进行研发的autodesk一键卸载工具。现在虽然360或一些卸载软件提供了强力卸载autodesk的工具,可以将autodesk注册表和一些autodesk目录的autodesk残留信息删除&…

关闭/卸载360画报/壁纸

前言 360画报和360壁纸指的是同一个组件,只是称呼不同,下文简称360画报,是360安全卫士和360安全浏览器自动安装的组件之一,是可以被关闭和卸载的。此组件会自动开启360屏保,用户不喜欢可以进行关闭或卸载。下文介绍关…

mysql删除工具_有没有mysql卸载工具

展开全部 没有工具,手工清理就636f707962616964757a686964616f31333365636633可以了。 1.打开命令行,运行命令 net start,查看一下mysql服务,如果开启就使用命令 net stop mysql 将其关闭。 注:如果提示无法关闭&#…

【亲测可行】Autodesk 卸载工具,一键完全彻底卸载删除autodesk软件专门卸载工具...

autodesk卸载工具(AUTO Uninstaller)是专门为了针对autodesk类软件卸载不干净而导致autodesk安装失败问题进行研发的autodesk一键卸载工具。现在虽然360或一些卸载软件提供了强力卸载autodesk的工具,可以将autodesk注册表和一些autodesk目录的autodesk残留信息删除&…

Autodesk 卸载工具

autodesk卸载工具(AUTO Uninstaller)是专门为了针对autodesk类软件卸载不干净而导致autodesk安装失败问题进行研发的autodesk一键卸载工具。现在虽然360或一些卸载软件提供了强力卸载autodesk的工具,可以将autodesk注册表和一些autodesk目录的autodesk残留信息删除&…

笔试强训9

作者:爱塔居 专栏:笔试强训 文章简介:简单记录学习的细碎~ day15 一. 单选 1.给出数据表 score(stu-id,name,math,english,Chinese), 下列语句正确的是( ) A Select sum(math),avg(chinese) from score B Select *,s…

解决360卸载之后遗留问题:windows defender无法开启

前几日,在对一台新电脑进行”净化工作“——卸载很多原装的垃圾软件,卸载了360之后发现windows defender无法打开,找到services.msc无法开启,启动按钮是灰色的,在查看了很多的教程之后,并确认windows defen…

一篇文章搞懂CMake(gcc、g++、cmake解释)

一篇文章搞懂CMake (gcc、g、cmake解释) 这里写目录标题 一篇文章搞懂CMake (gcc、g、cmake解释)gccgcmake1. CMake 流程如何使用cmake?简单的CMake.txt文件 参考 gcc gcc命令来自英文词组“GNU Compiler Collection”…

如何关闭计算机软件更新功能,如何关闭电脑自动更新功能

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 以Windows 7电脑为例,关闭电脑自动更新功能的方法: 1、首先按下winr打开运行窗口。 2、接着输入services.msc并点击回车。 3、然后选择Windows update选项。…

关闭windows自动更新

1、win r ---- 输入services.msc进入服务 找到Windows Update 双击打开属性弹框 将启动类型改为禁用,并在恢复中将第一次失败改成无操作 2、win r ---- 输入gpedit.msc进入本地组策略编辑器 找到计算机配置 》管理模板 》Windows组件 》Windows更新,选…

linux7怎么关闭更新,如何让centos7关闭yum自动更新系统

客户指定机器的系统要centos 7.6,易秋网络老易这边提供的实际也是centos 7.6,但是等客户安装完毕宝塔后,系统显示是centos 7.7,但是客户因为某些原因,就是要centos 7.6,易秋网络老易猜测是安装宝塔的过程中,centos 7.6自动更新到centos 7.7了。 [root@1403-sxx yum]# ca…

计算机配置更新怎么关闭,如何关闭戴尔电脑自动更新系统配置

如何关闭戴尔电脑自动更新系统配置 有时候我们不想更新系统的配置,但是操作系统会为我们自动更新系统配置。那么如何关闭戴尔电脑自动更新系统配置呢?下面就让jy135小编来告诉大家吧,欢迎阅读。 1、开机之后,等待系统启动,启动完…