NRF51800 空中升级DFU
下面是基础软件的安装:【抄袭他人所得】
1.安装Python软件,建议版本2.7.9及以上,不超过3.0版本【以下安装步骤需要联网】
2.安装Python的pip模块,通过命令提示符进入到Python的安装目录,在命令提示符中输入命令“python.exe -m pip install SomePackage”进行安装(如图1),如果需要更新则按照命令提示符的提示输入命令进行更新,
更新命令应该是“python.exe -m pip install --upgrade pip”,【不同版本命令不同,实际命令参照命令提示符的提示】。

图 1
我的电脑中已经安装Python和pip模块,青色部分是Python的安装路径,红色部分是安装命令。由于电脑中已经安装过pip模块并更新到了最新版本,所以此处提示安装满足需求。
3. 安装nrfutil软件,通过命令提示符进入到pip模块的安装目录(在Python安装目录下搜索pip,打开pip.exe所在目录就是pip模块的安装目录),输入命令“pip.exe install nrfutil”进行安装(如图2)。

图 2
我的电脑中,青色部分是pip模块的安装路径,红色部分是安装命令。安装完成后可能会提示PATH路径问题(如图3)。

图 3
根据提示将pip模块安装路径添加到系统和用户的PATH环境变量中即可,具体操作方式可自行百度。
4. 安装“Python SetupTools”,在该命令提示符中输入命令“pip.exe install -U setuptools”进行安装(如图4)。

图 4
5. 安装“pyinstaller”,在该命令提示符中输入命令“pip.exe install pyinstaller”进行安装(如图5)。

图 5
6. 获取nrfutil源码操作,你很容易死在这里!!,从“ https://github.com/NordicSemiconductor/pc-nrfutil/ ”下载源代码并解压到文件夹,版本更新多次,注意你的版本可能不再被支持!!!!!!。

注意:从上面看出最新的版本包是Version 5.0.0 文件版本包 ,如果你是用nrf51822 的nRFSDK 10.0 的固件包,那马你只能是选择version0.5.2 和更老的版本,不然你做的可能是好几天的无用功。

下面的是我用Version 5.0. 0的资源包的生成过程,如果你的版本选择错了,下面的步骤让你慢慢发现问题。
通过命令提示符进入到该文件夹目录,输入命令“pip install -r requirements.txt”进行安装(如图6)。(在version 0.5.2 的版本中是没有 requirements.txt 的,你可以跳过这一步)

图 6
青色部分是源代码目录,红色部分是命令。
7. 安装nrfutil软件,在源代码目录下的命令提示符中输入命令“ python setup.py install ”进行安装(如图7)。

图 7
8. 安装结束
DOC命令集合:
可以用 nrfutil settings generate --help 获取一些帮助信息。(在version 0.5.2 的版本中是没有 此条命令)
生成密匙:(在version 0.5.2 的版本中是没有 此条命令)
1. 生成key文件,在某个目录下打开 dos 命令(shift+右键打开) 输入 nrfutil.exe keys generate private.key 就会在当前目录生成private.key文件。
2. 生成key.c文件,在有key文件的目录下打开 dos 命令(shift+右键打开) 输入 nrfutil keys display --key pk --format code private.key --out_file dfu_public_key.c 生成相关的.c文件
生成bootloader setting (在version 0.5.2 的版本中是没有 此条命令)
nrfutil.exe settings generate --family NRF51 --application application.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 bootloader_settings.hex
红色是你要支行的文件,蓝色是生成的文件。
生成zip 软件包,也就是手机app升级需要的包:(在version 0.5.2 的版本中是没有 此条命令)
nrfutil pkg generate --hw-version 51 --application-version 1 --application application.hex --sd-req 0x87 --key-file private.key application.zip
红色是你要支行的文件,蓝色是生成的文件。
再这个地方一定要查看你所安装的版本能不能生成你对应的所需文件!!!!!!!
DOC 中执行 nrfutil pkg generate --help 命令,在这里你就能发现你的源库选的对不对了。

大大 总结!:
下面是可以判定成功案列: 芯片是NRF51822 ,官方固件包 nRF51_SDK_10.0.0_dc26b5e,官方协议栈 s110_nrf51_8.0.0_softdevice.hex 或者 s110_nrf51822_7.0.0_softdevice.hex ,官方源 pc-nrfutil库 nrfutil-0.5.2
安装软件同上,后期有必要再添加软件。
DOC 运行: nrfutil.exe dfu genpkg --help

