SDK12空中升级详细步骤操作


-
文档描述了nrf52832在SDK12空中升级的详细步骤,每一个步骤作者都进行了详细的说明与演示,帮助大家完成SDK12的空中升级,实验以nrf52832为例,对51822的SDK12的空中升级也有一定的帮助
,控制面板p系和安全「系统 「系统星性 查看有关计算 Windows版本 进行大多淼改,您必作任员登录 蚀觉效果,处埋器计划,闪存使,以攴尿拟内存 Pack 1 关的桌西设没置 卜理器 T心 确定一鼠消一应用() 计算名穆刘]⊥样 性会和工目 机全名: 在系统变量Path编辑 、相用信慰 计真机名|硬件高级统保远 要连大多更改恋必领管理登录环坦亨早 性能 视觉米,处理器计刘,存使,以 精系统变量 题登录关的设置 确「取鸿。 启动和故障恢复 系启动系统头败和息 k;∴: Program Fil,,「 3、安装之后在 GitHub中, github地址为 https://github.com/kmackay/micro-ecc ECDH and ECDSA for 8-bit, 32-bit and 64-bit processors 0195 cmm. Ls ⊙0 releases 98 12ulLtibmuluIs e BSD-2-Clduse Branch: master- New pull rcqucst Find filc Clonc or download a kmackay commit: ed on GitHub Merge pull request +85 from. mtausig,master [. Latest commit 14222e@ on 27 Jul 2016 下载ecc的zip源码复制到<SIK路径〉 external、 mIcro-ec目录下, micro-ecc- master改名为 mICro-ecc,并解压文件 ⊙叫“s0K·R5×120,cm,mkoc,,座m 包含到中 刻灵新文件夫 ☆以g 停形日期 下 20174/1714:59文件夹 园卖西 nrf51_arms<e 20161/20426文件灾 2016/1/20426文件灾 2016/11/29426文付夹 nrf52_arm 2016/11/29426件 2016/11/20426文件灾 20161/29426文传灾 2016/11/29425文本文 2KE 本地磁盘(C) micro-ecczIP 2017/3/1222:12 WinRAR ZIP压缩 91 KE c空料D 注意源文件的路径 “ external,mios,ncos 分接索 m/crC-ELc 组织 包含到库中 ☆此 下戴 20167/278:04 〓桌面 G1 IGNORE文件 I KB 最访问置 2016/7/7781N立件 口 m_arm_mL.It<quar=inr 2015/7780TN:,件 98 KB L asm. arm_mLlt _square_umaalinc 2016/28:N文件 51 KB L asm_avrinc 401b/A/8:N文件 32KB 厘计舞机 □ asm_avr_mult_Equare inc 本地磁盘(C 口 curve-cpecitic inc 016/7278:01 文 50 B P emk_pro ectFy 2016/278:04/ Fon file 5KB m)) 2016/7278:01 thon F 1 KB 工作(F 自 LICENSE,tt 2016/7278:04文文档 2K8 □ platform spccificine 2016/7278:04Nc文件 2 KB README C彐 2016/7278:04MD文件 2016/278:04 2016/7278:04文件 55 KB 凵 uECcH 016/7/278:04H文件 14 KB 凵 uECC yI.h 016/7278:04H文件 4、在 boot loader中找到 external\micro- ecc\nrf52 keilarmgcc这个路径这 里使用的是nrf52和keil编译器,在这个目录中有 Makefile文件, shift+鼠标 右键在此处打廾D0S命令,输入make,则开始编译创建 micro ecc lib nrf52.1ib 库文件,生成之后编译 bootloader,第一个错误已经解决 cs C Windows\system32\amd.exe rnRF5-8DK 122.0\0xtDInal\micro-cce\nF5&_kcilvarm 'nrf52 ke il/arngcc/micro_ecc_lib_ nrf52lib Program Files (x86)/GNU Tools ARM Embe dded/4.9 2015q3/bin/arm-nonB-eabi-ar: c eain,。。/nH£52 keiL'armgcc/mic品c1ibnx52.1i Done 接下来为第二步Key的生成 Zip文件的打包和key的生成需要用到 nrfuti件,注意,是新版本的 nrfuti软件( version150 or later)与以前不一样的是,是 Python Package,首先在GiHb下载 nrfutil的相关文件,在 这里我安装了 Python27,使用 Python来安装nrut Nrfutil相关文件下载地址: https://github.com/nordicsemicoNductor/pc-nrfutil/ 1、安装 Python27,将 Python的路径添加到系统的环境变量中。(方法与上面安装WNGW 类似) python-2.7 12,ms 2、安装好了 Python27之后pip已绎安装上了,将pip的路径配置到环境变量中,打开cmd, 输入pip出现命令列表则表示已经安装成功 我的 Python和pip路径分别为: 环境变量 编看系统变量 变里名): 变里值W〕 Afr-nonk7: L: \FythorTerLpte L 解坦泊 3、GitHub中下载nrfuti的相关文件htts:/github.com/Nordicsemiconductor/pc-nrfutil 4、解压压缩包并打开有 setup. py文件的目录,在此处打开das命令( shift右键打开) 渗改日明 d, build 20173/2016:27文件夹 2017312016:27文爽 a,nordicsem 2017312016:27文件卖 ∠且1B3FD16:2/文件 口口口 7117177:30件央 2017/3/177:30GT5NRE义件 20173/17730文 2 KB 23173177:30 2217117730 13 目 requirements. txt 2173/17730文本文档 KB 20173177202+nF 全≡ 拌序方式Q) 和贴快捷力式 撤消复制U Ctrl+z 在处打命令空囗M 新廷CM 屈性(R 5、输入ρ thon setup. py instal这步骤需要有网络的时候运行,安装可能需要等待几分钟时 pying nefutil.egf-infaventuy po ints. txt - build hdist.uin 32 eJJEGG-INFO anying nefiit1l-Pgg-infnvnnt-pin-safe - hu1 ln hiist. win32 \egg FGG-INFO opying nefutilegg infotopleve l txt build\ bdist. winJ2Megs EGG INTO 'cating diat reating dist vrfutil-22-B-py2?egg and adding build \ bdistwin\agg ta it emnuing huild hdist-win2vegg' Cand everything lindep it.> rocessing nrfutil-2.2.5-py2?egg uti1-22.区-py27 Extracting nrEutil-2.2.0-py27egg to c: \python\libvsite-packages Adding nrEutil 2-2.0 to easy-installpth file Installing nrfutil-scwint. ny serint. tn C: \Pyt. hnn27\Sr:rint. Installing nrfutil exe script to C:\Python2?Scripts Installing nrfutil. exe- manifest script to G: \Python27\Scripts Installed c: \python27\lib\site-packages\nrfutil-2.2-0-py2?egs Processing de pendencies for nrfutil==2.2.D searching for pc-ble-driver-py)=0.8.a Readinghttps://pypi.python.org/simple/pc-ble-driver-py/ Best match: pc-ble-driver-py 0.8.1 downloadinghttps://pypi.pythan.ors/packages/cd/c6/7da5b94043b828e8c-6-445d39a0130 644a03edb20bf 4f37c523d4bb7baee6/pc_ble_driver_py-8B1.tar-gzttnd5=94c617a2b0a897 6、安装成功之后,这个时候< python安装目录> Python27\ Scripts的目录下出现了 nrfutilexe 则表示安装完成。 ↑计算机b本地感盐 C: ) Pythona, Scripts 织 汀开新速交件 4收度 修改日期 Isall.CAC.IIatnc3L 201/3/∠U2144应用程序 64 KB Deasy_install-2.7.exe.manifest 0173/202144 MANIFEST文 1 KB 割最运可的位置cai25c中ptPy 20173202144 yoon Filc a easy install-scriptpy :017/ 3/20 2144 Pyton file 20173/202144应月程序 □ futurize exe. manifest 2017/3/20 2144 MANIFEST xA 1 KB 息本地磁盘C) minterm 21//5/20 2144 Python Hile 资料D 2017202143应月性 口 nrfutil,gxc manifest 2017/3202143 MANIFEST文 1 KB 工作) P rutil scriFtpy 017/3/202143 banon Filc 1 KB pasteurIze.exe 2017/202144应月程序 凵 pasteuria∠ ge maie 017/3202144 MANIFEST文件 P pasteurize-script, py Fytnsn File Me pip. exe 20173/202121应月程序 88 KB pip2/.exe 201/3/202121应月程序 A pip2.exe 20173/202131应月程序 7、在DOS命令下输入 nrfutil可以获取更多关于 nrfutil的信息,则表示 nrfutil安装成功 r: C:Windows\ system?,rmd.Xe Microsoft Windaws I 6.1.761] 版权新有(c)2uyn1 icPosott Corporat ion。保留所有权利 c:山 servce ) nufuti1 Isage: nrfutil-script. py [OPT IONS 1 CONMAND [ARGS Options E y, verbose ow verbose intormation Show this message and exit Perform a Device Firmware Update over a blE or serial transport ke ys Generate and display priuate and public ke IH Generate a Deuice Fienware Update pac kage . ings Generate and display RnntInader Dall sett ings 1s⊥ ay nrfu七1⊥Ue上s10n C:山sers飞c 现在可以使用nrut*生成keyf∫ 在cmd命令中输入以下内容 nrfutil. exe keys generate d: \cc test\private key 如图在d盘的 cc test文件夹中会生成 private key文件 计算机·料) cc test 修说口期 I ur vale. key 201714/1715:40EY文件 的位置 v1 CA Windows\system 32\amd.exe 数有2:8ae保留所有权利 NIsers\r >npfutil-exe keys generate n: \rc-testNmriuate-key erated private key and stored it in: d: ec_test\privatekey 然后使用这个生成的文件来生成 public key 这里我们直接生成c文件 在cmd中输入: nrfutil keys display -key pk-format code d: \cc_ testprivate key -out file d cc test\public key. c C: \Users\ccnrfutil keys display--key pk--format code d:\cc_test \private-key out file d:cc test\public_ key.c 输入完成之后文件夹中会出现相应的.c文件了 卜资料(D:) cc test 3共享刻景新建文件夹 名称 修改日期 大小 mvat 2017/4/1715:40KEY文件 1KB blic key. c 2017/41715:47C文件 1K 将这个文件改名为 dfu public key.c,将< bootloader⊥程> examples\dfu bootloader secure 这个路径下的dfu_ public key.c用新生成的替换掉 此时再编译 bootloader,已经没有错误的提示了 compiling dfu public key.c 1ink1ng。, Frogram size: Code=20026 Ro-data=2054 RR-data180 2I-data19316 Fr口rEF:cea七1nneX主1工已, m\ build\nrf52832 xaa 3132.axf-0 Error(s),0 Warning(s) Build Time Elapsed: 00: 00: 02 这时在buid目录下会生成的 bootloader的hex文件,可以用 nRFgo studio下载 bootloader 了。注意,还是和以前步骤一样,先下载协议栈,再下载 bootloader。 Devices SCAN SCANNER BONDED ADVERTISER No filter FutAng c4:BF:8C8′0c:B CONNECT: NOT BONDED Type: Fl F anly dr NolSuppurled Incomplete List of 16-bit Service UUIDs Ccmplete Local Name: Dfu Targ CLONE RAW MORE Bootloader可以正常工作之后,我们下一步就可以打包我们自己的 application空中升级包了, 上面安装的新版本的 nrfutil.exe米进行ip包的打包。 个zi包包含」我们要升级的hex文件和 init data还有数字签名。官方可以 softdevice, bootloader和 application进行空中升级,在此只演示应用程序的空中升级 1、准各好应用程序的hex文件,通常heⅹ文件是编译之后出现在_ build文件夹中,默认 52832sdK例程编译出来名称为nr52832Xa.heX。本次实验我们以串口透传例程作为空中 升级的固件。使用的是Be_ app uart例程 2、将前面步骤生成的 private key和 application. hex放入同一个路径中,这里将文件同样放 在放在dcc_test下 ,计算斜料()如 组织·包含到库中·共享-所建文件突 收被灾 名称 修玫日 型 大小 Applicaton.he 2017/41723:35HEX文件 12 KB dfu_public_ keyc 1/41/134/C文件 1 K6 最近访问的位置 2017/4/1715:40KEY文体 3、在该路径shit+右键打开DoS命令输入以下内容: nrfutil pkg generate -hw-version 52--application-version 1--application application hex--sd-reg Ox8C--key- file private key cc Dfu12. 2.zip 注:这个步骤就是向i中添加 init data和数宇签名,官方定义的规则如 ons Unless version valid ation is skipped, the dtu handle_prevaidate( tunction applics the following accep tance rules to d cterm ine whethor the imagc is Hardware ve rsion: If the h arcware version that is specitied in the in it packet m atches th e h ardware of the device, the image is accepted SoftDevice Firmware ID: I' urle uf Lhe specilied firmware IDs inalches the id u Lhe cur rent SoflDevice, Lhe image is aueplec. Firmware version: If thc imagc contain s a bootloader, the magc is acccptcc if the new firmw are version is grcatcr than()the cxisting version of the ootlo ader if the image co nta ins an app lication the image is accepted if the new fi rmware version is greater than or equal to(>=) the existing vErsion 44 tif defined NRE51 ) &4 define(NRE_ DEU_HW_ VERSION) ±5 elle NRE DEU N VERS工c(51) 46 #elif defined NRF52 )&5 !defined(NRF DEU HW VERSION) tdefine NRF DEU HN VERSION (52) 48#e1e 49 terror No target set for Hn version 50 fendi u\ C Window:\system 32\crnd.exe D:\cc-testnefutil pkg generate --hw-version 52 --application-vers ion 1 --applic ian application. hex --sd-eeg Gx8C --key-file priuate- key ecDfu12-2-zip Zip created at cc_Dfu12-2-z1p 此时该目录下可以发现zi文件已经生成了 v计算机资种 D:l t cc test 组织包含到厍中w共爽最新建文 ☆收蕊兴 17/4(1723:35HEX文件 2017/4/172347 WinRAR ZIP 画最近的问的位置 a dt-a_public_key. 0174/171547C文件 B 将这个zip包放进手机中,使用 nrftoolbox(推荐使用v2.0.0以上)或者 nrf connect可以进行空 中升级,这甲我打开的是安卓版本 nrf connect49儒需使用v4.80以上),连接上了之后选择右 上角的DFU,选择刚才生成的zip包。升级完成后可以看到此时蓝牙广播为 ble app uart例 程的广播名, bootloader功能止常。 中国联通c國 书谷州@)1942 Devices STOP SCANNING t BONDED ADVERTISER SCANNER ADVERTISER UPLOADING OT BONDED CLIENT SERVER No filter N。 rdic UART 4: B-8C81: cC- B ONDED SPEED SPEED Wireless ty Nord c Vire ess oy Nordi 总结:由此可见SDK12中 bootloader对比更新之前的 deu bootloader打包和环境的安装上 麻烦了很多。但由于zi包中加入了key文件,需要与 bootloader中的key相对应才能空中 升级,别人在不知道 bootloader中的key的情况下,是不能对你的设备进行空中升级的,所 以此次更新比以前版本的 bootloader更安全了。 Bootloader能正常进行BLE空中升级,那我们只需要在应用程序 application中,控制程序跳 转进入到 bootloader里面就可以亢成空中升级了。 在以前版木的SDK中,进入 bootloader的方式一般都是长按着boot按键(在官方DK中为 Botton4),然后复位进入到 bootloader中,但这样如果产品中没有按钮或者其他物理按键, 就会非常不方便(以前我都是直接添加DFU服务进入应用程序中,也可以不需要按键) 在SDK12中有这样一个例程,能帮助使用者在 applicε ation程序中不需要按键就能跳转进入 bootloader,例程在<sdk月求> examples\ ble peripheralexperimental ble_app_ buttonless dfu 计算机◆咨料(D:)nRF5sDK122.0, examples i ble_perip 包含到中甲其早甲刻录新建文什 ☆收菊烹 名称 修改日期 experimental_ bl= app_buttonless_dfu2017/1182014文件实 根据官方文档的介绍,可以看出,实现的方式非常简单,只要向该 DFU control point特祉值 中写入0X01,设备便断开连接,上报 BLE DFU EVT ENTER|NG_ BOOTLOADER事件并进入 bootloader中。 When no tification of DFU control point characteristic is enabled, and the valuc C>- is written to it, the device will disconnect, send the event HLE DHU VI ENIERING BUOILCAD-R, an d enter the bootloader. 与旧版本的SDK空中升级步骤一样,首先使用 nRFgo Studio将协议栈下载到设备中,然后下 载 bootloader,最后卜载应用程序 application,程序卜载完成之后能发现蓝牙广播,名称为 Nordic Template 然而我们在连接上之后,发现 DFU control point并没有写的属性,无法写入0x01 2044 NDED ADVERTISER NORDIC_TEM LIEN SERVER NOT BONDEI PXEMAHY SEHVICE generic Attribute JUID: 0x18C1 JJD.840C001f315-4609f883883 data50 tal Buttonless DFu Cllen, Characterist c Ccnfjuratlon UU0x2932

