nRF51822 支援固件空中升級(下稱OTA)服務,本篇說明如何製作升級用 .zip 檔案
(關於什麼是DFU服務、如何添加,請參考以下)
第一次實作,請按照step慢慢做完
加速方法,請直接跳到 Step 5
環境:
- 蕊片:nRF51822EK
- bootloader: dual bank s110 bootloader
- softdevice: s110
- windows 7
- IDE: Keil version 5
- Master control panel (for PC) 3.10.0.14
- nRF Tools 7.5.2
Step 0.
被升級的裝置,必須燒寫與softdevice相同版本的 bootloader
如本次我使用的是 S110
Step 1.
在IDE裡面 build application,之後 \_build 會產生 .axf檔案
默認名稱: nrf51422_xxac_s110.axf
(此名稱可在 project>options 裡面修改)
Step 2.
將此 .axf檔案複製到 Keil_v5\ARM\ARMCC\bin資料夾
確認這個資料夾裡面有一個fromelf.exe
(如果是使用 Keil_v4 相同的執行檔是 hex2bin.exe)
Step 3.
打開Command line,輸入:
cd C:\Keil_v5\ARM\ARMCC\bin\ ::進入資料夾
fromelf.exe nRF51422_xxac_s110.axf --output nRF51422_xxac_s110.bin --bin --output nRF51422_xxac_s110.bin --bin
nRF51422_xxac_s110.axf 即 .axf 檔的名稱
nRF51422_xxac_s110.bin 可替換成其他自訂名稱
隨後資料夾內會產生 nRF51422_xxac_s110.bin檔案
複製此檔案到
C:\Program Files (x86)\Nordic Semiconductor\Master Control Panel\3.10.0.14\nrf\
step 4.
此資料夾內有 nrfutil.exe,如果沒有,請重新安裝Master Control Panel 最新版本
打開Command line, 輸入:
cd C:\Program Files (x86)\Nordic Semiconductor\Master Control Panel\3.10.0.14\nrf\
nrfutil.exe dfu genpkg --nRF51422_xxac_s110.bin --application-version 0xFFFFFFFF --dev-revision 0xFFFF --dev-type 0xFFFF --sd-req 0x4f,0x5a,0x64 nRF51422_xxac_s110.zip
(指令行中的參數,與 .zip內的 INIT file有關,可參閱)
Step 5.製作批次檔加速此流程
請先找到
- nrf51422_xxac_s110.axf
- fromelf.exe
- nrfutil.exe
的相對位置
Step 6.建立空白txt檔案
輸入:
::分別可改為自定的檔案名稱
:: " "內輸入相對位置
SET zipName=nrf51422_xxac_s110
SET binName=nrf51422_xxac_s110
"C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe" ..\pca10028\s110\arm5\_build\nrf51422_xxac_s110.axf --output %binName%.bin --bin --output %binName%.bin --bin
"C:\Program Files (x86)\Nordic Semiconductor\Master Control Panel\3.10.0.14\nrf\nrfutil.exe" dfu genpkg --application %binName%.bin --application-version 0xFFFFFFFF --dev-revision 0xFFFF --dev-type 0xFFFF --sd-req 0x4f,0x5a,0x64 %zipName%.zip
SET zipName=
SET binName=
::歸零
Step 7.將txt的副檔名 改為.bat
Step 8. 將.zip 檔案放入DFU主機
(這邊介紹的是用Android市場 nrf Connect 應用程式升級,
另外MacBook 有支援用 Master Control Panel (for Mac) 進行空中升級,此不作討論)
點選 DFU 選項
Select File > .zip file> 選擇檔案