Change RAM_START and DFU

I have a project that has been deployed for a few years, which we regularly update via DFU in BLE.

On this project, I had to increase NRF_SDH_BLE_TOTAL_LINK_COUNT.

This caused a change in the size of RAM required by the SoftDevice.

In Segger Embeded Studio , I therefore adjusted RAM_START from 0x20002BF0 to 0x20003BE0

When I run the project without Bootloader, everything works fine.

However, when I update via DFU to the new version with RAM_START = 0x20003BE0, unfortunately I get the following error:

<warning> nrf_sdh_ble: Insufficient RAM allocated for the SoftDevice.
<warning> nrf_sdh_ble: Change the RAM start location from 0x20002BF0 to 0x20003BE0.
<warning> nrf_sdh_ble: Maximum RAM size for application is 0xC420.
<error> nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
<error> app: Fatal error
<error> app: ERROR 4 [NRF_ERROR_NO_MEM] at :0
PC at: 0x00000000
<error> app: End of error report

I notice that the new RAM_START value is not transmitted via the firmware update in DFU.

To continue upgrading my project on all deployed devices, I really need to be able to change NRF_SDH_BLE_TOTAL_LINK_COUNT and therefore also change RAM_START.

How can I manage this?

Parents Reply Children
No Data
Related