Hello,
there is the following page:
https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library/blob/master/documentation.md
Known issues
- Since iOS 13.3 (?) devices with Legacy DFU that do not use bonding, but use direct advertising in DFU Bootloader mode cannot be updated anymore. The same applies to Android devices with latest security patches. The solution is to modify the bootlaoder on a device to use non-direct advertising, but in order to update devices that are already in production, older, not updated devices are required. Nothing can be done on the library side, as the iOS just stopped reporting such advertising packets.
Is it correct, to solve this issue, I need to set the following defines:
NRF_DFU_BLE_BUTTONLESS_SUPPORTS_BONDS
and/or
NRF_DFU_BLE_REQUIRES_BONDS
and/or
NRF_SDH_BLE_SERVICE_CHANGED
In what parts must I set this/these define(s)? In the application? In the bootloader? Both?
At the moment I have sent all of them, in both parts.
But then at startup of the app I see the following error:
[00:00:00.000,000] <debug> nrf_sdh: State request: 0x00000000
[00:00:00.000,000] <debug> nrf_sdh: Notify observer 0x0003ADF4 => ready
[00:00:00.000,000] <debug> nrf_sdh: State change: 0x00000000
[00:00:00.000,000] <debug> nrf_sdh: State change: 0x00000001
[00:00:00.000,000] <debug> nrf_sdh_ble: RAM starts at 0x20002328
[00:00:00.000,000] <error> app: ERROR 8 [NRF_ERROR_INVALID_STATE] at :0
PC at: 0x00000000
[00:00:00.000,000] <error> app: End of error report
[00:00:00.000,000] <warning> app: System reset
Could it be that I have an error in linker script? Not suitable settings between app and bootloader?
What to look and verify in detail?
In which place are the keys stored in flash by app, so bootloader can use them?
Best regards,
Marie