53#include "nrf_error_sdm.h"
63#define SD_MAJOR_VERSION (10)
66#define SD_MINOR_VERSION (0)
69#define SD_BUGFIX_VERSION (0)
72#define SD_VARIANT_ID 115
79#define SD_VERSION (SD_MAJOR_VERSION * 1000000 + SD_MINOR_VERSION * 1000 + SD_BUGFIX_VERSION)
82#define SDM_SVC_BASE 0x10
85#define SD_UNIQUE_STR_SIZE 20
88#define SDM_INFO_FIELD_INVALID (0)
92#define SOFTDEVICE_INFO_STRUCT_OFFSET (0x2000)
96#define SD_INFO_STRUCT_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET)
100#define SD_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x08)
104#define SD_FWID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x0C)
108#define SD_ID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x10)
112#define SD_VERSION_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x14)
117#define SD_UNIQUE_STR_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x18)
121#define SD_INFO_STRUCT_SIZE_GET(baseaddr) (*((uint8_t *) ((baseaddr) + SD_INFO_STRUCT_SIZE_OFFSET)))
125#define SD_SIZE_GET(baseaddr) (*((uint32_t *) ((baseaddr) + SD_SIZE_OFFSET)))
128#define SD_FLASH_SIZE 0x19400
131#define SD_FWID_GET(baseaddr) (*((uint16_t *) ((baseaddr) + SD_FWID_OFFSET)))
134#define SD_ID_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_ID_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
135 ? (*((uint32_t *) ((baseaddr) + SD_ID_OFFSET))) : SDM_INFO_FIELD_INVALID)
138#define SD_VERSION_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_VERSION_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
139 ? (*((uint32_t *) ((baseaddr) + SD_VERSION_OFFSET))) : SDM_INFO_FIELD_INVALID)
142#define SD_UNIQUE_STR_ADDR_GET(baseaddr) ((SD_INFO_STRUCT_SIZE_GET(baseaddr) > (SD_UNIQUE_STR_OFFSET - SOFTDEVICE_INFO_STRUCT_OFFSET)) \
143 ? (((uint8_t *) ((baseaddr) + SD_UNIQUE_STR_OFFSET))) : SDM_INFO_FIELD_INVALID)
147#define NRF_FAULT_ID_SD_RANGE_START 0x00000000
148#define NRF_FAULT_ID_APP_RANGE_START 0x00001000
153#define NRF_FAULT_ID_SD_ASSERT (NRF_FAULT_ID_SD_RANGE_START + 1)
154#define NRF_FAULT_ID_APP_MEMACC (NRF_FAULT_ID_APP_RANGE_START + 1)
184#define NRF_CLOCK_LF_ACCURACY_250_PPM (0)
185#define NRF_CLOCK_LF_ACCURACY_500_PPM (1)
186#define NRF_CLOCK_LF_ACCURACY_150_PPM (2)
187#define NRF_CLOCK_LF_ACCURACY_100_PPM (3)
188#define NRF_CLOCK_LF_ACCURACY_75_PPM (4)
189#define NRF_CLOCK_LF_ACCURACY_50_PPM (5)
190#define NRF_CLOCK_LF_ACCURACY_30_PPM (6)
191#define NRF_CLOCK_LF_ACCURACY_20_PPM (7)
192#define NRF_CLOCK_LF_ACCURACY_10_PPM (8)
193#define NRF_CLOCK_LF_ACCURACY_5_PPM (9)
194#define NRF_CLOCK_LF_ACCURACY_2_PPM (10)
195#define NRF_CLOCK_LF_ACCURACY_1_PPM (11)
202#define NRF_CLOCK_LF_SRC_RC (0)
203#define NRF_CLOCK_LF_SRC_XTAL (1)
204#define NRF_CLOCK_LF_SRC_SYNTH (2)
#define SDM_SVC_BASE
SoftDevice Manager SVC Base number.
Definition nrf_sdm.h:82
NRF_SD_SVCS
nRF SoftDevice Manager API SVC numbers.
Definition nrf_sdm.h:168
@ SVC_SDM_LAST
Definition nrf_sdm.h:172
@ SD_SOFTDEVICE_IS_ENABLED
Definition nrf_sdm.h:171
@ SD_SOFTDEVICE_DISABLE
Definition nrf_sdm.h:170
@ SD_SOFTDEVICE_ENABLE
Definition nrf_sdm.h:169
uint32_t sd_softdevice_enable(nrf_clock_lf_cfg_t const *p_clock_lf_cfg, nrf_fault_handler_t fault_handler)
Enables the SoftDevice and by extension the protocol stack.
uint32_t sd_softdevice_disable(void)
Disables the SoftDevice and by extension the protocol stack.
uint32_t sd_softdevice_is_enabled(uint8_t *p_softdevice_enabled)
Check if the SoftDevice is enabled.
void(* nrf_fault_handler_t)(uint32_t id, uint32_t pc, uint32_t info)
Fault Handler type.
Definition nrf_sdm.h:275
uint8_t hfint_ctiv
Definition nrf_sdm.h:245
uint8_t rc_ctiv
Definition nrf_sdm.h:217
uint16_t hfclk_latency
Definition nrf_sdm.h:243
uint8_t accuracy
Definition nrf_sdm.h:241
uint8_t rc_temp_ctiv
Definition nrf_sdm.h:223
uint8_t source
Definition nrf_sdm.h:216
Type representing LFCLK oscillator source.
Definition nrf_sdm.h:215