码迷,mamicode.com
首页 > 其他好文 > 详细

nRF52832 开发记录(二) - DFU 功能

时间:2020-02-15 18:29:59      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:设备   pac   python   war   upd   开发记录   lob   工程   data   

前言

NRF 官方提供了 DFU (Device Firmware Upgrade) 设备固件升级的例程,在项目中使用需要自己生成密钥用于加解密固件。本工程基于 nRF5_SDK_16.0.0

相关软件下载和安装

nRF Command Line Tools 10.5.0 (上篇博文已安装) 下载链接
Python 2.7.17 下载链接
coreutils 5.3.0 下载链接
gcc-arm-none-eabi-7-2018-q2-update-win32-sha2 下载链接
make 3.81 下载链接
micro-ecc 1.0 下载链接

分别安装以上的软件,添加这两项到系统环境变量

C:\Program Files (x86)\GnuWin32;
C:\Program Files (x86)\GnuWin32\bin;

安装 gcc-arm-none-eabi-7-2018-q2-update-win32-sha2 和 Python 2.7 勾选下图的添加到系统环境变量

技术图片

技术图片

Python 2.7 安装完成后安装 nrfutil,打开命令行输入

python -m pip install nrfutil

技术图片

添加 micro-ecc

examples\dfu\secure_bootloader\pca10040_s132_ble 为 nRF52832 的 蓝牙 DFU 例程,这里我重新整理了工程,需要将 micro-ecc 放到 external\micro-ecc 中,具体可参考 此链接

双击 external\micro-ecc 中的 build_all 编译

技术图片

重新打开工程可看到此文件不缺失

技术图片

生成公钥和私钥

在 app 目录打开命令行,分别生成 dfu_private_key.pem 和 dfu_public_key.c

nrfutil keys generate dfu_private_key.pem
nrfutil keys display --key pk --format code dfu_private_key.pem --out_file dfu_public_key.c

技术图片

打开工程编译

技术图片

工程中的一些设置

打开 sdk_config.h,切换到 Configuration Wizard

NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN 表示进入 Bootloader 时按住此键则不会跳转到用户程序

技术图片

NRF_DFU_BLE_ADV_NAME 设置 DFU 模式时的广播名

技术图片

NRF_DFU_APP_DATA_AREA_SIZE 表示用户程序设置的保存区域,比如 FDS 数据,进行 DFU 更新时会确保不覆盖此区域,因为 1 页为 4KB,所以 12288 代表预留 3 个页,在此处可以认为是 App + Free Space 的 0x0002 6000 - 0x0007 7FFF 地址中的结尾 12KB ,具体可参考上一篇博文中的分区

技术图片

nRF52832 开发记录(二) - DFU 功能

标签:设备   pac   python   war   upd   开发记录   lob   工程   data   

原文地址:https://www.cnblogs.com/HintLee/p/12268070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!