Hello,
I am using nRF52840 with nRF5SDK v17.1.0, and I have several questions regarding DFU.
Reference page: https://docs.nordicsemi.com/bundle/sdk_nrf5_v17.1.0/page/index.html
① In the case of dual-bank update, my understanding is that the new firmware is written to Bank1, while the existing application remains in Bank0.
-
Does the bootloader simply switch the application start bank after a successful update?
-
Or does it copy the application from Bank1 to Bank0 as part of the DFU process?
② If the power is lost during the firmware transfer to Bank1, the CRC check will fail at the next boot, and the bootloader will run the application from Bank0 (existing app).
-
But what happens if the power is lost after Bank1 has been fully written but while the bootloader is updating its settings (e.g., switching the active bank or copying)?
-
What would be the behavior at the next boot in this case?
③ We are planning to perform DFU from a smartphone application using the following libraries:
-
Android-DFU-Library
-
iOS-DFU-Library
Will these libraries continue to be supported in the future (e.g., updates for new OS versions)?
④ For production devices, what is the common practice for DFU configuration?
-
Is dual-bank update generally recommended, or single-bank update?
-
Should multiple methods of triggering the bootloader’s DFU start be implemented?
-
Are there any other best practices or important considerations when using DFU in a product?
Any advice would be greatly appreciated.
Thank you!