原文连接:NRF52832空中升级DFU - silencehuan - 博客园
在原文的基础上做了一些细节的修改
进阶篇:详解蓝牙空中升级(BLE OTA)原理与步骤_Zoolybo的博客-CSDN博客
1.工具一览
- gcc-arm-none-eabi编译环境:GCC编译环境
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
- mingw 平台(win版的Linux命令行)
Download MinGW - Minimalist GNU for Windows from SourceForge.net
- micro-ecc-master源码
GitHub - kmackay/micro-ecc: ECDH and ECDSA for 8-bit, 32-bit, and 64-bit processors.
- python 安装文件
- pc-nrfutil
GitHub - NordicSemiconductor/pc-nrfutil: nrfutil python library and command line client
- nrfgo-studio
- nrf connect app
-
2.安装指导
Secure DFU需要micro-ecc库进行签名验证,需要micro_ecc_lib_nrf52.lib,需要使用GCC编译器生成。
2.1 gcc-arm-none-eabi安装
gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe,直接双击安装,注意使用默认安装路径,不要修改
-
安装完成
-
2.2 mingw 平台安装
双击mingw-get-setup.exe,点击install进行安装,选择默认路径
- 安装好后弹出package包安装界面MinGW Installation Manager,按下图所示进行选择
-
选择后,点击InstallationàApply Changes
-
2.3 mingw 环境变量配置
安装好MinGW,需要在系统环境变量Path添加路径
-
平台安装验证:
修改好系统环境变量后,重启电脑,运行命令提示符,如下所示则安装成功
-
2.4 micro-ecc库生成
需要生成micro_ecc_lib_nrf52.lib,也可直接使用已经编译好的文件micro-ecc_sdk14_15_newer.rar解压后替换micro-ecc文件夹。
1.将micro-ecc-master源码复制到SDK目录下的external\micro-ecc中,并重命名为micro-ecc
-
2.打开MinGW的命令行msys.bat
-
在批处理框里输入要生成库的gcc算法路径
cd E:/keil_workspace/NORDIC/nRF5_SDK_15.0.0_a53641a/external/micro-ecc/nrf52hf_keil/armgcc
-
之后输入make
-
出现错误后,按照提示修改gcc的Makefile.windows文件如下
-
将gcc编译器路径更换为实际路径
-
注:该处我实际操作时文件内容如下
GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Arm Embedded Toolchain/9 2020-q2-update/bin/
GNU_VERSION := 9.3.1
GNU_PREFIX := arm-none-eabi只需将C:/Program Files (x86)/GNU Arm Embedded Toolchain/9 2020-q2-update/bin/这个路径修改为本机bin文件夹的真实路径即可。
#GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update/bin/GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q3/bin/
#GNU_VERSION := 6.3.1
GNU_VERSION := 6.3.0
GNU_PREFIX := arm-none-eabi
修改之后,编译OK
2.5 python 安装
-
注:新版本的python实测也可以用,实测python3.7.8实际操作下来也是没有问题的
-
1.双击python-2.7.14.amd64.msi安装,注意使用默认路径,安装过程使用默认插件配置直接一直next。
2.系统环境变量添加
-
3.安装验证
修改环境变量后重启电脑,命令行输入python -V
-
2.6 nrfutil工具安装
需要联网
打开命令行,输入pip install nrfutil安装nrfutil
-
安装完成后,输入nrfutil version,如下则表示安装成功