Bootloader通常是MCU中的一小段代码,而且一般是上电以后第一个执行程序。由它拍判断程序的走向,直接跳去主程序运行或者留在Bootloader中升级主程序。
nRF51中把Bootloader中升级固件的部分称作Device Firmware Update(DFU),今天就来研究一下Bootloader重点是其中的DFU。
nRF51的DFU可以升级application,SoftDevice,或者bootloader本身,又或者SoftDevice+bootloader的组合。
官方的例程会在以下几种情况下,进入DFU:
- No application is installed on the device.
- Button 4 is pressed when starting the device.
- The application on the DFU target supports entering DFU mode. In this case, the DFU controller can trigger the application to reset the device and enter DFU mode, which is referred to as buttonless update.
大家比较关心的可能是第三种模式:手机或者其他控制端可以触发设备端(nRF51)进入DFU模式,而不需要手动按键等操作。
按照NORDIC的SDK中的帮助文档,想要完成Bootloader的演示一共需要以下几个步骤:
按照NORDIC的SDK中的帮助文档,想要完成Bootloader的演示一共需要以下几个步骤:
- 准备一块nRF51的开发板和nRF51的USB Dongle。如果觉得官方的太贵的话,可以到ohtcom.taobao.com或者http://www.aliexpress.com/store/1922092去购买第三方开发板。他们是完全兼容的。
- 通过nRFgo Studio(从官网下载)将Softdevice烧写到开发板。S110或者S130都可以,但是要注意芯片的版本和Softdevice的版本是对应的。总之最新的Softdevice必须配合最新的芯片来用。
- 打开SDK(从http://developer.nordicsemi.com/下载)中的例子“dfu_dual_bank_ble_sXXX_pca10028”。同样,最新的SDK必须配合最新的芯片来用。
- 烧写代码进芯片,这里要注意因为不是烧写普通的应用程序,Bootloader需要在芯片的特定位置设置一个标志位。这个操作标准的Keil下载方式做不到的,必须使用NORDIC官方的nrfjprog.exe才行。不过这些都已经在例程里面设置好了,我们不用手动去调节。
- 在SDK的“test_images_update”目录中,找到对应的zip文件发到手机上,然后手机选择用nRF Toolbox打开。“Select File”选择刚才发的那个文件,“Select File type”选择对应的类型,“Select Device”找到设备(通常叫DFU_xxx)。
- 最后点击“Upload”就OK了!
没有评论:
发表评论