下面是基础软件的安装:【抄袭他人所得】

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的更多相关文章

  1. NRF52832空中升级DFU

    Secure DFU环境搭建 升级原理,加密原理在此不做描述,详情参考http://www.cnblogs.com/iini/p/9314246.html 1.工具一览 gcc-arm-none-ea ...

  2. 如何实现蓝牙空中升级BLE OTA

    如何实现BLE OTA?什么叫DFU?如何通过UART实现固件升级?又如何通过USB实现固件升级?怎么保证升级的安全性?什么叫双备份(dual bank)DFU?什么叫单备份(single bank) ...

  3. nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级

    如何在nRF Connect SDK(NCS)中实现蓝牙空中升级?MCUboot和B0两个Bootloader有什么区别?MCUboot升级使用的image格式是怎么样的?什么是SMP协议?CBOR编 ...

  4. BLE空中升级 谈(二)

    BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项(续) TI CC2541支持多个硬件,多个软件对它进行空中升级,可以有不同的组合,硬件有 编号 名称 Hex 用法 1 Cc2540 ...

  5. BLE空中升级 谈(一)

    BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项 现在的智能设备(可穿戴,智能家居,智能玩具等)是越来越多了,大公司的产品颜值高,功能强大而完备的应该说是比比皆是,这里不谈论它是满足 ...

  6. iOS蓝牙空中升级(固件升级)

    空中升级又叫固件升级,指你手机从服务器下载下来的包或者数据,通过蓝牙传输给你的外设升级固件.如果你能把蓝牙的基础搞懂,其实也并不是很难,我在这里只不过提供一下思路. 空中升级略难的地方在于数据处理和交 ...

  7. nRF52832 BLE_DFU空中升级OTA(三)准备升级工程(SDK14.2.0)

    准备需要加入DFU功能的工程 在工程main文件services_init函数中加入DFU服务 uint32_t err_code; // Initialize the async SVCI inte ...

  8. nRF52832 BLE_DFU空中升级OTA(二)编译下载(SDK14.2.0)

    上一篇配置好了开发环境,现在就可以试着跑一下例程了,这里需要两个例程,一个是bootloader的,一个是应用程序的,其路径分别为: bootloader:SDK_14.2.0工程\examples\ ...

  9. nRF52832 BLE_DFU空中升级OTA(一)安装软件(SDK14.2.0)

    准备工作,需要安装好几个软件,详细的过程请参考下面的文章(http://www.cnblogs.com/iini/p/9314246.html)这里说的非常详细,而且也有工具在云盘,对于初学者非常友好 ...

随机推荐

  1. NPOI处理Word文本中段落编号

    NPOI的XWPFParagraph对象中,是无法直接读取段落编号的,然而可以读取的是编号的样式名称(GetNumFmt),编号分组ID(GetNumID),编号样式(NumLevelText)等.具 ...

  2. browser_action' is only allowed for extensions but this is a legacy packaged app

    manifest.json中不可包含调试代码:    "app": {     "launch": {      "local_path": ...

  3. Codeforces Round #245 (Div. 1) B. Working out (dp)

    题目:http://codeforces.com/problemset/problem/429/B 第一个人初始位置在(1,1),他必须走到(n,m)只能往下或者往右 第二个人初始位置在(n,1),他 ...

  4. 173zrx个人简介

    码云链接:https://gitee.com/zhrx-617/codes/947dbs2fi5kw3jz8hc0ma74 效果图: 源代码: <html> <head> &l ...

  5. css实现文本块在容器中垂直居中

    效果如图: css代码: .textContainer { display: -webkit-box; -webkit-box-orient: vertical; -webkit-box-pack: ...

  6. win10切换AHCI模式

    win10切换AHCI模式 笔记本电脑总是卡卡的,开机好慢,一狠心就买了一个固态硬盘装上.听说电脑开启AHCI模式跟固态硬盘更配哦.所以好好得鼓捣了一下电脑. 保证win10开启了安全模式, 如果没有 ...

  7. php优秀框架codeigniter学习系列——CI_Controller分析

    该类是一个超级大的父类,它将在 CodeIgniter.php 中实例化化过的类,通通加载成它的类成员变量,所以可以方便的进行各种操作.各种应用控制器类,都会继承 CI_Controller 类. _ ...

  8. 如何使用HTML5的WebSocket实现网页与服务器的双工通信(二)

    本系列服务端双工通信包括两种实现方式:一.使用Socket构建:二.使用WCF构建.本文为使用WCF构建服务端的双工通信,客户端同样使用Html5的WebSocket技术进行调用. 一.创建WCF服务 ...

  9. 5--Postman上传文件

    请求: charles抓到请求信息: request: --21b63bd3-1543-46cf-ab25-eaa5adf82688Content-Disposition: form-data; na ...

  10. python常量 变量 数据类型 注释 交互 if语句

    1.认识python python的创始人吉多·范罗苏姆(Guido van Rossum )龟叔在89年圣诞节开始开发python python属于解释型语言,强类型定义语言. 编译型/解释型:编译 ...