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 (see
SoftDevice API). 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.