51822 QFAA dfu sdk12.3 路程

Nordic 51822 烧录bootloader 后,需要OTA一次,才能启动App解决办法 Nordic 51822 烧录bootloader 后,需要OTA一次,才能启动App解决办法 使用nrfjprog烧写寄存器标志位 nrfjprog --memwr 0x3FC00 --val 0x01 官网解释说明如下: E. How do I program the original application via programmer (JLINK), not by DF 阅读详情

几经折腾,将路程写了下来

application demo : experimental_ble_app_buttonless_dfu

bootloader demo:dfu / bootloader_secure

目标:

    Sensor + dfu

1. bootloader hex文件生成:

a .在当前目录下生成一个唯一的私钥(private_key.pem):
nrfutil keys generate private_key.pem

b.利用私钥,可以生成一个公钥:
nrfutil keys display --key pk --format code private_key.pem --out_file dfu_public_key.c

c. 将dfu_public_key.c  替换demo dfu_public_key.c 文件

d. 编译生成bootloader hex文件

2.  DFU zip文件生成

 本文使用预编译的nrfutil.exe,放到C:\nordic\nrfutil中,并将该目录加入系统环境变量,方便在cmd中调用。所需文件可以在nordic nRFgo studio 安装的目录下找到,可以拷贝这文件夹里面的内容到你自己定义的地方,随意生成你所需的文件:

Nordic Semiconductor\nrf5x\bin

生成升级包至少需要以下文件和信息:
新固件文件
私钥文件
芯片型号
支持的softdevice版本号
应用程序版本号
假设新固件为app.hex,私钥文件为private_key.pem,芯片型号为nRF51,softdevice版本号为S130_nrf51_2.0.1,固件版本号为0x02,
最终生成的升级包文件为dfu_pkg.zip,那么对应的命令为:
nrfutil pkg generate --application app.hex --hw-version 51 --sd-req 0x87 --application-version 0x02 --key-file private_key.pem dfu_pkg.zip

命令中各参数含义很直观,值得一提的是--sd-req这个参数,它表示固件运行所需的softdevice版本,0x5A表示softdevice S132_nrf52_5.1.0。

0x87 表示:S130_nrf51_2.0.1

获得sd-req的数值至少有以下几种途径:
1)通过命令nrfutil pkg generate --help查看
2)在线文档中查看
3.)烧录一个BLE程序,在nrfgo Studio中查看
 

3. 烧录生产产品:(softdevice ,bootloader , application , setting  )

a. 各个文件分别烧录 (注意烧录的顺序)

nrfutil settings generate --family NRF51 --application nrf51422_xxac.hex  --application-version 23 --bootloader-version 25 --bl-settings-version 1 settings.hex

nrfjprog.exe --eraseall --family NRF51
nrfjprog.exe --program s130_nrf51_2.0.1_softdevice.hex --family NRF51
nrfjprog.exe --program nrf51422_xxac_s130.hex --family NRF51
nrfjprog.exe --program nrf51422_xxac.hex  --family NRF51
nrfjprog.exe --program settings.hex --verify --reset --family NRF51

b. 合成一个文件烧录进行烧录
1)生成setting文件
nrfutil settings generate  --family NRF51  --application nrf51422_xxac.hex  --application-version 2 --bootloader-version 2 --bl-settings-version 1 settings.hex
2)合成文件:
mergehex --merge s130_nrf51_2.0.1_softdevice.hex  nrf51422_xxac_s130.hex --output SD_BL.hex
mergehex --merge SD_BL.hex nrf51422_xxac.hex --output SD_BL_APP.hex
mergehex --merge SD_BL_APP.hex settings.hex --output all.hex

Note :

1. 读取setting.hex 烧录在机器的位置如下,我修改了bootloader-version , 一次24,一次25 ,将整个芯片读取出来,找到了变动的位置如下,可以确定setting.hex的信息保存在地址0x3FC00 :

 

我的意图:

同一个软件,根据不同的setting 数据,接不同的硬件,问题在于,我如何读取setting 数据:

#include "nrf_dfu_types.h"

const nrf_dfu_settings_t * bootloader_settings = (const nrf_dfu_settings_t *) BOOTLOADER_SETTINGS_ADDRESS;

如下则获取app版本信息:

bootloader_settings->app_version

 

2.睡眠和低功耗相抵触处理

https://blog.youkuaiyun.com/weixin_40204595/article/details/81003823

NRF51822的dfu工程编译问题 使用的版本:nRF5_SDK_12.3.0_666331ad 编译环境:KEIL5 工程路径: nRF5_SDK_12.3.0_666331ad\nRF5_SDK_12.3.0_d7731ad\examples\dfu\bootloader_secure\pca10028\arm5_no_packs\secure_dfu_secure_dfu_ble_s130_pca10028.uvproj... 阅读详情

