nrf52832通过DFU升级的要点记录

1)bootloader准备

基于官方的bootloader例子程序,有2处要点。

如果不需要按键(本项目无按键),将 NRF_BL_DFU_ENTER_METHOD_BUTTON 配置为0;

生成public key 和 private key的脚本:

nrfutil keys generate private.pem

nrfutil keys display --key pk --format code private.pem --out_file public_key.c

编译通过,准备好bootloader.hex准备烧录使用。

注意:如果电路没有外置32K晶体,要修改sdk_config.h,具体操作见:

nrf52832 采用片内32K晶体配置

2)app准备

将app.hex和private.pem放在同一个目录下,运行以下脚本:

nrfutil pkg generate --hw-version 52 --application-version 1 --application app.hex --sd-req 0x101 --key-file private.pem app_dfu_package.zip

生成的app_dfu_package.zip,传输到手机上,后面DFU升级使用。

注意:--sd-req 0x101,其中的0x101是在nRFgo Studio软件里显示的SoftDevice的ID。

3)烧写方法

打开nRFgo Studio软件,选择Device manager里面的nRF5x Programming。

首先,在右面的Erase All;

其次,选择SoftDevice,烧写;

然后,选择bootloader,烧写;

4)操作过程

完成1-3后,即可打开nRF Connect手机APP,扫秒BLE设备,应该能发现名称为“DfuTarg”的设备,这就是bootloader进入了DFU状态。

连接后,在APP界面能看到DFU标志,点击,选择文件并确定,DFU升级过程即开始。


欢迎转载,本文地址: https://blog.prodrich.com/detail/44/

带着使命来到世上的你,给他人提供价值,才有价值