This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Insufficient RAM allocated for the SoftDevice

I've inherited a project where the software was developed in IAR and I've rebuilt it in SES.  I am having an issue configuring the memory for the soft device.

The chip is the 52832 with 512k flash and 64k ram.

The following services are enabled:

ble_bas

ble_dfu

ble_dis

ble_hrs

ble_nus

These are the section macros:

FLASH_PH_START=0x0

FLASH_PH_SIZE=0x80000

RAM_PH_START=0x20000000

RAM_PH_SIZE=0x10000

FLASH_START=0x26000

FLASH_SIZE=0x5a000

RAM_START=0x20002b90

RAM_SIZE=0xd470

When I get the warning, it is asking for the RAM_START be moved to 0x20000ffd4, which leaves only 0x2c for RAM length and obviously the code won't link that little RAM.  I've looked at the SDK config file and it appears that the BLE stack configuration is similar to the PCA10040 HRS example, which runs on the same chipset.  

is there something I am missing that is allocating that much RAM in the soft device?

  • Sorry, I forgot to note that I am using SDK15 with S132 V6.0.0

  • Please check out our Adjustment of RAM and Flash memory guide for details on how to edit RAM and Flash sizes in your application. However, you've added quite a few services to your application, which all will use some RAM in the SoftDevice, so I'm guessing that you're pushing the limits of what the nRF52832 can handle here. You can take a look at this case, where a few ways to reduce the SoftDevices RAM usage has been suggested, but I think you should look into acquiring the nRF52833 or nRF52840 which provides more RAM for you.

    Best regards,

    Simon