NRF52840 DFU升級(一): 按鍵升級

參考文獻:

Nordic官方博客 《Getting started with Nordic's Secure DFU bootloader, a step by step guide》

小潘大神 《SDK12.0 nrf52832 空中升級詳細步驟》

本文簡要梳理總體的按鍵升級流程,更多細節請參考上述兩個文獻。

相關文章:《NRF52840 DFU升級(二):Hex文件打包》

                  《NRF52840 DFU升級(三) : Buttonless 升級》

                  《NRF52840 DFU升級(四):GPREGRET標誌位升級》

1.  下載Nordic SDK

下載地址:http://developer.nordicsemi.com/nRF5_SDK/

選擇自己平臺的SDK版本,此處選擇NRF52840對應的  nRF5_SDK_15.2.0_9412b96.zip

2.  安裝GCC compiler toolchain for ARM

查看需要安裝的GCC版本

在SDK的components/toolchain/gcc/Makefile.windows中定義了GCC的版本和安裝路徑

GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update/bin/
GNU_VERSION := 6.3.1
GNU_PREFIX := arm-none-eabi

直接到下載GNU頁面https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads選擇對應的版本

3. 安裝WinGW

下載頁面:https://osdn.net/projects/mingw/releases/  選擇C與C++相關的編譯器

將WinGW/bin添加到環境變量,然後執行

mingw-get install gcc g++ mingw32-make

然後將mingw32-make.exe 改名爲make.exe

4. 編譯micro-ecc

micro-ecc 下載地址:

https://github.com/kmackay/micro-ecc

下 載 ecc 的 zip 源 碼 復 制 到 \external\micro-ecc 目 錄 下 ,
micro-ecc-master 改名爲 micro-ecc, 並解壓文件。

然後到nrf52hf_armgcc 以及 nrf52nf_armgcc 路徑下執行make編譯

5. 生成KEY

5.1  下載nrfutil

下載地址: https://github.com/NordicSemiconductor/pc-nrfutil/releases,並將nrfutil 所在的路徑添加到環境變量,方便使用

5.2   生成Private Key

nrfutil keys generate private.key

private key用於APP部分打包爲OTA固件

5.3 生成Public Key

在prvate key的基礎上生成public key.c , 並改名爲 dfu_public_key.c 添加到Bootloader工程中

nrfutil keys display --key pk --format code private.key --out_file public_key.c

6. 編譯bootloader

上述工作都做完以後,就可以直接編譯Bootloader,並燒寫到目標板中,(需要首先確認SoftDevice已寫入),首先通過nrfgo燒寫softdevice, 然後通過Keil燒寫bootloader

7. 生成OTA升級包

將應用程序的hex文件與private key放在相同目錄下,執行

nrfutil pkg generate --hw-version 52 --application-version 1 --application nrf52840_xxaa.hex --sd-req 0xae --key-file private.key app_dfu_package.zip

 

8. 安裝nrf Connect

下載地址: https://github.com/NordicSemiconductor/Android-nRF-Connect/releases,使用最新版本,注意舊版本可能無法進行升級。

已經寫入Bootloader的情況下,默認按下BTN4 復位設備會進入Bootloader, 然後使用nrf Connect 進行升級。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章