0


nordic 安全式DFU升级步骤

一、通过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升级

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

本文转载自: https://blog.csdn.net/zj352723725/article/details/137880076
版权归原作者 zj352723725 所有, 如有侵权,请联系我们删除。

“nordic 安全式DFU升级步骤”的评论:

还没有评论