Keil SDK13 BLE OTA upgrade failure causes the device to become unbootable, requiring re-flashing. How can this be resolved? We are using the bootloader_secure_ble bootloader. Does it support dual-bank OTA? Could you provide a reference sample?
Keil SDK13 BLE OTA upgrade failure causes the device to become unbootable, requiring re-flashing. How can this be resolved? We are using the bootloader_secure_ble bootloader. Does it support dual-bank OTA? Could you provide a reference sample?
Hello,
The "bootloader_secure_ble" example will already default to dual bank DFU as long as the size of the update image is not too big to fit inside the bank 1 area (see dual vs single bank updates). However, the failure you describe should not happen even if you are using single bank DFU. If a DFU attempt fails for some reason after the old app has been erased (device moves out of range, battery dies, etc), the device shall always fall back to DFU mode so you can attempt the update again. The fact that you have to re-flash it points to some other issue.
Does the same app work if you program it through the debug interface?
Best regards,
Vidar
Rewriting the program,hw can work, but if I don't rewrite it, it won't function and fails to start. I am using this U-Boot ---bootloader_secure_ble, but can you provide me with a reference example for the app? can I adjusted the boot area? Can I set the start address to 0x75000 and the size to 0x9000 in Keil?
Rewriting the program,hw can work, but if I don't rewrite it, it won't function and fails to start. I am using this U-Boot ---bootloader_secure_ble, but can you provide me with a reference example for the app? can I adjusted the boot area? Can I set the start address to 0x75000 and the size to 0x9000 in Keil?
Yes, you can adjust the bootloader start address. You can use the bootloader_secure_ble/pca10040_debug project configuration as a reference. This project allocates more space to the bootloader to support debug logging over RTT.