nordic 安全式DFU升级步骤

一、通过nrfutil工具生成密钥

shift+右键 ,选择windows powershell,在命令框中输入以下指令

生成私钥指令:nrfutil keys generate priv.pem (priv.pem就是私钥)

生成公钥指令: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文件

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个文件,所以需要分两次合并

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

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工具为例)

nrfjprog --eraseall -f NRF52 
nrfjprog --program out4t1.hex --verify -f NRF52 
nrfjprog --reset -f NRF52
nrfjprog --eraseall -f NRF52 
nrfjprog --program out4t1.hex --verify -f NRF52 
nrfjprog --reset -f NRF52

4、生成新固件zip升级包

将蓝牙广播名称修改为my_nordic_new,将编译生成的新固件命名为app_new.hex,并生成固件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

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升级

  1. 在Android版nRF Connect 中连接广播中待升级的设备,该设备名称为nordic_buttonless;
  2. 点击右上角DFU图标,选择zip升级,在弹框中找到存储在手机中的only_app_OTA.zip(步骤4之后传输到手机中);
  3. 等待DFU升级成功,DFU完成后,升级新固件,可以设备的广播名称为my_nordic_new
  • 20
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值