nordic 安全式DFU升级步骤

万万哇  金牌会员 | 2024-6-19 08:32:02 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 839|帖子 839|积分 2517

一、通过nrfutil工具天生密钥
shift+右键 ,选择windows powershell,在命令框中输入以下指令
  1. 生成私钥指令:nrfutil keys generate priv.pem (priv.pem就是私钥)
  2. 生成公钥指令:nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c (dfu_public_key.c就是公钥)
复制代码
nrf5_sdk_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\dfu路径下把新天生的dfu_public_key.c替换
二、天生bootloader.hex和app.hex
以KEIL工程为例打开路径\nrf5_sdk_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_bootloader\pca10056_s140_ble\arm5_no_packs,重新编译,把secure_bootloader_ble_s140_pca10056.hex文件改名为bootloader.hex;
打开路径\nrf5_sdk_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_buttonless_dfu\pca10056\s140\arm5_no_packs ,重新编译,把ble_app_buttonless_dfu_pca10056_s140.hex文件改名为app.hex
三、合并文件并烧写
新建dfu_file文件夹,把上述的priv.pem、bootloader.hex、app.hex、s140_nrf52_7.2.0_softdevice.hex(此工程对应的蓝牙协议栈文件)文件全部添入其中,如下图1 ,在此文件夹窗口打开windows Powershell窗口

1、天生settings文件
  1. nrfutil settings generate --family NRF52840 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 settings.hex
复制代码
nrfutil settings generate --family NRF52840 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 settings.hex
nrfutil settings generate指令可在后面添加 --help查看具体介绍

2、合并应用程序
mergehex指令格式:mergehex -m xxx1.hex xxx2.hex xxx3.hex -o xxxout.hex,mergehex指令一次性只能合并3个文件,以是必要分两次合并
  1. mergehex -m s140_nrf52_7.2.0_softdevice.hex bootloader.hex app.hex -o out3t1.hex
  2. mergehex -m out3t1.hex settings.hex -o out4t1.hex
复制代码
mergehex -m s140_nrf52_7.2.0_softdevice.hex bootloader.hex app.hex -o out3t1.hex
mergehex -m out3t1.hex settings.hex -o out4t1.hex
如图2所示

mergehex指令可通过mergehex --help查看具体介绍

3、烧写应用程序(以nrfjprog工具为例)
  1. nrfjprog --eraseall -f NRF52
  2. nrfjprog --program out4t1.hex --verify -f NRF52
  3. nrfjprog --reset -f NRF52
复制代码
  1. nrfjprog --eraseall -f NRF52
  2. nrfjprog --program out4t1.hex --verify -f NRF52
  3. nrfjprog --reset -f NRF52
复制代码
4、天生新固件zip升级包
将蓝牙广播名称修改为my_nordic_new,将编译天生的新固件命名为app_new.hex,并天生固件zip升级包
  1. nrfutil pkg generate --application app_new.hex --application-version 2 --hw-version 52 --sd-req 0x0100 --key-file priv.pem only_app_OTA.zip
复制代码
nrfutil pkg generate --application app_new.hex --application-version 2 --hw-version 52 --sd-req 0x0100 --key-file priv.pem only_app_OTA.zip
如图3所示:

nrfutil pkg generate指令格式可通过 nrfutil pkg generate --help查看具体介绍
指令中0x0100是对应的softdevice的ID信息,可通过 nrfutil pkg generate --help 查看具体介绍

5、DFU升级

  • 在Android版nRF Connect 中连接广播中待升级的设备,该设备名称为nordic_buttonless;
  • 点击右上角DFU图标,选择zip升级,在弹框中找到存储在手机中的only_app_OTA.zip(步骤4之后传输得手机中);
  • 等候DFU升级成功,DFU完成后,升级新固件,可以设备的广播名称为my_nordic_new

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表