NRF52 SDK15 DFU加密操作与Hex文件制作指南

需积分: 9 0 下载量 50 浏览量 更新于2024-09-03 收藏 2KB TXT 举报
"SDK15加密DFU操作.txt" 在NRF52系列芯片,特别是nRF52832上进行固件更新(DFU,Device Firmware Upgrade)操作时,通常会涉及到SDK15版本的DFU流程。本文档详细介绍了如何通过Hex文件进行安全的DFU操作,包括编译、制作Hex文件以及注意事项。 首先,我们需要准备一些必要的库文件。对于SDK15,这里提到了`micro-ecc`库,它用于加密和签名操作。将`micro-ecc.rar`解压缩到`nRF5_SDK_14.0.0_3bcc1f7\external\micro-ecc`目录下,并将生成的`micro_ecc_lib_nrf52.lib`文件分别复制到`nrf52hf_keil\armgcc`和`nrf52nf_keil\armgcc`子目录中。这一步是为了支持NRF52设备的椭圆曲线加密算法。 接下来,生成公钥和私钥。执行`1_privkey.bat`脚本,该脚本用于生成`dfu_public_key.c`文件,其中包含了DFU过程中的公钥。如果已经存在`priv.pem`文件,则直接使用;否则,该脚本将生成一个新的私钥。 固件的Hex文件包括三部分:SoftDevice(软件设备)、Bootloader和Application。SoftDevice是Nordic提供的蓝牙低功耗(BLE)协议栈,例如`s132_nrf52_6.1.0_softdevice.hex`。Application是用户编写的应用程序代码,如`nrf52832_xxaa.hex`。Bootloader是引导加载器,负责处理DFU过程,比如`nrf52832_xxaa_s132.hex`。为了DFU,需要创建一个包含SoftDevice、Bootloader和Application的设置Hex文件,这可以通过执行`1_make_DFU_setting_hex.bat`、`2_芊hex.bat`等脚本来完成。 在进行DFU之前,需要确保设备处于正确的模式。例如,通过设置0xFE59寄存器的值为0x01来进入DFU模式。此外,Bootloader和应用程序中都可能需要特定的初始化代码。Bootloader中,需要设置进入DFU模式的方法,可能是通过按钮触发(NRF_BL_DFU_ENTER_METHOD_BUTTON),或者在应用程序中调用`ble_dfu_buttonless_async_svci_init()`实现无按钮的DFU启动。 最后,固件的分发可以通过各种方式,如HTTP服务器。用户可以通过Nordic的nRFgo Studio工具上传SoftDevice,以确保其正确性。同时,私钥的管理非常重要,需要妥善保存和使用,以确保DFU过程的安全性。 这个文档提供了一个完整的流程,涵盖了从编译源码到制作DFU所需的全部Hex文件,再到设备的DFU操作。对于NRF52开发者来说,这是实现安全可靠DFU升级的重要指南。
2023-07-14 上传