What is a SoftDevice?

The SoftDevice is the firmware required for 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 already include SoftDevice (if Bluetooth is used).

Firmware development in other IDEs requires you to program SoftDevice into the chip manualy. More on SoftDevice find here