nrf51822 DFU 空中升级教程

来源:互联网 发布:3d定制女仆2各项数据 编辑:程序博客网 时间:2024/05/17 01:05

使用SDK版本:nRF51_SDK_9.0.0_2e23562

  测试软件:  nrf  master

本次使用的例程为 ble_app_hrs 心率例程,路径为  \nRF51_SDK_9.0.0_2e23562\examples\ble_peripheral\ble_app_hrs\pca10028\s110_with_dfu ;

 这个实例已经添加好了dfu服务,所以不用自己再添加;实例中使用的芯片为32KB RAM的,如果用16 kb RAM 需要进行修改;

修改如下:

  由于s110 已经占用8k的ram,所以此处的ram起始地址为0x20002000,应用程序剩下的只有8K,所以就将size改为0x2000;


下载程序到开发板上运行,首先下载蓝牙sofedevice,如出现错误,先将芯片进行擦除,再下载应用程序,打开软件,此时应该可以搜到蓝牙信号,连接蓝牙,此时可以

看到服务中有dfu服务,但此时进行升级会出现错误,是由于还没有烧录bootloader;




下面进行bootloader的修改和烧录:

打开例程:\nRF51_SDK_9.0.0_2e23562\examples\dfu\bootloader

编译下载:

          如果使用的是AC型号的,此时就程序就可以正常运行;但此时AA,AB发现下载的时候发现收不到蓝牙信号。此时同样要进行修改:


编译下载,测试:

使用nrf  master 搜索设备:此时可以搜到 DFU的设备名字,


连接:


点击右上角的DFU,弹出选项框


点击OK,弹出文件选择框


这里选择nordic安装目录下面自带的压缩文件,确定,弹出升级进程界面


升级结束后,提示断开连接


此时,重新搜索蓝牙信号发现现在显示的是


到这里,整个升级过程结束。

但还有一些问题,前面下载了应用程序,bootloader,softdevice,但是搜索蓝牙信号时发现应用程序没有启动,直接启动DFU程序,要想直接启动应用程序还得修改一个地方,

找到bootloader程序中的bootloader_setting.文件


修改结束!


接下来如何创建升级包:

使用的是nrfutil.exe 软件,将要升级的应用程序拷贝到同一目录下,新建批处理文件:


内容如下:


保存退出,双击批处理文件运行






0 0
原创粉丝点击