nRF52832 开发记录(二)

摘要:
将这两项添加到系统环境变量C中:安装gcc-arm-none-eabi-7-2018-q2-update-win32-sha2和Python 2.7。检查下图,将它们添加到系统环境变量Python 2.7中。安装后,安装nrfutil。

前言

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)GnuWin32in;

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

nRF52832 开发记录(二)第1张

nRF52832 开发记录(二)第2张

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

python -m pip install nrfutil

nRF52832 开发记录(二)第3张

添加 micro-ecc

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

双击 externalmicro-ecc 中的 build_all 编译

nRF52832 开发记录(二)第4张

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

nRF52832 开发记录(二)第5张

生成公钥和私钥

在 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

nRF52832 开发记录(二)第6张

打开工程编译

nRF52832 开发记录(二)第7张

工程中的一些设置

打开 sdk_config.h,切换到 Configuration Wizard

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

nRF52832 开发记录(二)第8张

NRF_DFU_BLE_ADV_NAME 设置 DFU 模式时的广播名

nRF52832 开发记录(二)第9张

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

nRF52832 开发记录(二)第10张

免责声明:文章转载自《nRF52832 开发记录(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OO第一单元——表达式求导——总结SweetAlert拒绝单一的弹出警告框下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VS2012_MVC4入门例子、代码视图分离办法、需要注意的坑爹问题等_被坑后不断更新此贴,要转载的话,请使用链接,不要转载内容

因为此贴会不断更新,所以,要转载的话,请使用链接,不要转载内容。 --------------------------------------------- 题外话: 用C#做网站,目前主要有两种模式:Asp.net网站,基于WebForm,和Mvc4 (mvc3、其他自定义框架就不谈了)。也就是做 xx.aspx页面,并且工具栏有一堆现成的.net服务器...

软件版本号规范

原文:https://blog.csdn.net/master_yao/article/details/51274163 1.软件版本阶段说明 oBase版:此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构。 oAlpha版:此版本表示该软件在此阶段主要是以实现软件功能为...

Xcode10趟坑之路

https://www.jianshu.com/p/12558d39ba08 先默念别有太多坑啊 跑起来吧 结果没有跑起来 1.第一个坑 Showing Recent Messages :-1: Multiple commands produce '/Users/wanglei/Library/Developer/Xcode/DerivedData/JMT...

IOS学习之IOS沙盒(sandbox)机制和文件操作

目录: IOS学习之IOS沙盒(sandbox)机制和文件操作(一) IOS学习之IOS沙盒(sandbox)机制和文件操作(二) IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三) IOS学习之IOS沙盒(sandbox)机制和文件操作(一) 1、IOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文...

.deb文件打包

最近因项目需要,需要把文件夹打包为.deb格式的包,幸亏一位朋友帮忙指导了我一个晚上,才得以完成,这里再次对他表示感谢。 整理打包流程如下: 请先参考此博客内容,了解deb文件打包 如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。 首先了解一下deb包的文件结构: deb 软件包里面的结构:它具有D...

使用Charles抓取APP之HTTPS请求

Charles是一款非常好用的抓包工具,通常使用它来进行APP开发抓包调试,尤其是HTTPS请求。 一、安装Charles 去官网(https://www.charlesproxy.com/)下载软件并安装。 安装完毕后,开启系统代理(本测试在windows环境进行),菜单->Proxy->Windows Proxy前面打钩,就开启了windo...