dfu : device firmware update 即韌體公升級
dfu可分為兩種:
dual bank
: 先接收後公升級. 優點:公升級失敗可回滾 缺點:需要額外空間
single bank
: 邊接收邊公升級. 優點: 節約空間 缺點:如果出錯不能回滾版本
最新sdk(v15.3.0)會根據當前**空間,自動選擇使用dual bank
或single 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的處理器...