You are on page 1of 13






Program Memory
SizeOfProgMem
RAM
0x2000 0000 + *MSP initial value -
Application SizeOfRAM Call Stack
region

Application
region
CODE_R1_BASE Application Vector Table
RAM_R1_BASE
SoftDevice SoftDevice
region region
(Binary file from Nordic) 0x2000 0000
System Vector Table
0x0000 0000
// Use the SoftDevice API functions as normal C functions.
application.c #include "ble_gap.h"
sd_ble_gap_connect(…);

// The functions are definitions that expands to SVCs.


application.h uint32_t __svc(SD_BLE_GAP_CONNECT) sd_ble_gap_connect(…);

// SoftDevice functions are called from the


// SVC_Handler interrupt routine.
void SVC_Handler(int svc_num, int *svc_args)
{
softdevice.c switch(svc_number)
{

case SD_BLE_GAP_CONNECT:
sd_ble_gap_connect();

// SWI2 -> SoftDevice Event Notification


void SWI2_EGU2_IRQHandler(void)
{
// Poll for SoftDevice events.
}








Priority levels









▪ ▪
▪ ▪
▪ ▪
▪ ▪

▪ ▪
▪ ▪
▪ ▪

You might also like