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”來燒錄softdevice,app和bootloader,自帶擦除晶片和合並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 Connect或nRF 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 Connect或nRF Toolbox升級
附圖
連線
介面
使能
進入bootloader
選擇升級
升級中