相关推荐

nRF5_SDK_12.3.0

nrf5 sdk ,nrf52832,nrf52840开法sdk。有关的开发例子。

nrf51蓝牙未连接超时自动关机

问题硬件: nrf51822开发板 软件: MDK SDK: nRF5_SDK_12.3.0_d7731ad 工程是基于 nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_uart 在开发nrf51822过程中,发送当大概3分钟未连接蓝牙后,就再也搜索不到该蓝牙,只能通过复位才能重新搜索到蓝牙,必现。原因在广播初始化中/**@b

白菜的专栏 1422

nrf51822 sdk12.2空中升级笔记

本人亲测的nrf51822空中升级步骤,测试通过,使用官方sdk12.2源码编译,官方升级工具

解决NRF52832正常添加OTA代码后无法进入app一直运行在bootloader的问题!

程序一直运行在bootloader,蓝牙名称显示 DFUTARG ,必须要进行一次OTA才进入APP

weixin_52668204的博客 920

SDK12 DFU bootloader

SDK12 的 OTA 相对于之前 SDK8~SDK11 版本的 OTA 有些不一样, 感觉一些安装的流程相对麻烦。 而且 bootloader 例程里面还加了一些 ECC 之类的东西。 下面讲一下我学习 SDK12 OTA 过程遇到的一些问题以及软件的安装等东西。

nrf51822 SDk12.3 DFU空中升级中添加看门狗WDT

为了避免程序死机,嵌入式软件开发通常会在应用程序中添加看门狗。nordic SDK12.3中,空中升级未添加重启时间设置,就更需要通过看门狗来实现重启功能。本文讲解了如何在nrf51822 SDk12.3 DFU空中升级中添加看门狗WDT

NRF51822 SDK12.3中文件合并升级出现问题-confilct

SDK12.3下对nrf51822进行dfu升级验证: 三个程序文件如下: E:\blue_dfu\nRF5_SDK_12.3.0_d7731ad\components\softdevice\s130\hex\s130_nrf51_2.0.1_softdevice.hex E:\blue_dfu\nRF5_SDK_12.3.0_d7731ad\examples\dfu\bootloader_...

微微一笑 1151

nrf51_dfu_tool:用于 nRF51822 OTA 的 DFU 工具。 https

nRF51 DFU 工具 该工具适用于 nRF51822 OTA(空中下载,SoftDevice 7.0.0)。 它基于 。 要求 Bluez(使用 V4.101 测试) python intelhex 库 用法 sudo hcitool -i hci0 lescan # Get target's address python dfu.py -f new_firmware.hex -a F9:6C:59:06:AF:27

nrf52832在SDk12.3中DFU升级工程移植步骤

最近在dfu升级这部分,用的是sdk12.3的,上网搜了一下资料,发现基本都是相关软件安装的步骤,所以,自己摸索着在一个工程上面进行移植dfu服务,也记录一下移植步骤,方便以后用的到。 好了,不说太多废话,先说工程。 在sdk12.3里面有两个工程,一个是bootloader,对应路径为:D:\nRF5_SDK_12.3.0_d7731ad\examples\dfu\bootloader_secu...

一头小笨驴的博客 2587

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 273

小白投资理财 - 解读威廉分形指标 Williams Fractals

威廉分形指标用于识别价格趋势中的关键点,帮助判断支撑位和阻力位。

wumingxiaoyao的博客 4337

NRF51822 烧录bootloader 后,需要OTA一次,才能启动App解决办法

Nordic 51822 烧录bootloader 后,需要OTA一次,才能启动App解决办法 使用nrfjprog烧写寄存器标志位 nrfjprog --memwr 0x3FC00 --val 0x011 官网解释说明如下: E.如何通过编程器(JLINK)而不是DFU对原始应用程序进行编程? 刷新引导加载程序后,下一步是通过引导加载程序DFU模...

丨晋丨 2497

水文模型新手必看:用SWAT-CUP做参数率定,如何正确设置预热期、率定期和验证期?(附数据准备避坑指南)

本文详细介绍了使用SWAT-CUP进行水文模型参数率定的完整流程,重点解析了预热期、率定期和验证期的正确设置方法,并提供了数据准备的避坑指南。通过实操步骤和常见问题解决方案,帮助新手快速掌握SWAT-CUP参数率定的核心技巧,提升水文模型模拟精度。

weixin_26875109的博客 373

解决方法:nRF5_SDK_12.3.0工程编译报错nrf_erratas.h(39):error

一、问题 打开 nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_beacon\pca10028\s130\arm5_no_packs\ble_app_beacon_pca10028_s130,进行编译。 报出以下错误: 二、解决方法 安装 NordicSemiconductor.nRF_DeviceFamilyPack.8.5.0.pack 链接:https://pan.baidu.com/s/1eW3LsLwjWVF-bNDxaE4WVQ

Leung的博客 1203

WSOLA原理及matlab仿真

WSOLA原理 对于 OLA 算法来说,常常无法保持原信号中的周期性结构,在帧裁剪的过程中,不能保证每一个帧都能覆盖完整周期并保证其相位对齐,会产生相位跳跃失真。 为保证**基频不变**,就要使用 WSOLA 算法。 WSOLA 并不直接在 Ha 处找一帧进行直接拼接,而是在一个区间内寻找与理想帧最接近的一帧进行叠加。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8a234f4fde104fc69a9f3ddb7bcf3014.png?x-oss-process=ima

ManiacLook的博客 3214

Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新)

自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-优快云博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-优快云博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-优快云博客_qt实现好看侧边栏。...

抵抗时间扭曲,坚持做一件有意义的事 2万+

nrf51822_xxaa OTA升级教程

nrf51822_xxaa OTA升级教程

FarWalker的博客 1万+

rk3568 Android12 增加 USB HOST 模式开关(二)

将原有 USB-C 改为 USB-A,并在设置中增加USB工作模式开关可以让用户选择USB端口的功能模式,例如充电、文件传输、或MIDI设备。用户能够灵活管理设备的连接方式,优化数据传输和设备兼容性。

weixin_35723192的博客 734

NORDIC一直处于DFU的原因分析----QQ群:836952992

    uint8_t  m_boot_settings[CODE_PAGE_SIZE]    __attribute__((at(BOOTLOADER_SETTINGS_ADDRESS))) __attribute__((used))={BANK_VALID_APP};   uint8_t  m_boot_settings[CODE_PAGE_SIZE]    __attribute...

u010340896的博客 1059

YOLOv11改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

本文记录的是改进YOLOv11的损失函数,将其替换成Slide Loss,并详细说明了优化原因,注意事项等。Slide Loss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本相对稀疏,可尝试使用Slide Loss来提高模型在处理复杂样本时的性能。

Limiiiing的博客 4568

nRF52832——大量数据传输时导致蓝牙断开连接,且无法被搜索到的解决方案(广播参数的设置、程序设计方法)

有时蓝牙通信单次发送数据量较大,且连续发送多次的时候,你会发现蓝牙就会出现异常,可能运行30min,40min,或者1h后,蓝牙就不能传输数据了,且无法被搜索到,用主机扫描蓝牙时可能会提示类似这样的DEBUG信息:bta_gattc_mark_bg_conn unable to find the bg connection mask for bd_addr=xx:xx:xx:xx:xx:xx。

数字世界 万物互联 2004

NRF51822 SDK12的空中升级

nrf51822 SDK12版本及以后的版本的空中升级是加密的,这种加密的好处就是,有一对密钥来实现加解密。公钥添加在BootLoader程序中,源文件为dfu_public_key.c,私钥用于加密要进行升级的.hex文件,通过官方的软件最终生成private.key的私钥文件和dfu_public_key.c的公钥文件,有了这一对密钥,需要升级的文件才能被设备识别解析,否则即便任何人拿到了升级

技术搬运工 5881

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

nrf51822 SDK12.3.0 电源管理官方例程

一、实验平台: 协议栈版本:nRF5_SDK_12.3.0_d7731ad 例程所在位置:nRF5_SDK_12.3.0_d7731ad\examples\peripheral\pwr_mgmt 官方解释:http://infocenter.nordicsemi.com/index.jsp 二、流程解释 根据官方的测试流程:按下BUTTON1后,进入bsp_evt_handler()

yogach的博客 5908

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

NRF51系列dfu升级(适用于SDK12以前的版本)

升级工具准备(windows 64位) 用于将协议栈,用户程序,bootloader三个hex文档合并成一个hex文档,以及快速烧录,工具软件名称为nRF5x-Command-Line-Tools_9_6_0_Installer.exe 用于将用户程序从hex档转成bin文件,方便快速制作dfu升级包提供的bin文件使用,工具软件名称为hex2bin.exe 用于...

mygod2008ok的专栏 2100

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

nrf51822/52832学习笔记之官方DFU过程梳理

定义一个DFU 服务 #ifdef BLE_DFU_APP_SUPPORT     /** @snippet [DFU BLE Service initialization] */     ble_dfu_init_t   dfus_init;     // Initialize the Device Firmware Update Service.     memset(&

一颗偏执的心 2万+
上一篇: 51822QFAA芯片分析
下一篇: nordic dfu python-3.7.0.exe 使用nrfutil.exe生成秘钥 问题
mdevi
博客等级 码龄17年 36粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值