The SoftDevice Application Programming Interface (API) is available to applications as a C programming language interface based on Supervisor Call (SVC)s and defined in a set of header files.
All variants of SoftDevices with the same version number are API compatible (see SoftDevice identification and revision scheme). In addition to a Protocol API enabling wireless applications, there is an nRF API that exposes the functionality of both the SoftDevice Manager (SDM) and the System on Chip (SoC) library.
Note: When the SoftDevice is disabled, only a subset of the SoftDevice APIs is
available to the application. For more
information about enabling and disabling the SoftDevice, see SoftDevice enable and disable.
SVCs are software triggered interrupts conforming to a procedure call standard for parameter
passing and return values. Each SoftDevice API call triggers a SVC interrupt. The SoftDevice
SVC interrupt handler locates the correct SoftDevice function, allowing applications to
compile without any API function address information at compile time. This removes the need
for the application to link the SoftDevice. The header files contain all information required
for the application to invoke the API functions with standard programming language prototypes.
This SVC interface makes SoftDevice API calls thread-safe: they can be invoked from the
application's different priority levels without additional synchronization mechanisms.
Note: SoftDevice API functions can only be called from a lower interrupt priority
level (higher numerical value for the priority level) than the SVC priority. For more
information, see Interrupt priority levels.