生成DFU升级包:
nrfutil.exe dfu genpkg ants_app.zip --application ants.hex --application-version 0xffff --dev-revision 0xffff --dev-type 0xffff --sd-req 0x0064
红色是你要支行的文件,蓝色是生成的文件。
总结:此版本的升级方案没有密匙加密这相当不安全的!!!。
NRF51800 空中升级DFU的更多相关文章
- NRF52832空中升级DFU
Secure DFU环境搭建 升级原理,加密原理在此不做描述,详情参考http://www.cnblogs.com/iini/p/9314246.html 1.工具一览 gcc-arm-none-ea ...
- 如何实现蓝牙空中升级BLE OTA
如何实现BLE OTA?什么叫DFU?如何通过UART实现固件升级?又如何通过USB实现固件升级?怎么保证升级的安全性?什么叫双备份(dual bank)DFU?什么叫单备份(single bank) ...
- nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级
如何在nRF Connect SDK(NCS)中实现蓝牙空中升级?MCUboot和B0两个Bootloader有什么区别?MCUboot升级使用的image格式是怎么样的?什么是SMP协议?CBOR编 ...
- BLE空中升级 谈(二)
BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项(续) TI CC2541支持多个硬件,多个软件对它进行空中升级,可以有不同的组合,硬件有 编号 名称 Hex 用法 1 Cc2540 ...
- BLE空中升级 谈(一)
BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项 现在的智能设备(可穿戴,智能家居,智能玩具等)是越来越多了,大公司的产品颜值高,功能强大而完备的应该说是比比皆是,这里不谈论它是满足 ...
- iOS蓝牙空中升级(固件升级)
空中升级又叫固件升级,指你手机从服务器下载下来的包或者数据,通过蓝牙传输给你的外设升级固件.如果你能把蓝牙的基础搞懂,其实也并不是很难,我在这里只不过提供一下思路. 空中升级略难的地方在于数据处理和交 ...
- nRF52832 BLE_DFU空中升级OTA(三)准备升级工程(SDK14.2.0)
准备需要加入DFU功能的工程 在工程main文件services_init函数中加入DFU服务 uint32_t err_code; // Initialize the async SVCI inte ...
- nRF52832 BLE_DFU空中升级OTA(二)编译下载(SDK14.2.0)
上一篇配置好了开发环境,现在就可以试着跑一下例程了,这里需要两个例程,一个是bootloader的,一个是应用程序的,其路径分别为: bootloader:SDK_14.2.0工程\examples\ ...
- nRF52832 BLE_DFU空中升级OTA(一)安装软件(SDK14.2.0)
准备工作,需要安装好几个软件,详细的过程请参考下面的文章(http://www.cnblogs.com/iini/p/9314246.html)这里说的非常详细,而且也有工具在云盘,对于初学者非常友好 ...
随机推荐
- IDEA新建项目时,没有Spring Initializr选项
换了台新电脑,然后重新安装了Intellij IDEA,创建spring boot项目的时候找不到Spring Initializr选项了. 然后百度了下,发现有前辈做出了回答,就复制存到了自己随笔里 ...
- 安装oracle数据库的操作步骤
1. vnc启动之后,进入数据库安装包所在目录,此处是/home/DB/backup/database 2. 输入命令 ./runInstaller 3. 弹出linux图形化界面,同时弹出Oracl ...
- Oracle学习DayThree
一.视图 1.定义: 视图是一种虚表,是从表中抽出的逻辑上相关的数据集合. 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表. 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解 ...
- git bash + gitee
使用Git Bash从Gitee上下载代码到本地以及上传代码到码云Git: https://www.cnblogs.com/babysbreath/p/7274195.html 指定克隆远端分支 ht ...
- python并发_进程_multiprocessing
多进程基础, 主要是用了 multiprocessing模块 : 在一个python进程中开启子进程,start方法和并发效果. import time from multiprocessing im ...
- 设置Delphi默认按utf8格式保存单元文件
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Embarcadero\BDS\19.0\Editor] " ...
- OVS常用命令与使用总结
说明 在平时使用ovs中,经常用到的ovs命令,参数,与举例总结,持续更新中… 进程启动 1.先准备ovs的工作目录,数据库存储路径等 mkdir -p /etc/openvswitch mkdir ...
- phoneshop cs6破解
一.以“试用”方式安装photoshop: 二.下载amtlib.dll破解文件,密码:ubx2: 三.备份photoshop目录下的amtlib.dll文件,将下载的amtlib.dll文件拷贝到p ...
- Sqlite 参数化 模糊查询 解决方案
转自:https://codedefault.com/2018/does-dapper-support-the-like-operator-in-csharp-application 问题描述 如题, ...
- HTTP Post multipart/form-data支持
最近需要向平台发送录像文件,但是Skynet没有multipart/form-data的Post请求支持,写篇blog记录一下 skynet有自带简单的httpc,里面有post方法.但是这个post ...