-
2020-06-18
-
2019-03-29
-
2019-03-16
-
2018-11-12
-
2018-09-05
-
2018-09-05
-
2018-07-05
-
2018-05-30
-
2018-05-29
-
2018-05-29
362KB
nrf51822 sdk12.2空中升级笔记
2018-01-13本人亲测的nrf51822空中升级步骤,测试通过,使用官方sdk12.2源码编译,官方升级工具
37.48MB
nrf51822空中升级(DFU)
2016-02-23将官方dfu代码复制粘贴了过来,不要喷我哦。
539KB
52832 SDK15 DFU升级笔记
2018-07-07参照官方文档,一步一步做下来的文档,花了一整天时间,
685KB
nrf51822 空中升级 app demo
2017-02-17nrf51822空中升级demo
232KB
空中鼠标的实现
2015-07-12简述了空中鼠标的开发历程,基本实现原理。
1.62MB
SDK12 DFU bootloader
2018-06-27SDK12 的 OTA 相对于之前 SDK8~SDK11 版本的 OTA 有些不一样, 感觉一些安装的流程相对麻烦。 而且 bootloader 例程里面还加了一些 ECC 之类的东西。 下面讲一下我
82.2MB
微信小程序源码-合集6.rar
2020-09-04微信小程序源码,包含:图片展示、外卖点餐、小工具类、小游戏类、演绎博览、新闻资讯、医疗保健、艺术生活等源码。
133KB
python 京东预约抢购茅台脚本插件 一键运行
2021-02-26python 京东预约抢购茅台脚本插件 一键运行,按照readme介绍的步骤即可。 已经测试可以抢购得到。 注意:本资源仅用于用来学习,严禁用于任何商业目的,下载之后应当在24小时之内删除。
28KB
各显卡算力对照表!
2018-01-11挖矿必备算力对照!看看你的机器是否达到标准!看完自己想想办法刷机!
Python自动化爬虫实战与高级架构技巧
2020-07-22讲解基于Python Selenium 的自动化数据采集,自动化框架设计,SEO搜索收录引擎与接口对接等实战项目
103KB
七夕情人节表白HTML源码(两款)
2016-08-23七夕节、情人节表白用的HTML源码(两款)
737KB
京东抢茅台改进版_python.zip
2021-02-19自动抢购京东53度飞天茅台python脚本改进版,提供脚本源代码仅供大家学习研究,亲测有效已经抢到1瓶,欢迎改进升级
7.25MB
四史答题软件安装包exe
2021-02-28四史答题软件安装包exe
13.41MB
jd_seckill京东抢茅台插件最新版【京东飞天茅台1499抢购】Python脚本的完整安装+使用教程
2021-02-04jd_seckill京东抢茅台插件最新版【京东飞天茅台1499抢购】Python脚本的完整安装+使用教程,这个很好用,稳定出单!
Java学习指南(Java入门与进阶)
2017-08-09这是Java学习指南系列课程的第1篇,介绍Java语言的入门语法,引领希望学习Java语言编程的初学者进入Java大门。 本课程不需要其他语言作为基础,可以直接学习。 课程从Java开发平台的下载和安装开始,从浅到深、从易到难,循序渐进地进行语法讲解。 为了让学员更好的掌握Java语言,本课程配套在线的Java题库及答案解析。 相比于其他语言,Java语言更科学、更容易掌握,快来和大家一起学习Java吧。
932KB
自动抢茅台脚本.zip
2021-01-25自动抢购飞天茅台脚本,亲测有效,已经抢到2瓶(python和go两种语言,Windows和Mac版本都有),支持京东、天猫平台,立即下载保存,避免被失效!
-
下载
Excel批量快速合并工具(完全免费)
Excel批量快速合并工具(完全免费)
-
博客
2021-03-07
2021-03-07
-
博客
如何设计一个消息队列中间件
如何设计一个消息队列中间件
-
博客
蓝桥杯 历届试题 合根植物 并查集
蓝桥杯 历届试题 合根植物 并查集
-
学院
SpringBoot2集成Quartz+Vue动态定时任务(前后分离)
SpringBoot2集成Quartz+Vue动态定时任务(前后分离)
-
下载
OMNeT++安装及IDE使用教程.pdf
OMNeT++安装及IDE使用教程.pdf
-
学院
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端
-
下载
时间序列模型:ARIMA.py
时间序列模型:ARIMA.py
-
博客
表单
表单
-
下载
Docker进阶与实践.pptx
Docker进阶与实践.pptx
-
下载
eclipse-jee-oxygen-1a-win32-x86_64.rar
eclipse-jee-oxygen-1a-win32-x86_64.rar
-
学院
P1Python100练从入门到入土系列
P1Python100练从入门到入土系列
-
学院
基于SSM实现的房屋租赁系统【附源码】(毕设)
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
博客
x265-创建encdata
x265-创建encdata
-
下载
0050、牧场智能挤奶与综合信息管理系统论文资料.rar
0050、牧场智能挤奶与综合信息管理系统论文资料.rar
-
学院
MySQL 数据库的基本操作(数据完整性约束)
MySQL 数据库的基本操作(数据完整性约束)
-
博客
树莓派 docker部署甜糖
树莓派 docker部署甜糖
-
学院
CCNA_CCNP 思科网络认证 动态路由 RIP 协议
CCNA_CCNP 思科网络认证 动态路由 RIP 协议
-
下载
数据结构ch02.doc
数据结构ch02.doc
-
学院
python自动化管理文件和文件夹
python自动化管理文件和文件夹
-
博客
surfaceflinger中traverseInZOrder调用流程
surfaceflinger中traverseInZOrder调用流程
-
学院
华为1+X——网络系统建设与运维(高级)
华为1+X——网络系统建设与运维(高级)
-
博客
25MySQL 是怎么保证高可用的?
25MySQL 是怎么保证高可用的?
-
学院
MySQL 存储过程(创建海量数据实验环境)
MySQL 存储过程(创建海量数据实验环境)
-
下载
python从入门到精通源码.rar
python从入门到精通源码.rar
-
博客
CNKI 中国知网 CAJ转PDF的方法(汇总)
CNKI 中国知网 CAJ转PDF的方法(汇总)
-
下载
apache-tomcat-7.0.88.rar
apache-tomcat-7.0.88.rar
-
下载
录屏软件免费录制,亲测好用
录屏软件免费录制,亲测好用
-
学院
C/C++反汇编解密
C/C++反汇编解密
-
学院
Cocos Creator游戏开发-合成大西瓜 CocosCreat
Cocos Creator游戏开发-合成大西瓜 CocosCreat