更改

跳转至: 导航搜索

NRF52832DK-DFU固件升级教程

添加1,731字节2020年1月7日 (二) 16:48
存储空间布局(Memory layout)
==== 辅助工具安装 ====
SDK112以后SDK12以后,DUF功能对升级文件进行了ECDSA签名加密,防止误升级未授权的程序。而Nordic使用micro-ecc开源软件实现ECDSA。
开发者初次安装SDK时,在SDK中是没有micro-ecc源码的,需要开发者去github上下载。如果开发都没有下载micro_ecc源码,则在编译bootloader时,编译器会报各种错误。主要有两个方面的如下:
===== git安装 =====
micro-ecc是外部开源软件,所以在Nordic的SDK中放到的协议栈目录下的external目录下。在external目录下,开发者会发现有一个micro-ecc目录。进入micro-ecc目录后,确定没有相应的源码,只有不同编译平台链接相关文件。
[[文件:Micro ecc.png|居中|缩略图|600x600像素]]
其中build_all.bat脚本文件(Windows),是用于编译micro-ecc源码的。在运行时会检查当前系统中是否安装了git。如果安装了,会进一步检查当前目录下是否有相应的源码,如果没有会用git去github上去下载。build_all.bat文件内容如下:<syntaxhighlight lang="bat" line="1">
@ECHO OFF
:: This script will use git (must be in %PATH%) and arm-none-eabi tools in combination with GNU Make
:: to both fetch and compile all variants of micro-ecc for the nRF5 families
 
WHERE >nul 2>nul git
IF %ERRORLEVEL% NEQ 0 (
ECHO "git is not installed. Please install and append to PATH."
)
 
IF NOT EXIST micro-ecc/uECC.c (
ECHO "micro-ecc not found! Let's pull it from HEAD."
git clone https://github.com/kmackay/micro-ecc.git
)
 
make -C nrf51_armgcc/armgcc
make -C nrf51_iar/armgcc
make -C nrf51_keil/armgcc
make -C nrf52hf_armgcc/armgcc
make -C nrf52hf_iar/armgcc
make -C nrf52hf_keil/armgcc
make -C nrf52nf_armgcc/armgcc
make -C nrf52nf_iar/armgcc
make -C nrf52nf_keil/armgcc
 
</syntaxhighlight>如果开发者的PC上没有安装git,则需要去网络找到git,并进行安装。此处安装过程不作说明。
 
安装git完成后,双击build_all.bat文件,此时git就会去下载micro-ecc源码。此时目录下多了一个micro-ecc文件夹,发现里面有相应的uECC.h与uECC.c等相关文件。
 
回到IAR工程,再次编译,发现没有报缺少micro_ecc相关的文件,只报了没有相应的公钥错。
 
===== 安装nrfutil =====
为了解决没有公钥的错误,我们需要public key与priavte key一对密钥对,使用ECDSA_P256_SHA256算法对DFU程序进行签名并加密。
[[分类:NRF52832DK]]
[[分类:实验手册]]
119
个编辑

本PDF由谷雨文档中心自动生成,点击下方链接阅读最新内容。

取自“http://doc.iotxx.com/特殊:移动版差异/2616

导航菜单