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

bootloader:SDK_14.2.0工程\examples\dfu\bootloader_secure_ble\pca10040\arm5_no_packs

应用程序:SDK_14.2.0工程\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs

这里用到了一些工具(参考文章及下载地址http://www.cnblogs.com/iini/p/9314246.html)下面开始步骤

1,双击“key_generate.bat”以生成相应的私钥(priv.pem)和公钥(dfu_public_key.c)

“key_generate.bat”代码如下,也可以在CMD命令行输入

::generate private key
nrfutil keys generate priv.pem
::generate public key related with private key: priv.pem
nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c

2,将dfu_public_key.c替换目录SDK_14.2.0工程\examples\dfu\dfu_req_下的同名文件,这个是公钥,写入bootloader里面的

3,编译bootloader工程:SDK_14.2.0工程\examples\dfu\bootloader_secure_ble\pca10040\arm5_no_packs

4,将生成的hex改为:bootloader.hex,放入(替换)Script_SDK14_S132_nRF52832文件夹

5,编译应用程序工程:SDK_14.2.0工程\examples\ble_peripheral\ble_app_buttonless_dfu\pca10040\s132\arm5_no_packs

6,将生成的hex修改为:app.hex,放入(替换)Script_SDK14_S132_nRF52832文件夹

7,双击“settings_page_generate.bat” 生成settings.hex

“settings_page_generate.bat”代码如下

::generate settings page for current image: app.hex
nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 2 --bl-settings-version 1 settings.hex

8,双击“mass_program.bat”来烧录softdevice,app和bootloader,自带擦除芯片和合并hex

“mass_program.bat”代码如下

::merge bootloader and settings
mergehex.exe --merge bootloader.hex settings.hex --output bl_temp.hex
::merge bootloader, app and softdevice
mergehex.exe --merge bl_temp.hex app.hex s132_nrf52_5.0.0_softdevice.hex --output whole.hex nrfjprog.exe --eraseall -f NRF52
nrfjprog.exe --program whole.hex --verify -f NRF52
::the following two commands are used to enable PIN RESET
::nrfjprog.exe --memwr 0x10001200 --val 0x00000015 --verify -f NRF52
::nrfjprog.exe --memwr 0x10001204 --val 0x00000015 --verify -f NRF52
nrfjprog.exe --reset -f NRF52

好了,到了这一步,就可以用利用nRF Connect或nRF Toolbox来连接设备看看是否有dfu的标志了,接下来是怎么升级,至于升级的程序(工程)怎么来,下一篇再介绍

9,将新的工程(用来升级的)编译的hex文件改名为app_new.hex,放入(替换)Script_SDK14_S132_nRF52832文件夹

10,双击“zip_generate.bat”,生成SDK14_app_s132.zip,注意这里用到了私钥priv.pem,私钥要保管好哦

“zip_generate.bat”代码如下

nrfutil.exe pkg generate --application app_new.hex --application-version 2 --hw-version 52 --sd-req 0x9D --key-file priv.pem SDK14_app_s132.zip

11,下载SDK14_app_s132.zip到手机,利用nRF Connect或nRF Toolbox升级

附图

连接

界面

使能

进入bootloader

选择升级

升级中

nRF52832 BLE_DFU空中升级OTA(二)编译下载(SDK14.2.0)的更多相关文章

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

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

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

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

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

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

  4. BLE空中升级 谈(二)

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

  5. nrf52——DFU升级OTA升级方式详解(基于SDK开发例程)

    在我们开始前,默认你已经安装好了一些基础工具,如nrfutil,如果你没有安装过请根据官方中文博客去安装好这些基础工具,连接如下:Nordic nRF5 SDK开发环境搭建(nRF51/nRF52芯片 ...

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

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

  7. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

  8. Nginx的平滑升级记录---适用于编译安装的Nginx

    一.查看自己的Nginx的版本号 [root@localhost sbin]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ls nginx [r ...

  9. ESP8266学习笔记1:怎样在安信可全功能測试板上实现ESP-01的编译下载和调试

    近期调试用到了安信可的ESP-01模块,最终打通了编译下载调试的整个通道,有一些细节须要记录,方便兴许的开发工作. 转载请注明:http://blog.csdn.net/sadshen/article ...

随机推荐

  1. xcopy-参数详解

    XCOPY——目录复制命令 1.功能:复制指定的目录和目录下的所有文件连同目录结构. 2.类型:外部命令 3.格式:XCOPY [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E ...

  2. 关于hashcode 里面 使用31 系数的问题

    首先我们来了解一下hashcode,什么是hashcode?有什么作用? hashcode其实就是散列码,使用hashcode使用高效率的哈希算法来定位查找对象! 我们在使用容器来存储数据的时候会计算 ...

  3. Python实例---FTP小程序

    [更多参考] 点击下载

  4. Qt Mysql驱动编译过程

    1.首先当然是要有VS2008+Qt4.7的开发环境. 2.安装MySQL,最好是4以后的版本,安装MySQL时要勾住“C Include Files 和 Lib Files”选项,这样才能装上MyS ...

  5. 乘风破浪:LeetCode真题_018_4Sum

    乘风破浪:LeetCode真题_018_4Sum 一.前言 前面我们已经练习过了三个数相加的集合运算,现在变成了四个数,其实道理是一样的.三个数的时候可以转成两个数的加法,最后来解决,而四个数的可以转 ...

  6. ECharts.js学习(三)交互组件

    ECharts.js 交互组件 ECharts.js有很多的交互组件,一般经常用到的组件有这些: title:标题组件,包含主标题和副标题. legend:图例组件,展现了不同系列的标记(symbol ...

  7. 虚拟机下的CentOS无法上网的解决办法

    1.首先保证虚拟机的网络适配器为NAT模式 2.设置虚拟机的“编辑”-->“虚拟网络编辑器”中的VMnet8的DHCP的设置两个选项都勾选上. 3.设置物理主机,保证虚拟网关的IP地址为自动获取 ...

  8. BZOJ 1041 圆上的整点 数学

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1041 题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整 ...

  9. Discuz!在线中文分词服务

    Discuz!在线中文分词服务是基于API返回分词结果的.在项目中,我们只需要一个函数即可方便地进行分词.关键词提取.以下是根据Discuz!在线分词服务API写的函数,测试可正常运行: 代码代码如下 ...

  10. ionic 入门创建第一个应用demo

    一.ionic卸载 1.清除旧版本的ionic框架 npm uninstall -g ionic npm uninstall -g cordova npm cache clear npm cache ...