We have a project running based on the SDK 14.1 on a nRF52DK with S132 5.0. The used bootloader works as expected and also an update of the bootloader works properly.
After the release of SDK 15 we tried to implement the update the current bootloader based on SDK 14.1 to a bootloader based on SDK 15.0. We adapted our project to use the SDK 15 bootloader. The bootloader itself is working fine if programmed with j-link, but we are not able to update the existing 14.1 based bootloader with the new built SDK 15.0 bootloader. The update looks normal untill the data has been transfered to the device. But after the reset the device never gets into the bootloader code and is bricked.
By looking deeper into the behavior i found out that the firmware continuously executes code in the range of the MBR (< 0x1000). A dump of the flash also showed some data in the MBR params page.
As far as I know the MBR params page should be cleared after a command ahs completed completely. This also matches the theory that something in the MBR doesn't work.
Here is the start of the MBR Params page (Intel HEX Format):
:10E00000DC17511EAAFFFFFF086A00208C43002086
:10E0100000E007001B03000000000000F9FFFFFF05
:10E02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
Questions:
- What can cause the MBR to end in a endless loop?
- Where is the difference between the SDK14.1 bootloader and the SDK15.0 based bootloader that can cause this different behavior?
Regards Adrian