Secure DFU via BLE

 以一個帶OTA功能的Ble裝置其Memory Map的配置如圖

系統上電,PC (Program Counter)從MBR啟動,MBR將PC帶到Bootloader

Bootloader 藉由 Bootloader Settings 來判斷Application是否存在/有效,來決定要PC跳到Application

或進入DFU mode等待FW刷新



SDK提供的ble secure dfu image檔案

..\SDK\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_dfu_test_images\ble\nrf52840

sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex

一個完整的OTA Image檔 ( Nordic_Buttonless ),Ble無綁定,bootloader secure含Key(袐鑰)

buttonless (無須外部IO觸發既可進入Bootloader的Ble Application)




sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex

拆開來看的話,會由二類方式來組成,結果是一樣的;操作過程不同


第一種

𑇐 先用 Programmer 寫入 softdevice_s140.hex

  bootloader_secure_ble_debug_without_bonds_s140.hex

𑇐 然後進入bootloader透過ble寫入Application ble_app_buttonless_dfu_without_bonds_s140.zip

𑇐 在寫入Application後也會產生CRC-32寫入 Bootloader Settings 及 MBR parameters


第二種

𑇐 Application改為檔案ble_app_buttonless_dfu_without_bonds_s140_with_setting_page.hex

    這是含 Bootloader Settings及 MBR parameters的App

    所以可以由Programmer把images一次就寫入ic,無須再透過ble


🔔 依Application 另外建立BootLoader settings [LINK]


接下來操作第一種透過Ble來寫入App


操作環境

SDK:..\SDK\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_dfu_test_images\ble\nrf52840

Board : pca10056 (nRF52840-DK)

Software Tool : nRF Connect for Desktop

Tool : pca10059 (nRF52840 Dongle)


操作步驟

1. 用Programmer (nRF Connect for Desktop) 寫入檔案 

    softdevice_s140.hex 及 bootloader_secure_ble_debug_without_bonds_s140.hex


    寫入完成後IC進入bootloader,LED1及LED2恆亮,Ble裝置名 DfuTest





2. 使用pca10059並開啟 nRF Connect for Desktop > Bluetooth Low Energy

    掃瞄裝置找到 DfuTest,點擊連結裝置


3. 點擊DfuTest裝置裡的 Star Secure DFU

    選擇檔案 ble_app_buttonless_dfu_without_bonds_s140.zip (是Zip檔;不是hex)

    點擊 Start DFU




完成後系統重啟進入Application

🔔 ble_app_buttonless_dfu_without_bonds_s140.zip LED1閃爍,Ble裝置名 Nordic_Buttonless