Integration with applications
The SoftDevice Controller is an RTOS-agnostic library built for the Nordic Semiconductor nRF52 and nRF53 Series that supports Bluetooth 5.
For the nRF53 Series, the requirements described in this document are only relevant for applications running alongside the SoftDevice Controller on the network processor.
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:
PPI channels from
31(for the nRF52 Series)
DPPI channels from
13(for the nRF53 Series)
Some of these peripherals can be accessed by APIs provided in
sdc_soc.h and by Multiprotocol Service Layer.
The application can access most of these directly using Timeslot.
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.
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: