Embassy
nrf-softdevice-s112

Crates

git

Versions

default

Flavors

pub unsafe fn sd_softdevice_enable(
p_clock_lf_cfg: *const nrf_clock_lf_cfg_t,
fault_handler: nrf_fault_handler_t
) -> u32
Expand description

@brief Enables the SoftDevice and by extension the protocol stack.

@note Some care must be taken if a low frequency clock source is already running when calling this function: If the LF clock has a different source then the one currently running, it will be stopped. Then, the new clock source will be started.

@note This function has no effect when returning with an error.

@post If return code is ::NRF_SUCCESS - SoC library and protocol stack APIs are made available. - A portion of RAM will be unavailable (see relevant SDS documentation). - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation). - Interrupts will not arrive from protected peripherals or interrupts. - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice. - Interrupt latency may be affected by the SoftDevice (see relevant SDS documentation). - Chosen low frequency clock source will be running.

@param p_clock_lf_cfg Low frequency clock source and accuracy. If NULL the clock will be configured as an RC source with rc_ctiv = 16 and .rc_temp_ctiv = 2 In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock. @param fault_handler Callback to be invoked in case of fault, cannot be NULL.

@retval ::NRF_SUCCESS @retval ::NRF_ERROR_INVALID_ADDR Invalid or NULL pointer supplied. @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated. @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level. @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected. @retval ::NRF_ERROR_INVALID_PARAM Invalid clock source configuration supplied in p_clock_lf_cfg.