nrf52832串口DFU 升级

串口DFU 升级

sdk版本:SDK_v13.1.0

DFU:固件更新(Device Firmware Update)

bootloader模块是为了实现应用程序的加载和启动,另外还可以拓展加密功能、DFU、自定义功能。

实现设备固件的升级可使用无线方式(OTA)或有线方式。本文主要说明使用串口有线方式完成固件升级。

sdk中为用户提供了bootloader示例其中包括安全式/开放式蓝牙bootloader、安全式ANT bootloader、安全式串口bootloader,bootloaer路径:nRF5_SDK_13.1.0_7ca7556\examples\dfu

nrf52 bootloader启动过程:

(1)加载softdevice

(2)初始化softdevice

(3)MBR引导的bootloader地址从UICR寄存器获取检查softdevice并读取UICR寄存器的值,判断是否下载bootloader,如果没有bootloader系统执行应用程序,如果有bootloader,MBR引导执行bootloader,然后bootloader决定是执行引导应用程序还是其他。

 

备注:

nrf52启动后,MBR负责开启引导,如果bootloader 已经下载,执行bootloader。

 

MBR引导的bootloader地址从UICR寄存器获取。 you must set UICR.BOOTLOADERADDR to the correct value when you program the bootloader.这句话了解一下就可以,因为nrfprog和nrfgostudio底层已经搞定了, 当我们用nrfprog和nrfgostudio下载bootloader时,软件自动写好UICR_BOOTLOADER_START_ADDRESS。

bootloader 模块组成架构

 

(1)nrf_bootloader

功能:引导应用程序。上图自上而下是包含关系。

(2)nrf_dfu

功能:引导接受设备固件并启动传输。

被动进入dfu模式:检测没有有效应用程序

主动进入dfu 模式:Button、GPREGRET寄存器设置特定的值、settings page配置

(3)nrf_crypto

功能:加密库为固件升级加密(安全式),用户通过nrfutil生成公钥和私钥完成加密。

 

 

flash内存配置

如下图:当添加bootloader,softdevice,bootloader settings application 时要知道他们不同的内存位置,在使用j-flash,mdk下载时注意。如果使用nrfgo_studio活nrfutil下载时,python底层已经帮你设置好。

 

命令行

(1)nrfutil生成公私钥对

生成私钥:

nrfutil keys generate priv.pem

生成公钥:

nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c 

(2)生成micro-ecc算法库

安装git和gcc编译器,如何操作网上一堆

(3)生成bootloader_setting文件:

nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 2 settings.hex

app.hex:初始原固件

(4)合成一个包

mergehex --merge bootloader.hex settings.hex --output bl_temp.hex

mergehex --merge bl_temp.hex app.hex s132_nrf52_4.0.2_softdevice.hex --output whole.hex

(5)生成新固件的zip包,通过串口将zip包更新到芯片。

nrfutil pkg generate --application appnew.hex --application-version 3 --hw-version 52 --sd-req 0x98 --key-file priv.pem SDK_app_s132.zip

 

(6)清空内存-下载-重启

nrfjprog --eraseall -f NRF52

nrfjprog --program whole.hex --verify -f NRF52

nrfjprog --reset -f NRF52

 

(7)升级传输固件

nrfutil dfu serial -pkg SDK_app_s132.zip -p COM29 -fc 1-b 115200

 

革命尚未成功,同志还需努力。继续学习:qq:2013462220

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nRF52832串口DFU是指使用Nordic公司为其nRF52832芯片提供的串口(USART)接口进行固件升级的一种方法。串口DFU代表数据固件升级(Data Firmware Update),通过串口接口将新的固件传输到nRF52832芯片中,实现固件升级的功能。 nRF52832是一款低功耗、高集成度的蓝牙低功耗(BLE)系统级芯片,适用于物联网和低功耗应用。在开发过程中,固件升级是一个重要的环节,可以使产品保持最新的功能和性能,修复已知的漏洞和错误。 nRF52832串口DFU的工作原理是通过将新的固件文件传输到nRF52832芯片的内部存储器进行更新。首先,在计算机上安装nRF52832串口DFU工具,并连接串口线将计算机与nRF52832芯片连接起来。然后,选择要升级的固件文件,并发送到串口接口。nRF52832芯片会接收到固件文件并将其存储到内部存储器中。最后,芯片重启并加载新的固件,完成固件升级过程。 使用nRF52832串口DFU进行固件升级具有很多优点。首先,它可以通过串口线直接从计算机传输固件文件,无需额外的硬件设备。其次,升级过程简单方便,不需要拆卸设备或更换芯片。此外,nRF52832芯片的低功耗特性使得固件升级过程中能够保持设备的低功耗工作状态。 总的来说,nRF52832串口DFU是一种方便、高效的固件升级方法,可以帮助开发人员和制造商保持产品的最新性能和功能,并提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值