文章中所使用的工具和文件生成,请参考
《nRF5x系列蓝牙模块DFU升级服务移植 -- 1 工具安装》
《nRF5x系列蓝牙模块DFU升级服务移植 -- 2 文件生成》
说明。
3.1 程序的烧写与升级
3.1.1 程序的烧写步骤
连接上设备并在PC上打开nRFgo工具,如下图所示:
擦除所有空间存储内容,如下图所示:
在Program softDevice中烧录协议栈hex文件,文件存放路径在F:\nRF5_SDK_15.0\components\softdevice\s132\hex中,操作如下图所示:
在Program bootloader中烧录引导程序hex文件,文件存放路径在F:\key中,操作如下图所示:
在Program Application中烧录应用程序hex文件,文件存放路径在F:\key中,操作如下图所示:
查看是否升级成功。
从nRFgo工具上可以看到烧写成功提示,如下图所示:
烧写完成后,使用手机nRF Connect工具可以搜索到名称为DfuTarg广播信号,此时模块还没有进入应用广播,如下图所示:
3.1.2 DFU升级
完成烧写步骤后,还没有进行应用,所以我们需要升级一次应用,点击DfuTarg广播的连接CONNECT,进入服务,点击右上角DFU图标,如下图所示:
点击后会弹出选择文件框,由于SDK10之后的版本只支持ZIP方式升级,因此这里选择第一项,如下图所示:
使用微信文件助手进行ZIP文件发送,所以需要进入相应的目录下选择test.zip文件,如下图所示:
加载zip文件后,跳转到bootloader,且升级开始,升级过程界面如下图所示:
升级完成后,重新用nRF Connect工具进行扫描,扫描到的广播名称变成了Nordic Buttonless,表明已经进入应用服务,扫描结果如下图所示:
3.2 hex的烧写与合并
批量生产时,我们往往希望直接下载后就可以运行到应用程序,而不再空中升级一次才运行。按照以下方法操作,可以解决下载后无法直接运行应用程序的问题,以及实现只要烧写一个hex文件的操作。
3.2.1 setting文件的生成和使用
进入F:\key文件夹,在此处打开dos命令框(Shift+鼠标右键打开),在命令行中输入指令nrfutil settings generate --family NRF52 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 app_setting.hex,回车执行指令,执行结果如下图所示:
执行后可在F:\key文件夹中找到app_setting.hex文件,如下图所示:
生成文件后,就可使用nRFgo工具进行烧写,烧写步骤(详细烧写步骤请查阅3.1.1节)如下图所示:
烧写完成后,程序会直接运行应用,用nRF Connect工具可扫描到广播名为Nordic Buttonless的蓝牙设备。
3.2.2 hex文件的合并烧写
将F:\nRF5_SDK_15.0\components\softdevice\s132\hex文件夹中的s132_nrf52_6.0.0_softdevice.hex文件拷贝到F:\key文件夹中,并修改其名称为s132.hex,如下图所示:
进入F:\key文件夹,在此处打开dos命令框(Shift+鼠标右键打开),在命令行中输入指令mergerhex --merge s132.hex boot.hex app.hex --output m3.hex,回车执行指令,执行结果如下图所示:
在命令行中输入指令mergehex --merge m3.hex app_setting.hex --output dfu.hex,回车执行指令,执行结果如下图所示:
使用nRFgo工具中的Program Application烧写dfu.hex文件,如下图所示:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。