Integration with applications
The SoftDevice Controller is an RTOS-agnostic library built for the Nordic Semiconductor devices that support Bluetooth.
For the nRF53 Series, the requirements described in this document are only relevant for applications running alongside the SoftDevice Controller on the network processor. For the nRF54H Series, some peripherals in the global domain are reserved so the requirements described here are relevant for all processors.
Applications utilizing the SoftDevice Controller library are responsible for the following:
Ensuring a source of random numbers is available to the SoftDevice Controller (see the message sequence charts below).
The SoftDevice Controller relies on the functionality provided by Nordic Semiconductor’s Multiprotocol Service Layer, which has its own set of requirements that the application must follow.
Ensuring thread-safe operation. This can be achieved by either:
Calling all SoftDevice Controller and MPSL APIs from the same execution priority.
Ensuring that no API call is interrupted by other API calls, for example by using critical sections.
Configuring the number of available links:
Link configuration must be done before enabling the controller.
The application is required to provide a memory buffer the size of which is dependent on the link configuration.
The following peripherals are owned by the SoftDevice Controller and must not be accessed directly by the application:
For the nRF52 Series:
CCM
AAR
NVMC
PPI
channels from17
to31
For the nRF53 Series:
CCM
AAR
NVMC
DPPI
channels from3
to12
For the nRF54H Series:
CCM030
AAR030
DPPIC020
channels from1
to11
DPPIC030
channels1
and3
PPIB030
channels from0
to3
For the nRF54L Series:
CCM00
AAR00
RRAMC
DPPIC10
channels from1
to11
DPPIC00
channels1
and3
PPIB00
channels from0
to3
PPIB10
channels from0
to3
All of the listed resources can be accessed directly using the Timeslot feature.
Message sequence charts
The following message sequence chart shows an example of how to initialize the library. The Multiprotocol Service Layer must be initialized before the SoftDevice Controller is initialized. The application can choose the features that are enabled and the number of links that are supported.
The following message sequence chart shows a scenario where the application sends a command to the controller. Later, it retrieves an event and a data packet. When the host signal is triggered, this indicates that one or more HCI data or event packets are available. Therefore, the host should try to pull data and events until it fails.
Architecture diagrams
The following image shows how the SoftDevice Controller and MPSL integrates into an RTOS-free environment:
The following image shows how the SoftDevice Controller and MPSL integrates into an RTOS: