This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

[nRF51822] Some questions for DFU OTA

  1. Did current OTA only can dmostrate "ble_app_hrs" and "ble_app_rscs"? Other SDK5.0.0 examples? I want to try ble HID keyboard. So, deliver the hex file to celluar phone and do the same process?
  2. These three processes have same result?
  • Erase all flash of nRF51822 by nRFgo (JTAG) -> Program Software device 6.0.0 (JTAG) -> Program boot loader (JTAG) -> Program ble_app_hrs" by nRF_loader apps (OTA)
  • Erase all flash of nRF51822 by nRFgo (JTAG) -> Program Software device 6.0.0 (JTAG) -> Program boot loader (JTAG) -> Program ble_app_hrs" (Also by JTAG) at address 0x14000
  • Erase all flash of nRF51822 by nRFgo (JTAG) -> Program Software device 6.0.0 (JTAG) -> Program ble_app_hrs" (Also by JTAG) at address 0x14000
  1. Can Desktop 2 application code also use DFU OTA?
  2. How to use debug mode of Keil C to debud if boot loader already exists in nRF51822?
Parents
  • Hi,

    1. Correct, you can use any compiled hex file to update using DFU which has start address at 0x14000. Please be noted that on Android device you can use hex file directly because the app has a hex to bin converter. On iOS device, you would need to generate a .bin file and use that file. You can use the fromelf.exe tool in KEIL\ARM\BIN folder to do so.

    a)Will work

    b)Application will not be executed, bootloader will run instead, because the Application Valid byte has not been set. You have to manually write 0x01 to BOOTLOADER_SETTINGS_ADDRESS.

    c)Application will work, but you will not have DFU option

    1. I don't see any reason that Desktop 2 application can not be update over the air.

    2. You can add breakpoints and debug as normal, when the application is programmed and executed by bootloader.

  • @aa67: In the bootloader example, when the device start up it will check for Button7 (Pin0.07) if it is pressed or not. If it is pressed the device will enter bootloader mode , if it's not it will check if there is a valid application, and if there is not, the bootloader will be executed.

Reply Children
Related