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

how to Switch between over-the-air and uart bootloader mode?

Hi, How to integrate both over-the-air and uart bootloader application for an device? We have a custom board with nrf51822 chipset, and we need to implement the firmware update process, which can support both over-the-air and usb to uart type firmware update. Since we not yet tested the uart bootloader application, we dont have clear idea on it (like, how to make it enter into the bootloader mode). Can anyone suggest us how to handle this?

our requirement as follows, If the device is connected through the usb, and if the user want to update the firmware, the device should enter into dfu_dual_bank_hci (uart) bootloader mode, and do the firmware update.

And if the device is connected through ble, user should make it enter into the dfu_dual_bank_ble (over the air) bootloader mode by writing some value through the special characteristics created for it, and should do the firmware update.

Regards, Balaji

Parents
  • Hi Balaji,

    You will need to compile both transport layer in one project (include in Target build).

    • Since BLE and HCI transport layer share some same function, there will be "multiply defined" for those functions. You would need to modify the function name, and branch out two options when calling them depend on which protocol is running.

    • The size of the bootloader will be bigger than 13KB as it is now, you would need to modify the code memory size and start address (IROM1). BOOTLOADER_REGION_START also need to modified accordingly.

    I afraid that I don't have the example ready for now. I will try to make one in the next few days, if there is some spare time.

Reply
  • Hi Balaji,

    You will need to compile both transport layer in one project (include in Target build).

    • Since BLE and HCI transport layer share some same function, there will be "multiply defined" for those functions. You would need to modify the function name, and branch out two options when calling them depend on which protocol is running.

    • The size of the bootloader will be bigger than 13KB as it is now, you would need to modify the code memory size and start address (IROM1). BOOTLOADER_REGION_START also need to modified accordingly.

    I afraid that I don't have the example ready for now. I will try to make one in the next few days, if there is some spare time.

Children
No Data
Related