The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 148:fd96258d940d 1 /*
Kojto 148:fd96258d940d 2 * Copyright (c) 2000 Nordic Semiconductor ASA
Kojto 148:fd96258d940d 3 * All rights reserved.
Kojto 148:fd96258d940d 4 *
Kojto 148:fd96258d940d 5 * Redistribution and use in source and binary forms, with or without modification,
Kojto 148:fd96258d940d 6 * are permitted provided that the following conditions are met:
Kojto 148:fd96258d940d 7 *
Kojto 148:fd96258d940d 8 * 1. Redistributions of source code must retain the above copyright notice, this list
Kojto 148:fd96258d940d 9 * of conditions and the following disclaimer.
Kojto 148:fd96258d940d 10 *
Kojto 148:fd96258d940d 11 * 2. Redistributions in binary form, except as embedded into a Nordic Semiconductor ASA
Kojto 148:fd96258d940d 12 * integrated circuit in a product or a software update for such product, must reproduce
Kojto 148:fd96258d940d 13 * the above copyright notice, this list of conditions and the following disclaimer in
Kojto 148:fd96258d940d 14 * the documentation and/or other materials provided with the distribution.
Kojto 148:fd96258d940d 15 *
Kojto 148:fd96258d940d 16 * 3. Neither the name of Nordic Semiconductor ASA nor the names of its contributors may be
Kojto 148:fd96258d940d 17 * used to endorse or promote products derived from this software without specific prior
Kojto 148:fd96258d940d 18 * written permission.
Kojto 148:fd96258d940d 19 *
Kojto 148:fd96258d940d 20 * 4. This software, with or without modification, must only be used with a
Kojto 148:fd96258d940d 21 * Nordic Semiconductor ASA integrated circuit.
Kojto 148:fd96258d940d 22 *
Kojto 148:fd96258d940d 23 * 5. Any software provided in binary or object form under this license must not be reverse
Kojto 148:fd96258d940d 24 * engineered, decompiled, modified and/or disassembled.
Kojto 148:fd96258d940d 25 *
Kojto 148:fd96258d940d 26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
Kojto 148:fd96258d940d 27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
Kojto 148:fd96258d940d 28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Kojto 148:fd96258d940d 29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
Kojto 148:fd96258d940d 30 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
Kojto 148:fd96258d940d 31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
Kojto 148:fd96258d940d 32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
Kojto 148:fd96258d940d 33 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Kojto 148:fd96258d940d 34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
Kojto 148:fd96258d940d 35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Kojto 148:fd96258d940d 36 *
Kojto 148:fd96258d940d 37 */
Kojto 148:fd96258d940d 38
Kojto 148:fd96258d940d 39 /**
Kojto 148:fd96258d940d 40 @defgroup nrf_sdm_api SoftDevice Manager API
Kojto 148:fd96258d940d 41 @{
Kojto 148:fd96258d940d 42
Kojto 148:fd96258d940d 43 @brief APIs for SoftDevice management.
Kojto 148:fd96258d940d 44
Kojto 148:fd96258d940d 45 */
Kojto 148:fd96258d940d 46
Kojto 148:fd96258d940d 47 /* Header guard */
Kojto 148:fd96258d940d 48 #ifndef NRF_SDM_H__
Kojto 148:fd96258d940d 49 #define NRF_SDM_H__
Kojto 148:fd96258d940d 50
Kojto 148:fd96258d940d 51 #include "nrf_svc.h"
Kojto 148:fd96258d940d 52 #include "nrf.h"
Kojto 148:fd96258d940d 53 #include "nrf_soc.h"
Kojto 148:fd96258d940d 54 #include "nrf_error_sdm.h"
Kojto 148:fd96258d940d 55
Kojto 148:fd96258d940d 56 #ifdef __cplusplus
Kojto 148:fd96258d940d 57 extern "C" {
Kojto 148:fd96258d940d 58 #endif
Kojto 148:fd96258d940d 59
Kojto 148:fd96258d940d 60 /** @addtogroup NRF_SDM_DEFINES Defines
Kojto 148:fd96258d940d 61 * @{ */
Kojto 148:fd96258d940d 62 #ifdef NRFSOC_DOXYGEN
Kojto 148:fd96258d940d 63 //Stuff defined elsewere, to satisfy doxygen
Kojto 148:fd96258d940d 64 #define MBR_SIZE 0
Kojto 148:fd96258d940d 65 #warning test
Kojto 148:fd96258d940d 66 #endif
Kojto 148:fd96258d940d 67
Kojto 148:fd96258d940d 68 /** @brief SoftDevice Manager SVC Base number. */
Kojto 148:fd96258d940d 69 #define SDM_SVC_BASE 0x10
Kojto 148:fd96258d940d 70
Kojto 148:fd96258d940d 71 /** @brief Defines the SoftDevice Information Structure location (address) as an offset from
Kojto 148:fd96258d940d 72 the start of the softdevice (without MBR)*/
Kojto 148:fd96258d940d 73 #define SOFTDEVICE_INFO_STRUCT_OFFSET (0x2000)
Kojto 148:fd96258d940d 74
Kojto 148:fd96258d940d 75 /** @brief Defines the absolute Softdevice information structure location (address)*/
Kojto 148:fd96258d940d 76 #define SOFTDEVICE_INFO_STRUCT_ADDRESS (SOFTDEVICE_INFO_STRUCT_OFFSET + MBR_SIZE)
Kojto 148:fd96258d940d 77
Kojto 148:fd96258d940d 78 /** @brief Defines the offset for Softdevice size value relative to Softdevice base address*/
Kojto 148:fd96258d940d 79 #define SD_SIZE_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x08)
Kojto 148:fd96258d940d 80
Kojto 148:fd96258d940d 81 /** @brief Defines the offset for FWID value relative to Softdevice base address*/
Kojto 148:fd96258d940d 82 #define SD_FWID_OFFSET (SOFTDEVICE_INFO_STRUCT_OFFSET + 0x0C)
Kojto 148:fd96258d940d 83
Kojto 148:fd96258d940d 84 /** @brief Defines a macro for retreiving the actual Softdevice size value from a given base address
Kojto 148:fd96258d940d 85 use @ref MBR_SIZE when Softdevice is installed just above the MBR (the usual case)*/
Kojto 148:fd96258d940d 86 #define SD_SIZE_GET(baseaddr) (*((uint32_t *) ((baseaddr) + SD_SIZE_OFFSET)))
Kojto 148:fd96258d940d 87
Kojto 148:fd96258d940d 88 /** @brief Defines a macro for retreiving the actual FWID value from a given base address
Kojto 148:fd96258d940d 89 use @ref MBR_SIZE when Softdevice is installed just above the MBR (the usual case)*/
Kojto 148:fd96258d940d 90 #define SD_FWID_GET(baseaddr) ((*((uint32_t *) ((baseaddr) + SD_FWID_OFFSET))) & 0xFFFF)
Kojto 148:fd96258d940d 91
Kojto 148:fd96258d940d 92 /**@defgroup NRF_FAULT_ID_RANGES Fault ID ranges
Kojto 148:fd96258d940d 93 * @{ */
Kojto 148:fd96258d940d 94 #define NRF_FAULT_ID_SD_RANGE_START 0x00000000 /**< SoftDevice ID range start. */
Kojto 148:fd96258d940d 95 #define NRF_FAULT_ID_APP_RANGE_START 0x00001000 /**< Application ID range start. */
Kojto 148:fd96258d940d 96 /**@} */
Kojto 148:fd96258d940d 97
Kojto 148:fd96258d940d 98 /**@defgroup NRF_FAULT_IDS Fault ID types
Kojto 148:fd96258d940d 99 * @{ */
Kojto 148:fd96258d940d 100 #define NRF_FAULT_ID_SD_ASSERT (NRF_FAULT_ID_SD_RANGE_START + 1) /**< SoftDevice assertion. The info parameter will be set to 0x00000000. */
Kojto 148:fd96258d940d 101 #define NRF_FAULT_ID_APP_MEMACC (NRF_FAULT_ID_APP_RANGE_START + 1) /**< Application invalid memory access. The info parameter will contain the address in memory that was accessed. */
Kojto 148:fd96258d940d 102 /**@} */
Kojto 148:fd96258d940d 103
Kojto 148:fd96258d940d 104 /** @} */
Kojto 148:fd96258d940d 105
Kojto 148:fd96258d940d 106 /** @addtogroup NRF_SDM_ENUMS Enumerations
Kojto 148:fd96258d940d 107 * @{ */
Kojto 148:fd96258d940d 108
Kojto 148:fd96258d940d 109 /**@brief nRF SoftDevice Manager API SVC numbers. */
Kojto 148:fd96258d940d 110 enum NRF_SD_SVCS
Kojto 148:fd96258d940d 111 {
Kojto 148:fd96258d940d 112 SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */
Kojto 148:fd96258d940d 113 SD_SOFTDEVICE_DISABLE, /**< ::sd_softdevice_disable */
Kojto 148:fd96258d940d 114 SD_SOFTDEVICE_IS_ENABLED, /**< ::sd_softdevice_is_enabled */
Kojto 148:fd96258d940d 115 SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, /**< ::sd_softdevice_vector_table_base_set */
Kojto 148:fd96258d940d 116 SVC_SDM_LAST /**< Placeholder for last SDM SVC */
Kojto 148:fd96258d940d 117 };
Kojto 148:fd96258d940d 118
Kojto 148:fd96258d940d 119 /** @} */
Kojto 148:fd96258d940d 120
Kojto 148:fd96258d940d 121 /** @addtogroup NRF_SDM_DEFINES Defines
Kojto 148:fd96258d940d 122 * @{ */
Kojto 148:fd96258d940d 123
Kojto 148:fd96258d940d 124 /**@defgroup NRF_CLOCK_LF_XTAL_ACCURACY Clock accuracy * @{ */
Kojto 148:fd96258d940d 125
Kojto 148:fd96258d940d 126 #define NRF_CLOCK_LF_XTAL_ACCURACY_250_PPM (0) /* Default */
Kojto 148:fd96258d940d 127 #define NRF_CLOCK_LF_XTAL_ACCURACY_500_PPM (1)
Kojto 148:fd96258d940d 128 #define NRF_CLOCK_LF_XTAL_ACCURACY_150_PPM (2)
Kojto 148:fd96258d940d 129 #define NRF_CLOCK_LF_XTAL_ACCURACY_100_PPM (3)
Kojto 148:fd96258d940d 130 #define NRF_CLOCK_LF_XTAL_ACCURACY_75_PPM (4)
Kojto 148:fd96258d940d 131 #define NRF_CLOCK_LF_XTAL_ACCURACY_50_PPM (5)
Kojto 148:fd96258d940d 132 #define NRF_CLOCK_LF_XTAL_ACCURACY_30_PPM (6)
Kojto 148:fd96258d940d 133 #define NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM (7)
Kojto 148:fd96258d940d 134
Kojto 148:fd96258d940d 135 /** @} */
Kojto 148:fd96258d940d 136
Kojto 148:fd96258d940d 137 /**@defgroup NRF_CLOCK_LF_SRC Possible lfclk oscillator sources * @{ */
Kojto 148:fd96258d940d 138
Kojto 148:fd96258d940d 139 #define NRF_CLOCK_LF_SRC_RC (0) /**< LFCLK RC oscillator. */
Kojto 148:fd96258d940d 140 #define NRF_CLOCK_LF_SRC_XTAL (1) /**< LFCLK crystal oscillator. */
Kojto 148:fd96258d940d 141 #define NRF_CLOCK_LF_SRC_SYNTH (2) /**< LFCLK Synthesized from HFCLK. */
Kojto 148:fd96258d940d 142
Kojto 148:fd96258d940d 143 /** @} */
Kojto 148:fd96258d940d 144 /** @} */
Kojto 148:fd96258d940d 145
Kojto 148:fd96258d940d 146 /** @addtogroup NRF_SDM_TYPES Types
Kojto 148:fd96258d940d 147 * @{ */
Kojto 148:fd96258d940d 148
Kojto 148:fd96258d940d 149 /**@brief Type representing lfclk oscillator source. */
Kojto 148:fd96258d940d 150 typedef struct
Kojto 148:fd96258d940d 151 {
Kojto 148:fd96258d940d 152 uint8_t source; /**< LF oscillator clock source, see @ref NRF_CLOCK_LF_SRC. */
Kojto 148:fd96258d940d 153 uint8_t rc_ctiv; /**< Only for NRF_CLOCK_LF_SRC_RC: Calibration timer interval in 1/4 second
Kojto 148:fd96258d940d 154 units (nRF51: 1-64, nRF52: 1-32).
Kojto 148:fd96258d940d 155 @note To avoid excessive clock drift, 0.5 degrees Celsius is the
Kojto 148:fd96258d940d 156 maximum temperature change allowed in one calibration timer
Kojto 148:fd96258d940d 157 interval. The interval should be selected to ensure this.
Kojto 148:fd96258d940d 158
Kojto 148:fd96258d940d 159 @note Must be 0 if source is not NRF_CLOCK_LF_SRC_RC. */
Kojto 148:fd96258d940d 160 uint8_t rc_temp_ctiv; /**< Only for NRF_CLOCK_LF_SRC_RC: How often (in number of calibration
Kojto 148:fd96258d940d 161 intervals) the RC oscillator shall be calibrated if the temperature
Kojto 148:fd96258d940d 162 hasn't changed.
Kojto 148:fd96258d940d 163 0: Always calibrate even if the temperature hasn't changed.
Kojto 148:fd96258d940d 164 1: Only calibrate if the temperature has changed (nRF51 only).
Kojto 148:fd96258d940d 165 2-33: Check the temperature and only calibrate if it has changed,
Kojto 148:fd96258d940d 166 however calibration will take place every rc_temp_ctiv
Kojto 148:fd96258d940d 167 intervals in any case.
Kojto 148:fd96258d940d 168
Kojto 148:fd96258d940d 169 @note Must be 0 if source is not NRF_CLOCK_LF_SRC_RC.
Kojto 148:fd96258d940d 170
Kojto 148:fd96258d940d 171 @note For nRF52, the application must ensure calibration at least once
Kojto 148:fd96258d940d 172 every 8 seconds to ensure +/-250ppm clock stability. The
Kojto 148:fd96258d940d 173 recommended configuration for NRF_CLOCK_LF_SRC_RC on nRF52 is
Kojto 148:fd96258d940d 174 rc_ctiv=16 and rc_temp_ctiv=2. This will ensure calibration at
Kojto 148:fd96258d940d 175 least once every 8 seconds and for temperature changes of 0.5
Kojto 148:fd96258d940d 176 degrees Celsius every 4 seconds. See the Product Specification
Kojto 148:fd96258d940d 177 for the nRF52 device being used for more information.*/
Kojto 148:fd96258d940d 178 uint8_t xtal_accuracy; /**< External crystal clock accuracy used in the LL to compute timing windows.
Kojto 148:fd96258d940d 179
Kojto 148:fd96258d940d 180 @note For the NRF_CLOCK_LF_SRC_RC clock source this parameter is ignored. */
Kojto 148:fd96258d940d 181 } nrf_clock_lf_cfg_t;
Kojto 148:fd96258d940d 182
Kojto 148:fd96258d940d 183 /**@brief Fault Handler type.
Kojto 148:fd96258d940d 184 *
Kojto 148:fd96258d940d 185 * When certain unrecoverable errors occur within the application or SoftDevice the fault handler will be called back.
Kojto 148:fd96258d940d 186 * The protocol stack will be in an undefined state when this happens and the only way to recover will be to
Kojto 148:fd96258d940d 187 * perform a reset, using e.g. CMSIS NVIC_SystemReset().
Kojto 148:fd96258d940d 188 *
Kojto 148:fd96258d940d 189 * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the fault callback.
Kojto 148:fd96258d940d 190 *
Kojto 148:fd96258d940d 191 * @param[in] id Fault identifier. See @ref NRF_FAULT_IDS.
Kojto 148:fd96258d940d 192 * @param[in] pc The program counter of the instruction that triggered the fault.
Kojto 148:fd96258d940d 193 * @param[in] info Optional additional information regarding the fault. Refer to each Fault identifier for details.
Kojto 148:fd96258d940d 194 */
Kojto 148:fd96258d940d 195 typedef void (*nrf_fault_handler_t)(uint32_t id, uint32_t pc, uint32_t info);
Kojto 148:fd96258d940d 196
Kojto 148:fd96258d940d 197 /** @} */
Kojto 148:fd96258d940d 198
Kojto 148:fd96258d940d 199 /** @addtogroup NRF_SDM_FUNCTIONS Functions
Kojto 148:fd96258d940d 200 * @{ */
Kojto 148:fd96258d940d 201
Kojto 148:fd96258d940d 202 /**@brief Enables the SoftDevice and by extension the protocol stack.
Kojto 148:fd96258d940d 203 *
Kojto 148:fd96258d940d 204 * @note Some care must be taken if a low frequency clock source is already running when calling this function:
Kojto 148:fd96258d940d 205 * If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
Kojto 148:fd96258d940d 206 * clock source will be started.
Kojto 148:fd96258d940d 207 *
Kojto 148:fd96258d940d 208 * @note This function has no effect when returning with an error.
Kojto 148:fd96258d940d 209 *
Kojto 148:fd96258d940d 210 * @post If return code is ::NRF_SUCCESS
Kojto 148:fd96258d940d 211 * - SoC library and protocol stack APIs are made available.
Kojto 148:fd96258d940d 212 * - A portion of RAM will be unavailable (see relevant SDS documentation).
Kojto 148:fd96258d940d 213 * - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation).
Kojto 148:fd96258d940d 214 * - Interrupts will not arrive from protected peripherals or interrupts.
Kojto 148:fd96258d940d 215 * - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice.
Kojto 148:fd96258d940d 216 * - Interrupt latency may be affected by the SoftDevice (see relevant SDS documentation).
Kojto 148:fd96258d940d 217 * - Chosen low frequency clock source will be running.
Kojto 148:fd96258d940d 218 *
Kojto 148:fd96258d940d 219 * @param p_clock_lf_cfg Low frequency clock source and accuracy.
Kojto 148:fd96258d940d 220 If NULL the clock will be configured as an rc source with rc_ctiv = 16 and .rc_temp_ctiv = 2
Kojto 148:fd96258d940d 221 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.
Kojto 148:fd96258d940d 222 * @param fault_handler Callback to be invoked in case of fault.
Kojto 148:fd96258d940d 223 *
Kojto 148:fd96258d940d 224 * @retval ::NRF_SUCCESS
Kojto 148:fd96258d940d 225 * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated.
Kojto 148:fd96258d940d 226 * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level.
Kojto 148:fd96258d940d 227 * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected.
Kojto 148:fd96258d940d 228 */
Kojto 148:fd96258d940d 229 SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));
Kojto 148:fd96258d940d 230
Kojto 148:fd96258d940d 231
Kojto 148:fd96258d940d 232 /**@brief Disables the SoftDevice and by extension the protocol stack.
Kojto 148:fd96258d940d 233 *
Kojto 148:fd96258d940d 234 * Idempotent function to disable the SoftDevice.
Kojto 148:fd96258d940d 235 *
Kojto 148:fd96258d940d 236 * @post SoC library and protocol stack APIs are made unavailable.
Kojto 148:fd96258d940d 237 * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest).
Kojto 148:fd96258d940d 238 * @post All peripherals used by the SoftDevice will be reset to default values.
Kojto 148:fd96258d940d 239 * @post All of RAM become available.
Kojto 148:fd96258d940d 240 * @post All interrupts are forwarded to the application.
Kojto 148:fd96258d940d 241 * @post LFCLK source chosen in ::sd_softdevice_enable will be left running.
Kojto 148:fd96258d940d 242 *
Kojto 148:fd96258d940d 243 * @retval ::NRF_SUCCESS
Kojto 148:fd96258d940d 244 */
Kojto 148:fd96258d940d 245 SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void));
Kojto 148:fd96258d940d 246
Kojto 148:fd96258d940d 247 /**@brief Check if the SoftDevice is enabled.
Kojto 148:fd96258d940d 248 *
Kojto 148:fd96258d940d 249 * @param[out] p_softdevice_enabled If the SoftDevice is enabled: 1 else 0.
Kojto 148:fd96258d940d 250 *
Kojto 148:fd96258d940d 251 * @retval ::NRF_SUCCESS
Kojto 148:fd96258d940d 252 */
Kojto 148:fd96258d940d 253 SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled));
Kojto 148:fd96258d940d 254
Kojto 148:fd96258d940d 255 /**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the SoftDevice
Kojto 148:fd96258d940d 256 *
Kojto 148:fd96258d940d 257 * This function is only intended to be called when a bootloader is enabled.
Kojto 148:fd96258d940d 258 *
Kojto 148:fd96258d940d 259 * @param[in] address The base address of the interrupt vector table for forwarded interrupts.
Kojto 148:fd96258d940d 260
Kojto 148:fd96258d940d 261 * @retval ::NRF_SUCCESS
Kojto 148:fd96258d940d 262 */
Kojto 148:fd96258d940d 263 SVCALL(SD_SOFTDEVICE_VECTOR_TABLE_BASE_SET, uint32_t, sd_softdevice_vector_table_base_set(uint32_t address));
Kojto 148:fd96258d940d 264
Kojto 148:fd96258d940d 265 /** @} */
Kojto 148:fd96258d940d 266
Kojto 148:fd96258d940d 267 #ifdef __cplusplus
Kojto 148:fd96258d940d 268 }
Kojto 148:fd96258d940d 269 #endif
Kojto 148:fd96258d940d 270 #endif // NRF_SDM_H__
Kojto 148:fd96258d940d 271
Kojto 148:fd96258d940d 272 /**
Kojto 148:fd96258d940d 273 @}
Kojto 148:fd96258d940d 274 */