1. 程式人生 > >nRF52832 BLE_DFU空中升級OTA(二)編譯下載(SDK14.2.0)

nRF52832 BLE_DFU空中升級OTA(二)編譯下載(SDK14.2.0)

上一篇配置好了開發環境,現在就可以試著跑一下例程了,這裡需要兩個例程,一個是bootloader的,一個是應用程式的,其路徑分別為:

bootloader:SDK_14.2.0工程\examples\dfu\bootloader_secure_ble\pca10040\arm5_no_packs

應用程式:SDK_14.2.0工程\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs

 

這裡用到了一些工具(參考文章及下載地址http://www.cnblogs.com/iini/p/9314246.html

)下面開始步驟

1,雙擊“key_generate.bat”以生成相應的私鑰(priv.pem)和公鑰(dfu_public_key.c

key_generate.bat程式碼如下,也可以在CMD命令列輸入

::generate private key
nrfutil keys generate priv.pem
::generate public key related with private key: priv.pem
nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c

 

2,dfu_public_key.c替換目錄SDK_14.2.0工程\examples\dfu\dfu_req_下的同名檔案,這個是公鑰,寫入bootloader裡面的

3,編譯bootloader工程:SDK_14.2.0工程\examples\dfu\bootloader_secure_ble\pca10040\arm5_no_packs

4,將生成的hex改為:bootloader.hex,放入(替換)Script_SDK14_S132_nRF52832資料夾

5,編譯應用程式工程:SDK_14.2.0工程\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs

6,將生成的hex修改為:app.hex,放入(替換)Script_SDK14_S132_nRF52832資料夾

7,雙擊“settings_page_generate.bat” 生成settings.hex

settings_page_generate.bat”程式碼如下

::generate settings page for current image: app.hex
nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 2 --bl-settings-version 1 settings.hex

 

8,雙擊“mass_program.bat”來燒錄softdeviceappbootloader,自帶擦除晶片和合並hex

mass_program.bat程式碼如下

::merge bootloader and settings
mergehex.exe --merge bootloader.hex settings.hex --output bl_temp.hex
::merge bootloader, app and softdevice
mergehex.exe --merge bl_temp.hex app.hex s132_nrf52_5.0.0_softdevice.hex --output whole.hex

nrfjprog.exe --eraseall -f NRF52
nrfjprog.exe --program whole.hex --verify -f NRF52 
::the following two commands are used to enable PIN RESET          
::nrfjprog.exe --memwr 0x10001200 --val 0x00000015 --verify -f NRF52    
::nrfjprog.exe --memwr 0x10001204 --val 0x00000015 --verify -f NRF52   
nrfjprog.exe --reset -f NRF52

 

好了,到了這一步,就可以用利用nRF ConnectnRF Toolbox來連線裝置看看是否有dfu的標誌了,接下來是怎麼升級,至於升級的程式(工程)怎麼來,下一篇再介紹

 

9,將新的工程(用來升級的)編譯的hex檔案改名為app_new.hex,放入(替換)Script_SDK14_S132_nRF52832資料夾

10,雙擊“zip_generate.bat”,生成SDK14_app_s132.zip,注意這裡用到了私鑰priv.pem,私鑰要保管好哦

zip_generate.bat”程式碼如下

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

 

11,下載SDK14_app_s132.zip到手機,利用nRF ConnectnRF Toolbox升級

 

附圖

連線

 

介面

 

使能

 

進入bootloader

 

選擇升級

 

升級中