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

RAM adjustment warnings - different addresses provided

Hi! I get the RAM adjustment warnings when running my nRF52 system:

RAM START ADDR 0x20004000 should be adjusted to 0x20001FE8
RAM SIZE should be adjusted to 0xE018
sd_ble_enable: RAM START at 0x20004000
sd_ble_enable: app_ram_base should be adjusted to 0x20002298
ram size should be adjusted to 0xDD68

However, the addresses and values printed don't match.

  • Why don't they match?
  • Which values should I actually use?

Thanks, Jacob

Parents
  • Hi,

    @Wojtek is pretty much spot on. The two first lines are printed when you call

    CHECK_RAM_START_ADDR(CENTRAL_LINK_COUNT,PERIPHERAL_LINK_COUNT);
    

    The function returns RAM start address and size based on

    • Information about the SoC you are working (some defines in the code and information about amount of RAM found in the FICR registers)
    • Default information about attribute database.
    • How many peripheral and central links you plan to use.

    The three next lines are printed when you call softdevice_enable(&ble_enable_params);. It returns RAM start address and size based on the information mentioned above, but also based on your BLE parameters. These parameters might be much more specific and might include details that will change the required RAM settings. Hence, when choosing RAM size and start address you should rely on the three last lines. We will try to make it a little clearer in a future SDK release.

Reply
  • Hi,

    @Wojtek is pretty much spot on. The two first lines are printed when you call

    CHECK_RAM_START_ADDR(CENTRAL_LINK_COUNT,PERIPHERAL_LINK_COUNT);
    

    The function returns RAM start address and size based on

    • Information about the SoC you are working (some defines in the code and information about amount of RAM found in the FICR registers)
    • Default information about attribute database.
    • How many peripheral and central links you plan to use.

    The three next lines are printed when you call softdevice_enable(&ble_enable_params);. It returns RAM start address and size based on the information mentioned above, but also based on your BLE parameters. These parameters might be much more specific and might include details that will change the required RAM settings. Hence, when choosing RAM size and start address you should rely on the three last lines. We will try to make it a little clearer in a future SDK release.

Children
No Data
Related