Hello,
I recently upgraded our application's SoftDevice from S140 to S340 on an NRF52840 device, requiring adjustments to our linker script to accommodate the new SoftDevice's memory requirements. However, after making the necessary changes in the linker script to match the SoftDevice S340's requirements for Flash and RAM, the application fails the CRC check during boot, causing it to enter DFU mode.
Here are the details:
SoftDevice S340 Requirements:
Flash: 196 kB (0x31000 bytes)
RAM: 8 kB minimum (0x2000 bytes), actual dependent on sd_ble_enable() configuration
Current Linker Script Settings for app :
FLASH (rx) : ORIGIN = 0x32000, LENGTH = 0xAF000
RAM (rwx) : ORIGIN = 0x20003020, LENGTH = 0x3CFE0
Post-update, the bootloader indicates no firmware to activate, and the application fails the CRC check with these specific messages:
<info> app: No firmware to activate.
<debug> app: CRC check of app failed. Return 0
<info> app: Entering DFU mode.
Any insights or suggestions would be greatly appreciated as I navigate these challenges.
Thank you!