Sdk:15.0
文件路径:
C:\Users\pc\Desktop\nRF5_SDK_15.0.0_a53641a\examples\dfu\secure_bootloader\pca10040_ble\arm5_no_packs
编译出现如下错误
解决方法:
1、 到该链接下,下载nordic提供的uECC相关文件https://github.com/kmackay/micro-ecc
2、 把文件解压,放入到sdk的micro-ecc的文件路径下
C:\Users\pc\Desktop\\nRF5_SDK_15.0.0_a53641a\external\micro-ecc
编译解决缺少uECC.h文件问题,接着出现第二个问题,缺少有效的公匙。nRF52832的bootloaer里有一个算法校验,公匙和私匙要配对,才能完成升级。按照编译提示,需要重新生成一个公匙
解决方法:
1、 共匙是根据私匙生成,所以在生成共匙之前,需要先生成私匙
2、 官方生成key的方法
Please see https://github.com/NordicSemiconductor/pc-nrfutil/blob/master/README.mdto generate it"
3、根据官方的文档重新整理,有2个文件
3、打开私匙文件,点击bat文件,生成private_key.pem
4、把private_key.pem,copy到生成共匙文件里,点击bat,生成dfu_public_key.c
5、打开dfu_public_key.c,把里面的生成的共匙数组,复制到刚才编译提示错误的地方
编译解决缺少共匙的问题,接着提示缺少micro_ecc_lib_nrf52.lib
not open file..\..\..\..\..\external\micro-ecc\nrf52hf_keil\armgcc\micro_ecc_lib_nrf52.lib:No such file or directory
解决该问题比较繁琐,需要下载一些软件来联合编译uECC,生成mirco-ecc的lib
1、 6-2017-q2-update of the GCC compiler toolchainfor ARM下载路径
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads/6-2017-q2-update
软件安装好,需要把安装路径下bin的路径,添加到环境变量中,根据自己安装的路径找到添加C:\ProgramFiles (x86)\GNU Tools ARM Embedded\6 2017-q2-update\bin
2、安装make,下载路径https://www.gnu.org/software/make/
软件安装好,需要把安装路径下bin的路径,添加到环境变量中,根据自己安装的路径找到添加C:\ProgramFiles (x86)\GnuWin32\bin
3、安装git,下载路径https://git-scm.com/
软件安装好,需要把安装路径下bin的路径,添加到环境变量中,根据自己安装的路径找到添加C:\ProgramFiles\Git\bin
4、需要的软件安装好之后,打开
C:\Users\pc\Desktop\\nRF5_SDK_15.0.0_a53641a\external\micro-ecc,运行 bat脚本
5、bat里会调用刚才安装的软件,对uECC进行联合编译,生成所需要的lib,打开该路径
C:\Users\pc\Desktop\nRF5_SDK_15.0.0_a53641a\external\micro-ecc\nrf52nf_keil\armgcc,可以看到lib
6、编译bootloader文件通过