SDK12空中升级详细步骤操作

所需积分/C币:12 2017-04-19 19:33:59 2.19MB PDF
57
收藏 收藏
举报

文档描述了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

...展开详情
试读 18P SDK12空中升级详细步骤操作
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
杀猪的大侠 版本太旧了,性价比不高,建议找 [艾克姆科技]nRF52832开发指南.pdf 。
2020-06-18
回复
比煞天 花了好多积分下载的,不过很值得,解决了我的大问题。赞赞赞赞
2019-03-29
回复
啸风在学习 资料不错,就是有点贵了
2019-03-16
回复
qq_37482077 文档很详细,依据这文档项目问题已经解决。感谢
2018-11-12
回复
m_pfly_fish 很不错很不错
2018-09-05
回复
I6believe 评分有点贵,适合android使用,不是我所需要的
2018-09-05
回复
涼水泡 资源可用!感谢分享!
2018-07-05
回复
lms825 不错,学习学习,就是分有点贵
2018-05-30
回复
huitailang_1_1 不错不错,就是有点贵
2018-05-29
回复
em78447 资料有点贵~~~~看看~~
2018-05-29
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚积分or赚钱
最新推荐
SDK12空中升级详细步骤操作 12积分/C币 立即下载
1/18
SDK12空中升级详细步骤操作第1页
SDK12空中升级详细步骤操作第2页
SDK12空中升级详细步骤操作第3页
SDK12空中升级详细步骤操作第4页

试读结束, 可继续读2页

12积分/C币 立即下载 >