nRF52832開發記錄 DFU

2021-10-10 07:38:05 字數 1245 閱讀 1183

dfu : device firmware update 即韌體公升級

dfu可分為兩種:

dual bank: 先接收後公升級. 優點:公升級失敗可回滾 缺點:需要額外空間

single bank: 邊接收邊公升級. 優點: 節約空間 缺點:如果出錯不能回滾版本

最新sdk(v15.3.0)會根據當前**空間,自動選擇使用dual banksingle bank

nordic 支援三種公升級方式: uart, usb, ble

下面為使用流程:

nordic有兩種bootloader: 開放式和安全式

開放式不做安全校驗

安全式要做安全校驗,只有校驗通過的才生效

加密bootloader會使用到micro-ecc演算法,這需要我們手動編譯並生成micro-ecc演算法庫

確保本機裝有git和gcc

進入資料夾sdk根目錄\external\micro-ecc執行build_all指令碼即可自動生成micro-ecc演算法庫

例程位置:sdk根目錄\examples\dfu\secure_bootloader

安全式bootloader需要key

私鑰生成命令:nrfutil keys generate priv.pem

公鑰生成命令:nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c

priv.pem就是私鑰, 名字可改,生成公升級包時需要使用此私鑰,必需妥善保管,否則將永遠不能公升級

dfu_public_key.c就是公鑰

將生成的公鑰dfu_public_key.c覆蓋sdk根目錄\examples\dfu下的同名檔案,並生成bootloader.hex

生成setting

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

官方提供android 及 ios平台的dfu庫:

nRF52832 開發記錄(二) DFU 功能

nrf 官方提供了 dfu device firmware upgrade 裝置韌體公升級的例程,在專案中使用需要自己生成金鑰用於加解密韌體。本工程基於 nrf5 sdk 16.0.0 分別安裝以上的軟體,新增這兩項到系統環境變數 c program files x86 gnuwin32 c pro...

nrf52832增加串列埠功能

1,增加 define uart tx buf size 256 uart tx buffer size.define uart rx buf size 256 uart rx buffer size.void uart write uint8 t pdata,uint8 t length 2,ma...

NRF51822和NRF52832的簡單介紹

1 功耗方面 nrf52832更是在nrf51822的基礎上簡直將功耗降低了一半 2 更好的rf體現,主要是發射功率和接納敏感度更好。發射功率,他哥倆適當,都是 4dbm nrf52832的靈敏度是 96dbm,nrf51822的接納靈敏度是 93dbm。3 更強的處理才能,nrf52832的處理器...