2017年1月5日 星期四

nRF51822 空中升級 .zip壓縮/製作

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,輸入:

1
2
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, 輸入:

1
2
3
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檔案

輸入:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
::分別可改為自定的檔案名稱
:: " "內輸入相對位置
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> 選擇檔案


沒有留言:

張貼留言