What is a softdevice?

January 16, 2019 |

The SoftDevice is the firmware required to have with each Bluetooth application.

It provides a low-level API over Bluetooth and other capabilities of the chip.

Here is how the application communicates with the softdevice: the SVC calls (each of which has a different number) trigger the SVC IRQ handler which the softdevice implements and performs the requested action. This is why you don’t have to link with the softdevice, there’s nothing to link with, the entire communication between the two is done with SVC calls. That’s also why there’s no .c file, there’s no C, apart from the SVCALL() macro which expands into 2 lines of assembler which call the SVC call with the correct number and return.

All examples made on mbed.org platform have already included Softdevice (if Bluetooth is used).

Firmware development in other IDEs requires to program softdevice into chip manualy. More on Softdevice fine here:

http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.softdevices52%2Fdita%2Fnrf52%2Fsoftdevices.html