Passion Mission Action

訊息公告

May.29.2024

如何產生執行DFU(OTA)所需的 hex/zip 檔 – 步驟說明#2 - Application

本系列的文章將會引導使用者如何在使用勁達的nRF52840系列模組編寫程式時,啟用 Secure DFU OTA(空中升級) 的功能。
 

主題:使用nRF52840架設DFU OTA功能 (以SDK版本17.1.0為例)
DFU:Device Firmware Update;裝置韌體升級
OTA:Over the air;空中升級

 

IC: nRF52840
DK: PCA10056(對應到nRF52840)
SDK: 17.1.0
SD: s140_nrf52_7.2.0_softdevice.hex
IDE: Keil C
PC: Win 10


接續上一篇 - Part A: Bootloader(文章連結請按此), 本篇會針對

Part B: Application

的主題做介紹。


Part B: Application

路徑: nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart\pca10056\s140\arm5_no_packs

在構建Application前, 在Application內與DFU相關的程式碼 & 設定皆需增加或修改:


步驟1:
A. 點開C/C++,加入3個定義,分別為:
A. BL_SETTINGS_ACCESS_ONLY
A. NRF_DFU_SVCI_ENABLED
A. NRF_DFU_TRANSPORT_BLE=1;

B1A-Add code

B. 在C/C++欄位內加入Include path(如紅框內所示)
B1B

C. 在Project內增加檔案(請參考下方圖1 & 圖2)
A. 同時新增2個Group(nRF_DFU與nRF_SVC,請參照
下方圖3 & 圖4,按右鍵add group)。

螢幕擷取畫面 2024-05-28 180927

D. Application的main.c檔(..\examples\ble_peripheral\ble_app_uart\main.c)內
須增加下列幾張圖內的程式碼。

(程式碼請參考..\examples\ble_peripheral\ ble_app_buttonless_dfu內的main.c)
B1D-1CHI
B1D-2CHI
B1D-3B1D-4

E. Application的sdk_config.h檔
(路徑:..\examples\ble_peripheral\ble_app_uart\pca10056\s140\config\ sdk_config.h)內容需修改。

B1E

F. 為能順利執行後續的DFU功能,Target內的IRAM1值要做修正:

B1F

如上圖,在檢查 *p_app_ram_start 值後,需在Target欄位內將IRAM1原始值 0x20002AE8 0x3D518 修改成正確值 020002AF8 03D508,後續程式才能正確執行。(如下圖)
B1F-2


G. 重新構建Application的程式碼,並得到 nrf52840_xxaa.hex 檔案。

 



步驟2:產生bootloader的setting檔,檔名:nrf52840_bootloader_secure_settings.hex
A. 到DOS的下列路徑:..\Python27\Scripts
B. 執行以下指令:
nrfutil settings generate --family NRF52840 --application
nrf52840_xxaa.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 nrf52840_bootloader_secure_settings.hex --no-backup
※註:指令需包含:步驟1所構建出的Application hex檔 - 
nrf52840_xxaa.hex

B3

 

※本系列第三篇 - Part C: Combining and merging built files 的文章預計於下周(2024年6月5日刊登)。

 


Technical guidelines provided by R&D Manager: Mr. MW Lee
Edited by Sales Manager: Mr. Tony Yin

Raytac Corporation 勁達國際電子股份有限公司  A company of Abietec
Bluetooth & WiFi module maker based on Nordic nRF54, nRF53, nRF52, nRF7002 solution
BT5.4 &BT5.3 & BT5.2 & BT5.1 Qualified, FCC/IC/CE/Telec/KC/RCM/SRRC/NCC Pre-Certified.
Bluetooth Solution: nRF54, nRF5340, nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, nRF51822
WiFi Solution: nRF7002
http://www.raytac.com
email: service@raytac.com