TorryLong

博客园 首页 新随笔 联系 订阅 管理

私钥生成命令: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就是公钥)
大家务必要保存好私钥priv.pem,以后每次升级新固件时,都会通过这个私钥对它进行签名,一旦priv.pem丢失或者被暴露,DFU将无法进行或者变得不安全

52810的升级命令
nrfutil settings generate --family NRF52810 --application app10.hex --application-version 1 --bootloader-version 1 --bl-settings-version 2 settings10.hex
mergehex.exe --merge bootloader10.hex settings10.hex --output b1_temp10.hex
mergehex.exe --merge b1_temp10.hex app10.hex s112_nrf52_6.1.1_softdevice.hex --output whole10.hex

nrfjprog --eraseall -f NRF52810
nrfjprog --program whole.hex --verify -f NRF52810
nrfjprog --reset -f NRF52810

nrfutil pkg generate --application app_new.hex --application-version 2 --hw-version 52 --sd-req 0xB8 --key-file priv.pem SDK153_app_s112.zip

nrfutil pkg generate --help 查看ID

52832的升级命令
nrfutil pkg generate --application app32_new.hex --application-version 3 --hw-version 52 --sd-req 0xB7 --key-file priv.pem SDK153_app_s132.zip

nrfutil settings generate --family NRF52 --application app32_new.hex --application-version 0 --bootloader-version 0 --bl-settings-version 2 settings.hex
mergehex.exe --merge bootloader32.hex settings.hex --output b1_temp.hex
mergehex.exe --merge b1_temp.hex app32_new.hex s132_nrf52_6.1.1_softdevice.hex --output whole32.hex


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

 


1. generate private key nrfutil keys generate priv.pem

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

3. put dfu_public_key.c to the folder nRF5_SDK_15.3.0_59ac345\examples\dfu

4. compile bootloader

5. prepare bootloader setting page (the application version and the CRC, overwrite the default bootloader setting )
nrfutil settings generate --family NRF52810 --application app10.hex --application-version 0 --bootloader-version 0 --bl-settings-version 2 bootloader_setting.hex

6. mergehex softdevice, bootloader, bootloader setting page.
mergehex -m s112_nrf52_6.1.1_softdevice.hex bootloader_setting.hex bootloader10.hex -o sd_set_boot.hex

7. merge mergehex softdevice, bootloader, bootloader setting page and app to whole
mergehex -m sd_set_boot.hex app10.hex -o bat_whole.hex

8. erase device and flash bat_whole.hex to device( including softdevice, bootloader, bootloader setting page and app )
nrfjprog.exe --eraseall -f NRF52nrfjprog.exe --program bat_whole.hex --verify -f NRF52

9. generate dfu package
nrfutil.exe pkg generate --application bat_app.hex --application-version 1 --hw-version 52 --sd-req 0xB8 --key-file priv.pem bat_app_dfu_pge.zip

10.connect device with PC or mobile app------do DFU for the detail https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/getting-started-with-nordics-secure-dfu-bootloader

posted on 2022-04-09 09:33  TorryLong  阅读(334)  评论(0编辑  收藏  举报