Memory resource requirements

S145 SoftDevice

This section describes the memory resource requirements for an enabled and disabled S145 SoftDevice.

NVM

The NVM usage of the SoftDevice can be found in the SoftDevice properties section of the release notes. This value corresponds to area from SD_CODE_BASE and up to the Reserved memory partition on top of NMV in Memory resource map. The NVM usage of the SoftDevice can be found by looking at SD_FLASH_SIZE defined in nrf_sdm.h.

RAM

Table 1. S145 memory resource requirements for RAM
RAM S145 Enabled S145 Disabled
SoftDevice RAM consumption Minimum required RAM 1 + configurable resources 0 bytes
APP_RAM_BASE address (minimum required value) 0x20000080 + SoftDevice RAM consumption 0x20000080

Call stack

By default, the nRF54L System on Chip (SoC) has a shared call stack with both application stack frames and SoftDevice stack frames, managed by the Main Stack Pointer (MSP).

The application configures the call stack, and the MSP gets initialized on reset to the address specified by the application vector table entry 0. In its reset vector the application might configure the CPU to use the Process Stack Pointer (PSP) in thread mode. This configuration is optional but might be required by an OS, for example, to isolate application threads and OS context memory. The application programmer must be aware that the SoftDevice uses the MSP as it is always executed in exception mode.

Note: It is customary, but not required, to let the stack run downwards from the upper limit of the RAM Region.

With each major release of an S145 SoftDevice, its maximum (worst case) call stack requirement might be updated. The SoftDevice uses the call stack when SoftDevice interrupt handlers execute. These are asynchronous to the application, so the application programmer must reserve call stack for the application in addition to the call stack requirement by the SoftDevice.

The application must reserve sufficient space to satisfy both the application and the SoftDevice stack memory requirements.

The SoftDevice does not use the Arm® Cortex®-M33 Floating-Point Unit (FPU) and does not configure any floating-point registers. S145 Memory resource requirements for call stack depicts the maximum call stack size that might be consumed by the SoftDevice when not using the FPU.

The SoftDevice uses multiple interrupt levels, as described in detail in Interrupt model and processor availability. If FPU is used by the application, the processor needs to reserve memory in the stack frame for stacking the FPU registers for each interrupt level used by the SoftDevice. This must be accounted for when configuring the total call stack size. For more information on how the use of multiple interrupt levels impacts the stack size when using the FPU, see Application Note 298 from Arm.

Table 2. S145 Memory resource requirements for call stack
Call stack S145 Enabled S145 Disabled
Maximum usage with FPU disabled See release notes 0 bytes

Heap

There is no heap required by nRF54L SoftDevices. The application is free to allocate and use a heap without disrupting the SoftDevice functionality.

1 For the minimum RAM required by the SoftDevice, see the SoftDevice properties section of the release notes.