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
Anna Bridge 142:4eea097334d6 1 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 2 * @file em_system.h
Anna Bridge 142:4eea097334d6 3 * @brief System API
Anna Bridge 160:5571c4ff569f 4 * @version 5.3.3
Anna Bridge 142:4eea097334d6 5 *******************************************************************************
Anna Bridge 160:5571c4ff569f 6 * # License
Anna Bridge 142:4eea097334d6 7 * <b>Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com</b>
Anna Bridge 142:4eea097334d6 8 *******************************************************************************
Anna Bridge 142:4eea097334d6 9 *
Anna Bridge 142:4eea097334d6 10 * Permission is granted to anyone to use this software for any purpose,
Anna Bridge 142:4eea097334d6 11 * including commercial applications, and to alter it and redistribute it
Anna Bridge 142:4eea097334d6 12 * freely, subject to the following restrictions:
Anna Bridge 142:4eea097334d6 13 *
Anna Bridge 142:4eea097334d6 14 * 1. The origin of this software must not be misrepresented; you must not
Anna Bridge 142:4eea097334d6 15 * claim that you wrote the original software.
Anna Bridge 142:4eea097334d6 16 * 2. Altered source versions must be plainly marked as such, and must not be
Anna Bridge 142:4eea097334d6 17 * misrepresented as being the original software.
Anna Bridge 142:4eea097334d6 18 * 3. This notice may not be removed or altered from any source distribution.
Anna Bridge 142:4eea097334d6 19 *
Anna Bridge 142:4eea097334d6 20 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
Anna Bridge 142:4eea097334d6 21 * obligation to support this Software. Silicon Labs is providing the
Anna Bridge 142:4eea097334d6 22 * Software "AS IS", with no express or implied warranties of any kind,
Anna Bridge 142:4eea097334d6 23 * including, but not limited to, any implied warranties of merchantability
Anna Bridge 142:4eea097334d6 24 * or fitness for any particular purpose or warranties against infringement
Anna Bridge 142:4eea097334d6 25 * of any proprietary rights of a third party.
Anna Bridge 142:4eea097334d6 26 *
Anna Bridge 142:4eea097334d6 27 * Silicon Labs will not be liable for any consequential, incidental, or
Anna Bridge 142:4eea097334d6 28 * special damages, or any other relief, or for any claim by any third party,
Anna Bridge 142:4eea097334d6 29 * arising from your use of this Software.
Anna Bridge 142:4eea097334d6 30 *
Anna Bridge 142:4eea097334d6 31 ******************************************************************************/
Anna Bridge 142:4eea097334d6 32
Anna Bridge 142:4eea097334d6 33 #ifndef EM_SYSTEM_H
Anna Bridge 142:4eea097334d6 34 #define EM_SYSTEM_H
Anna Bridge 142:4eea097334d6 35
Anna Bridge 142:4eea097334d6 36 #include <stdbool.h>
Anna Bridge 142:4eea097334d6 37 #include "em_device.h"
Anna Bridge 142:4eea097334d6 38
Anna Bridge 142:4eea097334d6 39 #ifdef __cplusplus
Anna Bridge 142:4eea097334d6 40 extern "C" {
Anna Bridge 142:4eea097334d6 41 #endif
Anna Bridge 142:4eea097334d6 42
Anna Bridge 142:4eea097334d6 43 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 44 * @addtogroup emlib
Anna Bridge 142:4eea097334d6 45 * @{
Anna Bridge 142:4eea097334d6 46 ******************************************************************************/
Anna Bridge 142:4eea097334d6 47
Anna Bridge 142:4eea097334d6 48 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 49 * @addtogroup SYSTEM
Anna Bridge 142:4eea097334d6 50 * @brief System API
Anna Bridge 142:4eea097334d6 51 * @details
Anna Bridge 142:4eea097334d6 52 * This module contains functions to read information such as RAM and Flash size,
Anna Bridge 142:4eea097334d6 53 * device unique ID, chip revision, family and part number from the @ref DEVINFO and
Anna Bridge 142:4eea097334d6 54 * @ref SCB blocks. Functions to configure and read status from the FPU are available for
Anna Bridge 142:4eea097334d6 55 * compatible devices.
Anna Bridge 142:4eea097334d6 56 * @{
Anna Bridge 142:4eea097334d6 57 ******************************************************************************/
Anna Bridge 142:4eea097334d6 58
Anna Bridge 142:4eea097334d6 59 /*******************************************************************************
Anna Bridge 142:4eea097334d6 60 ******************************** ENUMS ************************************
Anna Bridge 142:4eea097334d6 61 ******************************************************************************/
Anna Bridge 142:4eea097334d6 62
Anna Bridge 142:4eea097334d6 63 /** Family identifiers. */
Anna Bridge 160:5571c4ff569f 64 typedef enum {
Anna Bridge 142:4eea097334d6 65 /* New style family #defines */
Anna Bridge 142:4eea097334d6 66 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32G)
Anna Bridge 142:4eea097334d6 67 systemPartFamilyEfm32Gecko = _DEVINFO_PART_DEVICE_FAMILY_EFM32G, /**< EFM32 Gecko Device Family */
Anna Bridge 142:4eea097334d6 68 #endif
Anna Bridge 142:4eea097334d6 69 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32GG)
Anna Bridge 160:5571c4ff569f 70 systemPartFamilyEfm32Giant = _DEVINFO_PART_DEVICE_FAMILY_EFM32GG, /**< EFM32 Giant Gecko Series 0 Device Family */
Anna Bridge 160:5571c4ff569f 71 #endif
Anna Bridge 160:5571c4ff569f 72 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32GG11B)
Anna Bridge 160:5571c4ff569f 73 systemPartFamilyEfm32Giant11B = _DEVINFO_PART_DEVICE_FAMILY_EFM32GG11B, /**< EFM32 Giant Gecko Series 1 Config 1 Basic Device Family */
Anna Bridge 142:4eea097334d6 74 #endif
Anna Bridge 142:4eea097334d6 75 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32TG)
Anna Bridge 142:4eea097334d6 76 systemPartFamilyEfm32Tiny = _DEVINFO_PART_DEVICE_FAMILY_EFM32TG, /**< EFM32 Tiny Gecko Device Family */
Anna Bridge 142:4eea097334d6 77 #endif
Anna Bridge 160:5571c4ff569f 78 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32TG11B)
Anna Bridge 160:5571c4ff569f 79 systemPartFamilyEfm32Tiny11B = _DEVINFO_PART_DEVICE_FAMILY_EFM32TG11B, /**< EFM32 Tiny Gecko 11 Device Family */
Anna Bridge 160:5571c4ff569f 80 #endif
Anna Bridge 142:4eea097334d6 81 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32LG)
Anna Bridge 142:4eea097334d6 82 systemPartFamilyEfm32Leopard = _DEVINFO_PART_DEVICE_FAMILY_EFM32LG, /**< EFM32 Leopard Gecko Device Family */
Anna Bridge 142:4eea097334d6 83 #endif
Anna Bridge 142:4eea097334d6 84 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32WG)
Anna Bridge 142:4eea097334d6 85 systemPartFamilyEfm32Wonder = _DEVINFO_PART_DEVICE_FAMILY_EFM32WG, /**< EFM32 Wonder Gecko Device Family */
Anna Bridge 142:4eea097334d6 86 #endif
Anna Bridge 142:4eea097334d6 87 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32ZG)
Anna Bridge 142:4eea097334d6 88 systemPartFamilyEfm32Zero = _DEVINFO_PART_DEVICE_FAMILY_EFM32ZG, /**< EFM32 Zero Gecko Device Family */
Anna Bridge 142:4eea097334d6 89 #endif
Anna Bridge 142:4eea097334d6 90 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32HG)
Anna Bridge 142:4eea097334d6 91 systemPartFamilyEfm32Happy = _DEVINFO_PART_DEVICE_FAMILY_EFM32HG, /**< EFM32 Happy Gecko Device Family */
Anna Bridge 142:4eea097334d6 92 #endif
Anna Bridge 142:4eea097334d6 93 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32PG1B)
Anna Bridge 142:4eea097334d6 94 systemPartFamilyEfm32Pearl1B = _DEVINFO_PART_DEVICE_FAMILY_EFM32PG1B, /**< EFM32 Pearl Gecko Series 1 Config 1 Basic Device Family */
Anna Bridge 142:4eea097334d6 95 #endif
Anna Bridge 142:4eea097334d6 96 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32JG1B)
Anna Bridge 142:4eea097334d6 97 systemPartFamilyEfm32Jade1B = _DEVINFO_PART_DEVICE_FAMILY_EFM32JG1B, /**< EFM32 Jade Gecko Series 1 Config 1 Basic Device Family */
Anna Bridge 142:4eea097334d6 98 #endif
Anna Bridge 142:4eea097334d6 99 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32PG12B)
Anna Bridge 160:5571c4ff569f 100 systemPartFamilyEfm32Pearl12B = _DEVINFO_PART_DEVICE_FAMILY_EFM32PG12B, /**< EFM32 Pearl Gecko Series 1 Config 2 Basic Device Family */
Anna Bridge 142:4eea097334d6 101 #endif
Anna Bridge 142:4eea097334d6 102 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32JG12B)
Anna Bridge 160:5571c4ff569f 103 systemPartFamilyEfm32Jade12B = _DEVINFO_PART_DEVICE_FAMILY_EFM32JG12B, /**< EFM32 Jade Gecko Series 1 Config 2 Basic Device Family */
Anna Bridge 142:4eea097334d6 104 #endif
Anna Bridge 142:4eea097334d6 105 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32PG13B)
Anna Bridge 160:5571c4ff569f 106 systemPartFamilyEfm32Pearl13B = _DEVINFO_PART_DEVICE_FAMILY_EFM32PG13B, /**< EFM32 Pearl Gecko Series 1 Config 3 Basic Device Family */
Anna Bridge 142:4eea097334d6 107 #endif
Anna Bridge 142:4eea097334d6 108 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32JG13B)
Anna Bridge 160:5571c4ff569f 109 systemPartFamilyEfm32Jade13B = _DEVINFO_PART_DEVICE_FAMILY_EFM32JG13B, /**< EFM32 Jade Gecko Series 1 Config 3 Basic Device Family */
Anna Bridge 142:4eea097334d6 110 #endif
Anna Bridge 142:4eea097334d6 111 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EZR32WG)
Anna Bridge 142:4eea097334d6 112 systemPartFamilyEzr32Wonder = _DEVINFO_PART_DEVICE_FAMILY_EZR32WG, /**< EZR32 Wonder Device Family */
Anna Bridge 142:4eea097334d6 113 #endif
Anna Bridge 142:4eea097334d6 114 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EZR32LG)
Anna Bridge 142:4eea097334d6 115 systemPartFamilyEzr32Leopard = _DEVINFO_PART_DEVICE_FAMILY_EZR32LG, /**< EZR32 Leopard Device Family */
Anna Bridge 142:4eea097334d6 116 #endif
Anna Bridge 142:4eea097334d6 117 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EZR32HG)
Anna Bridge 142:4eea097334d6 118 systemPartFamilyEzr32Happy = _DEVINFO_PART_DEVICE_FAMILY_EZR32HG, /**< EZR32 Happy Device Family */
Anna Bridge 142:4eea097334d6 119 #endif
Anna Bridge 142:4eea097334d6 120 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1P)
Anna Bridge 142:4eea097334d6 121 systemPartFamilyMighty1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1P, /**< EFR32 Mighty Gecko Series 1 Config 1 Premium Device Family */
Anna Bridge 142:4eea097334d6 122 #endif
Anna Bridge 142:4eea097334d6 123 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B)
Anna Bridge 142:4eea097334d6 124 systemPartFamilyMighty1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B, /**< EFR32 Mighty Gecko Series 1 Config 1 Basic Device Family */
Anna Bridge 142:4eea097334d6 125 #endif
Anna Bridge 142:4eea097334d6 126 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V)
Anna Bridge 142:4eea097334d6 127 systemPartFamilyMighty1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V, /**< EFR32 Mighty Gecko Series 1 Config 1 Value Device Family */
Anna Bridge 142:4eea097334d6 128 #endif
Anna Bridge 142:4eea097334d6 129 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P)
Anna Bridge 142:4eea097334d6 130 systemPartFamilyBlue1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P, /**< EFR32 Blue Gecko Series 1 Config 1 Premium Device Family */
Anna Bridge 142:4eea097334d6 131 #endif
Anna Bridge 142:4eea097334d6 132 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B)
Anna Bridge 142:4eea097334d6 133 systemPartFamilyBlue1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B, /**< EFR32 Blue Gecko Series 1 Config 1 Basic Device Family */
Anna Bridge 142:4eea097334d6 134 #endif
Anna Bridge 142:4eea097334d6 135 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1V)
Anna Bridge 142:4eea097334d6 136 systemPartFamilyBlue1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1V, /**< EFR32 Blue Gecko Series 1 Config 1 Value Device Family */
Anna Bridge 142:4eea097334d6 137 #endif
Anna Bridge 142:4eea097334d6 138 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1P)
Anna Bridge 142:4eea097334d6 139 systemPartFamilyFlex1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1P, /**< EFR32 Flex Gecko Series 1 Config 1 Premium Device Family */
Anna Bridge 142:4eea097334d6 140 #endif
Anna Bridge 142:4eea097334d6 141 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B)
Anna Bridge 142:4eea097334d6 142 systemPartFamilyFlex1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B, /**< EFR32 Flex Gecko Series 1 Config 1 Basic Device Family */
Anna Bridge 142:4eea097334d6 143 #endif
Anna Bridge 142:4eea097334d6 144 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1V)
Anna Bridge 142:4eea097334d6 145 systemPartFamilyFlex1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1V, /**< EFR32 Flex Gecko Series 1 Config 1 Value Device Family */
Anna Bridge 142:4eea097334d6 146 #endif
Anna Bridge 142:4eea097334d6 147 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG2P)
Anna Bridge 142:4eea097334d6 148 systemPartFamilyMighty2P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG2P, /**< EFR32 Mighty Gecko Series 1 Config 2 Premium Device Family */
Anna Bridge 142:4eea097334d6 149 #endif
Anna Bridge 142:4eea097334d6 150 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG12P)
Anna Bridge 142:4eea097334d6 151 systemPartFamilyMighty12P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG12P, /**< EFR32 Mighty Gecko Series 1 Config 2 Premium Device Family */
Anna Bridge 142:4eea097334d6 152 #endif
Anna Bridge 142:4eea097334d6 153 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG12B)
Anna Bridge 142:4eea097334d6 154 systemPartFamilyMighty12B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG12B, /**< EFR32 Mighty Gecko Series 1 Config 2 Basic Device Family */
Anna Bridge 142:4eea097334d6 155 #endif
Anna Bridge 142:4eea097334d6 156 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG12V)
Anna Bridge 142:4eea097334d6 157 systemPartFamilyMighty12V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG12V, /**< EFR32 Mighty Gecko Series 1 Config 2 Value Device Family */
Anna Bridge 142:4eea097334d6 158 #endif
Anna Bridge 142:4eea097334d6 159 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG12P)
Anna Bridge 142:4eea097334d6 160 systemPartFamilyBlue12P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG12P, /**< EFR32 Blue Gecko Series 1 Config 2 Premium Device Family */
Anna Bridge 142:4eea097334d6 161 #endif
Anna Bridge 142:4eea097334d6 162 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG12B)
Anna Bridge 142:4eea097334d6 163 systemPartFamilyBlue12B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG12B, /**< EFR32 Blue Gecko Series 1 Config 2 Basic Device Family */
Anna Bridge 142:4eea097334d6 164 #endif
Anna Bridge 142:4eea097334d6 165 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG12V)
Anna Bridge 142:4eea097334d6 166 systemPartFamilyBlue12V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG12V, /**< EFR32 Blue Gecko Series 1 Config 2 Value Device Family */
Anna Bridge 142:4eea097334d6 167 #endif
Anna Bridge 142:4eea097334d6 168 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG12P)
Anna Bridge 142:4eea097334d6 169 systemPartFamilyFlex12P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG12P, /**< EFR32 Flex Gecko Series 1 Config 2 Premium Device Family */
Anna Bridge 142:4eea097334d6 170 #endif
Anna Bridge 142:4eea097334d6 171 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG12B)
Anna Bridge 142:4eea097334d6 172 systemPartFamilyFlex12B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG12B, /**< EFR32 Flex Gecko Series 1 Config 2 Basic Device Family */
Anna Bridge 142:4eea097334d6 173 #endif
Anna Bridge 142:4eea097334d6 174 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG12V)
Anna Bridge 142:4eea097334d6 175 systemPartFamilyFlex12V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG12V, /**< EFR32 Flex Gecko Series 1 Config 2 Value Device Family */
Anna Bridge 142:4eea097334d6 176 #endif
Anna Bridge 142:4eea097334d6 177 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG13P)
Anna Bridge 142:4eea097334d6 178 systemPartFamilyMighty13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG13P, /**< EFR32 Mighty Gecko Series 1 Config 3 Premium Device Family */
Anna Bridge 142:4eea097334d6 179 #endif
Anna Bridge 142:4eea097334d6 180 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG13B)
Anna Bridge 142:4eea097334d6 181 systemPartFamilyMighty13B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG13B, /**< EFR32 Mighty Gecko Series 1 Config 3 Basic Device Family */
Anna Bridge 142:4eea097334d6 182 #endif
Anna Bridge 142:4eea097334d6 183 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG13V)
Anna Bridge 142:4eea097334d6 184 systemPartFamilyMighty13V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG13V, /**< EFR32 Mighty Gecko Series 1 Config 3 Value Device Family */
Anna Bridge 142:4eea097334d6 185 #endif
Anna Bridge 142:4eea097334d6 186 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG13P)
Anna Bridge 142:4eea097334d6 187 systemPartFamilyBlue13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG13P, /**< EFR32 Blue Gecko Series 1 Config 3 Premium Device Family */
Anna Bridge 142:4eea097334d6 188 #endif
Anna Bridge 142:4eea097334d6 189 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG13B)
Anna Bridge 142:4eea097334d6 190 systemPartFamilyBlue13B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG13B, /**< EFR32 Blue Gecko Series 1 Config 3 Basic Device Family */
Anna Bridge 142:4eea097334d6 191 #endif
Anna Bridge 142:4eea097334d6 192 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG13V)
Anna Bridge 142:4eea097334d6 193 systemPartFamilyBlue13V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG13V, /**< EFR32 Blue Gecko Series 1 Config 3 Value Device Family */
Anna Bridge 142:4eea097334d6 194 #endif
Anna Bridge 142:4eea097334d6 195 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG13P)
Anna Bridge 142:4eea097334d6 196 systemPartFamilyFlex13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG13P, /**< EFR32 Flex Gecko Series 1 Config 3 Premium Device Family */
Anna Bridge 142:4eea097334d6 197 #endif
Anna Bridge 142:4eea097334d6 198 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG13B)
Anna Bridge 142:4eea097334d6 199 systemPartFamilyFlex13B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG13B, /**< EFR32 Flex Gecko Series 1 Config 3 Basic Device Family */
Anna Bridge 142:4eea097334d6 200 #endif
Anna Bridge 142:4eea097334d6 201 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG13V)
Anna Bridge 142:4eea097334d6 202 systemPartFamilyFlex13V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG13V, /**< EFR32 Flex Gecko Series 1 Config 3 Value Device Family */
Anna Bridge 142:4eea097334d6 203 #endif
Anna Bridge 160:5571c4ff569f 204 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG14P)
Anna Bridge 160:5571c4ff569f 205 systemPartFamilyMighty14P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG14P, /**< EFR32 Mighty Gecko Series 1 Config 4 Premium Device Family */
Anna Bridge 160:5571c4ff569f 206 #endif
Anna Bridge 160:5571c4ff569f 207 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG14B)
Anna Bridge 160:5571c4ff569f 208 systemPartFamilyMighty14B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG14B, /**< EFR32 Mighty Gecko Series 1 Config 4 Basic Device Family */
Anna Bridge 160:5571c4ff569f 209 #endif
Anna Bridge 160:5571c4ff569f 210 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG14V)
Anna Bridge 160:5571c4ff569f 211 systemPartFamilyMighty14V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG14V, /**< EFR32 Mighty Gecko Series 1 Config 4 Value Device Family */
Anna Bridge 160:5571c4ff569f 212 #endif
Anna Bridge 160:5571c4ff569f 213 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG14P)
Anna Bridge 160:5571c4ff569f 214 systemPartFamilyBlue14P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG14P, /**< EFR32 Blue Gecko Series 1 Config 4 Premium Device Family */
Anna Bridge 160:5571c4ff569f 215 #endif
Anna Bridge 160:5571c4ff569f 216 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG14B)
Anna Bridge 160:5571c4ff569f 217 systemPartFamilyBlue14B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG14B, /**< EFR32 Blue Gecko Series 1 Config 4 Basic Device Family */
Anna Bridge 160:5571c4ff569f 218 #endif
Anna Bridge 160:5571c4ff569f 219 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG14V)
Anna Bridge 160:5571c4ff569f 220 systemPartFamilyBlue14V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG14V, /**< EFR32 Blue Gecko Series 1 Config 4 Value Device Family */
Anna Bridge 160:5571c4ff569f 221 #endif
Anna Bridge 160:5571c4ff569f 222 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG14P)
Anna Bridge 160:5571c4ff569f 223 systemPartFamilyFlex14P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG14P, /**< EFR32 Flex Gecko Series 1 Config 4 Premium Device Family */
Anna Bridge 160:5571c4ff569f 224 #endif
Anna Bridge 160:5571c4ff569f 225 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG14B)
Anna Bridge 160:5571c4ff569f 226 systemPartFamilyFlex14B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG14B, /**< EFR32 Flex Gecko Series 1 Config 4 Basic Device Family */
Anna Bridge 160:5571c4ff569f 227 #endif
Anna Bridge 160:5571c4ff569f 228 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG14V)
Anna Bridge 160:5571c4ff569f 229 systemPartFamilyFlex14V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG14V, /**< EFR32 Flex Gecko Series 1 Config 4 Value Device Family */
Anna Bridge 160:5571c4ff569f 230 #endif
Anna Bridge 142:4eea097334d6 231
Anna Bridge 142:4eea097334d6 232 /* Deprecated family #defines */
Anna Bridge 142:4eea097334d6 233 #if defined(_DEVINFO_PART_DEVICE_FAMILY_G)
Anna Bridge 142:4eea097334d6 234 systemPartFamilyGecko = _DEVINFO_PART_DEVICE_FAMILY_G, /**< Gecko Device Family */
Anna Bridge 142:4eea097334d6 235 #endif
Anna Bridge 142:4eea097334d6 236 #if defined(_DEVINFO_PART_DEVICE_FAMILY_GG)
Anna Bridge 142:4eea097334d6 237 systemPartFamilyGiant = _DEVINFO_PART_DEVICE_FAMILY_GG, /**< Giant Gecko Device Family */
Anna Bridge 142:4eea097334d6 238 #endif
Anna Bridge 142:4eea097334d6 239 #if defined(_DEVINFO_PART_DEVICE_FAMILY_TG)
Anna Bridge 142:4eea097334d6 240 systemPartFamilyTiny = _DEVINFO_PART_DEVICE_FAMILY_TG, /**< Tiny Gecko Device Family */
Anna Bridge 142:4eea097334d6 241 #endif
Anna Bridge 142:4eea097334d6 242 #if defined(_DEVINFO_PART_DEVICE_FAMILY_LG)
Anna Bridge 142:4eea097334d6 243 systemPartFamilyLeopard = _DEVINFO_PART_DEVICE_FAMILY_LG, /**< Leopard Gecko Device Family */
Anna Bridge 142:4eea097334d6 244 #endif
Anna Bridge 142:4eea097334d6 245 #if defined(_DEVINFO_PART_DEVICE_FAMILY_WG)
Anna Bridge 142:4eea097334d6 246 systemPartFamilyWonder = _DEVINFO_PART_DEVICE_FAMILY_WG, /**< Wonder Gecko Device Family */
Anna Bridge 142:4eea097334d6 247 #endif
Anna Bridge 142:4eea097334d6 248 #if defined(_DEVINFO_PART_DEVICE_FAMILY_ZG)
Anna Bridge 142:4eea097334d6 249 systemPartFamilyZero = _DEVINFO_PART_DEVICE_FAMILY_ZG, /**< Zero Gecko Device Family */
Anna Bridge 142:4eea097334d6 250 #endif
Anna Bridge 142:4eea097334d6 251 #if defined(_DEVINFO_PART_DEVICE_FAMILY_HG)
Anna Bridge 142:4eea097334d6 252 systemPartFamilyHappy = _DEVINFO_PART_DEVICE_FAMILY_HG, /**< Happy Gecko Device Family */
Anna Bridge 142:4eea097334d6 253 #endif
Anna Bridge 142:4eea097334d6 254 systemPartFamilyUnknown = 0xFF /**< Unknown Device Family.
Anna Bridge 142:4eea097334d6 255 The family id is missing
Anna Bridge 142:4eea097334d6 256 on unprogrammed parts. */
Anna Bridge 142:4eea097334d6 257 } SYSTEM_PartFamily_TypeDef;
Anna Bridge 142:4eea097334d6 258
Anna Bridge 142:4eea097334d6 259 /*******************************************************************************
Anna Bridge 142:4eea097334d6 260 ******************************* STRUCTS ***********************************
Anna Bridge 142:4eea097334d6 261 ******************************************************************************/
Anna Bridge 142:4eea097334d6 262
Anna Bridge 142:4eea097334d6 263 /** Chip revision details */
Anna Bridge 160:5571c4ff569f 264 typedef struct {
Anna Bridge 142:4eea097334d6 265 uint8_t minor; /**< Minor revision number */
Anna Bridge 142:4eea097334d6 266 uint8_t major; /**< Major revision number */
Anna Bridge 142:4eea097334d6 267 uint8_t family;/**< Device family number */
Anna Bridge 142:4eea097334d6 268 } SYSTEM_ChipRevision_TypeDef;
Anna Bridge 142:4eea097334d6 269
Anna Bridge 142:4eea097334d6 270 #if defined(__FPU_PRESENT) && (__FPU_PRESENT == 1)
Anna Bridge 142:4eea097334d6 271 /** Floating point coprocessor access modes. */
Anna Bridge 160:5571c4ff569f 272 typedef enum {
Anna Bridge 142:4eea097334d6 273 fpuAccessDenied = (0x0 << 20), /**< Access denied, any attempted access generates a NOCP UsageFault. */
Anna Bridge 142:4eea097334d6 274 fpuAccessPrivilegedOnly = (0x5 << 20), /**< Privileged access only, an unprivileged access generates a NOCP UsageFault. */
Anna Bridge 142:4eea097334d6 275 fpuAccessReserved = (0xA << 20), /**< Reserved. */
Anna Bridge 142:4eea097334d6 276 fpuAccessFull = (0xF << 20) /**< Full access. */
Anna Bridge 142:4eea097334d6 277 } SYSTEM_FpuAccess_TypeDef;
Anna Bridge 142:4eea097334d6 278 #endif
Anna Bridge 142:4eea097334d6 279
Anna Bridge 142:4eea097334d6 280 /** DEVINFO calibration address/value pair */
Anna Bridge 160:5571c4ff569f 281 typedef struct {
Anna Bridge 142:4eea097334d6 282 uint32_t address; /**< Peripheral calibration register address */
Anna Bridge 142:4eea097334d6 283 uint32_t calValue; /**< Calibration value for register at address */
Anna Bridge 142:4eea097334d6 284 }
Anna Bridge 142:4eea097334d6 285 SYSTEM_CalAddrVal_TypeDef;
Anna Bridge 142:4eea097334d6 286
Anna Bridge 142:4eea097334d6 287 /*******************************************************************************
Anna Bridge 142:4eea097334d6 288 ***************************** PROTOTYPES **********************************
Anna Bridge 142:4eea097334d6 289 ******************************************************************************/
Anna Bridge 142:4eea097334d6 290
Anna Bridge 142:4eea097334d6 291 void SYSTEM_ChipRevisionGet(SYSTEM_ChipRevision_TypeDef *rev);
Anna Bridge 142:4eea097334d6 292 bool SYSTEM_GetCalibrationValue(volatile uint32_t *regAddress);
Anna Bridge 142:4eea097334d6 293
Anna Bridge 142:4eea097334d6 294 #if defined(__FPU_PRESENT) && (__FPU_PRESENT == 1)
Anna Bridge 142:4eea097334d6 295 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 296 * @brief
Anna Bridge 142:4eea097334d6 297 * Set floating point coprocessor (FPU) access mode.
Anna Bridge 142:4eea097334d6 298 *
Anna Bridge 142:4eea097334d6 299 * @param[in] accessMode
Anna Bridge 142:4eea097334d6 300 * Floating point coprocessor access mode. See @ref SYSTEM_FpuAccess_TypeDef
Anna Bridge 142:4eea097334d6 301 * for details.
Anna Bridge 142:4eea097334d6 302 ******************************************************************************/
Anna Bridge 142:4eea097334d6 303 __STATIC_INLINE void SYSTEM_FpuAccessModeSet(SYSTEM_FpuAccess_TypeDef accessMode)
Anna Bridge 142:4eea097334d6 304 {
Anna Bridge 142:4eea097334d6 305 SCB->CPACR = (SCB->CPACR & ~(0xF << 20)) | accessMode;
Anna Bridge 142:4eea097334d6 306 }
Anna Bridge 142:4eea097334d6 307 #endif
Anna Bridge 142:4eea097334d6 308
Anna Bridge 142:4eea097334d6 309 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 310 * @brief
Anna Bridge 142:4eea097334d6 311 * Get the unique number for this device.
Anna Bridge 142:4eea097334d6 312 *
Anna Bridge 142:4eea097334d6 313 * @return
Anna Bridge 142:4eea097334d6 314 * Unique number for this device.
Anna Bridge 142:4eea097334d6 315 ******************************************************************************/
Anna Bridge 142:4eea097334d6 316 __STATIC_INLINE uint64_t SYSTEM_GetUnique(void)
Anna Bridge 142:4eea097334d6 317 {
Anna Bridge 142:4eea097334d6 318 uint32_t tmp = DEVINFO->UNIQUEL;
Anna Bridge 142:4eea097334d6 319 return (uint64_t)((uint64_t)DEVINFO->UNIQUEH << 32) | tmp;
Anna Bridge 142:4eea097334d6 320 }
Anna Bridge 142:4eea097334d6 321
Anna Bridge 142:4eea097334d6 322 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 323 * @brief
Anna Bridge 142:4eea097334d6 324 * Get the production revision for this part.
Anna Bridge 142:4eea097334d6 325 *
Anna Bridge 142:4eea097334d6 326 * @return
Anna Bridge 142:4eea097334d6 327 * Production revision for this part.
Anna Bridge 142:4eea097334d6 328 ******************************************************************************/
Anna Bridge 142:4eea097334d6 329 __STATIC_INLINE uint8_t SYSTEM_GetProdRev(void)
Anna Bridge 142:4eea097334d6 330 {
Anna Bridge 142:4eea097334d6 331 return (DEVINFO->PART & _DEVINFO_PART_PROD_REV_MASK)
Anna Bridge 142:4eea097334d6 332 >> _DEVINFO_PART_PROD_REV_SHIFT;
Anna Bridge 142:4eea097334d6 333 }
Anna Bridge 142:4eea097334d6 334
Anna Bridge 142:4eea097334d6 335 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 336 * @brief
Anna Bridge 142:4eea097334d6 337 * Get the SRAM size (in KB).
Anna Bridge 142:4eea097334d6 338 *
Anna Bridge 142:4eea097334d6 339 * @note
Anna Bridge 142:4eea097334d6 340 * This function retrievs the correct value by reading the chip device
Anna Bridge 142:4eea097334d6 341 * info structure. If your binary is made for one specific device only,
Anna Bridge 142:4eea097334d6 342 * @ref SRAM_SIZE can be used instead.
Anna Bridge 142:4eea097334d6 343 *
Anna Bridge 142:4eea097334d6 344 * @return
Anna Bridge 142:4eea097334d6 345 * The size of the internal SRAM (in KB).
Anna Bridge 142:4eea097334d6 346 ******************************************************************************/
Anna Bridge 142:4eea097334d6 347 __STATIC_INLINE uint16_t SYSTEM_GetSRAMSize(void)
Anna Bridge 142:4eea097334d6 348 {
Anna Bridge 142:4eea097334d6 349 uint16_t sizekb;
Anna Bridge 142:4eea097334d6 350
Anna Bridge 142:4eea097334d6 351 #if defined(_EFM32_GECKO_FAMILY)
Anna Bridge 142:4eea097334d6 352 /* Early Gecko devices had a bug where SRAM and Flash size were swapped. */
Anna Bridge 160:5571c4ff569f 353 if (SYSTEM_GetProdRev() < 5) {
Anna Bridge 142:4eea097334d6 354 sizekb = (DEVINFO->MSIZE & _DEVINFO_MSIZE_FLASH_MASK)
Anna Bridge 160:5571c4ff569f 355 >> _DEVINFO_MSIZE_FLASH_SHIFT;
Anna Bridge 142:4eea097334d6 356 }
Anna Bridge 142:4eea097334d6 357 #endif
Anna Bridge 142:4eea097334d6 358 sizekb = (DEVINFO->MSIZE & _DEVINFO_MSIZE_SRAM_MASK)
Anna Bridge 160:5571c4ff569f 359 >> _DEVINFO_MSIZE_SRAM_SHIFT;
Anna Bridge 142:4eea097334d6 360
Anna Bridge 142:4eea097334d6 361 #if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_80) && defined(_EFR_DEVICE)
Anna Bridge 142:4eea097334d6 362 /* Do not include EFR32xG1 RAMH */
Anna Bridge 142:4eea097334d6 363 sizekb--;
Anna Bridge 142:4eea097334d6 364 #endif
Anna Bridge 142:4eea097334d6 365
Anna Bridge 142:4eea097334d6 366 return sizekb;
Anna Bridge 142:4eea097334d6 367 }
Anna Bridge 142:4eea097334d6 368
Anna Bridge 142:4eea097334d6 369 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 370 * @brief
Anna Bridge 142:4eea097334d6 371 * Get the flash size (in KB).
Anna Bridge 142:4eea097334d6 372 *
Anna Bridge 142:4eea097334d6 373 * @note
Anna Bridge 142:4eea097334d6 374 * This function retrievs the correct value by reading the chip device
Anna Bridge 142:4eea097334d6 375 * info structure. If your binary is made for one specific device only,
Anna Bridge 142:4eea097334d6 376 * @ref FLASH_SIZE can be used instead.
Anna Bridge 142:4eea097334d6 377 *
Anna Bridge 142:4eea097334d6 378 * @return
Anna Bridge 142:4eea097334d6 379 * The size of the internal flash (in KB).
Anna Bridge 142:4eea097334d6 380 ******************************************************************************/
Anna Bridge 142:4eea097334d6 381 __STATIC_INLINE uint16_t SYSTEM_GetFlashSize(void)
Anna Bridge 142:4eea097334d6 382 {
Anna Bridge 142:4eea097334d6 383 #if defined(_EFM32_GECKO_FAMILY)
Anna Bridge 142:4eea097334d6 384 /* Early Gecko devices had a bug where SRAM and Flash size were swapped. */
Anna Bridge 160:5571c4ff569f 385 if (SYSTEM_GetProdRev() < 5) {
Anna Bridge 142:4eea097334d6 386 return (DEVINFO->MSIZE & _DEVINFO_MSIZE_SRAM_MASK)
Anna Bridge 142:4eea097334d6 387 >> _DEVINFO_MSIZE_SRAM_SHIFT;
Anna Bridge 142:4eea097334d6 388 }
Anna Bridge 142:4eea097334d6 389 #endif
Anna Bridge 142:4eea097334d6 390 return (DEVINFO->MSIZE & _DEVINFO_MSIZE_FLASH_MASK)
Anna Bridge 142:4eea097334d6 391 >> _DEVINFO_MSIZE_FLASH_SHIFT;
Anna Bridge 142:4eea097334d6 392 }
Anna Bridge 142:4eea097334d6 393
Anna Bridge 142:4eea097334d6 394 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 395 * @brief
Anna Bridge 142:4eea097334d6 396 * Get the flash page size in bytes.
Anna Bridge 142:4eea097334d6 397 *
Anna Bridge 142:4eea097334d6 398 * @note
Anna Bridge 142:4eea097334d6 399 * This function retrievs the correct value by reading the chip device
Anna Bridge 142:4eea097334d6 400 * info structure. If your binary is made for one specific device only,
Anna Bridge 142:4eea097334d6 401 * @ref FLASH_PAGE_SIZE can be used instead.
Anna Bridge 142:4eea097334d6 402 *
Anna Bridge 142:4eea097334d6 403 * @return
Anna Bridge 142:4eea097334d6 404 * The page size of the internal flash in bytes.
Anna Bridge 142:4eea097334d6 405 ******************************************************************************/
Anna Bridge 142:4eea097334d6 406 __STATIC_INLINE uint32_t SYSTEM_GetFlashPageSize(void)
Anna Bridge 142:4eea097334d6 407 {
Anna Bridge 142:4eea097334d6 408 uint32_t tmp;
Anna Bridge 142:4eea097334d6 409
Anna Bridge 160:5571c4ff569f 410 #if defined(_SILICON_LABS_32B_SERIES_0)
Anna Bridge 142:4eea097334d6 411 #if defined(_EFM32_GIANT_FAMILY)
Anna Bridge 160:5571c4ff569f 412 if (SYSTEM_GetProdRev() < 18) {
Anna Bridge 142:4eea097334d6 413 /* Early Giant/Leopard devices did not have MEMINFO in DEVINFO. */
Anna Bridge 142:4eea097334d6 414 return FLASH_PAGE_SIZE;
Anna Bridge 142:4eea097334d6 415 }
Anna Bridge 142:4eea097334d6 416 #elif defined(_EFM32_ZERO_FAMILY)
Anna Bridge 160:5571c4ff569f 417 if (SYSTEM_GetProdRev() < 24) {
Anna Bridge 142:4eea097334d6 418 /* Early Zero devices have an incorrect DEVINFO flash page size */
Anna Bridge 142:4eea097334d6 419 return FLASH_PAGE_SIZE;
Anna Bridge 142:4eea097334d6 420 }
Anna Bridge 142:4eea097334d6 421 #endif
Anna Bridge 160:5571c4ff569f 422 #endif
Anna Bridge 142:4eea097334d6 423
Anna Bridge 142:4eea097334d6 424 tmp = (DEVINFO->MEMINFO & _DEVINFO_MEMINFO_FLASH_PAGE_SIZE_MASK)
Anna Bridge 142:4eea097334d6 425 >> _DEVINFO_MEMINFO_FLASH_PAGE_SIZE_SHIFT;
Anna Bridge 142:4eea097334d6 426
Anna Bridge 142:4eea097334d6 427 return 1 << ((tmp + 10) & 0xFF);
Anna Bridge 142:4eea097334d6 428 }
Anna Bridge 142:4eea097334d6 429
Anna Bridge 160:5571c4ff569f 430 #if defined(_DEVINFO_DEVINFOREV_DEVINFOREV_MASK)
Anna Bridge 142:4eea097334d6 431 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 432 * @brief
Anna Bridge 142:4eea097334d6 433 * Get DEVINFO revision.
Anna Bridge 142:4eea097334d6 434 *
Anna Bridge 142:4eea097334d6 435 * @return
Anna Bridge 142:4eea097334d6 436 * Revision of the DEVINFO contents.
Anna Bridge 142:4eea097334d6 437 ******************************************************************************/
Anna Bridge 142:4eea097334d6 438 __STATIC_INLINE uint8_t SYSTEM_GetDevinfoRev(void)
Anna Bridge 142:4eea097334d6 439 {
Anna Bridge 142:4eea097334d6 440 return (DEVINFO->DEVINFOREV & _DEVINFO_DEVINFOREV_DEVINFOREV_MASK)
Anna Bridge 160:5571c4ff569f 441 >> _DEVINFO_DEVINFOREV_DEVINFOREV_SHIFT;
Anna Bridge 142:4eea097334d6 442 }
Anna Bridge 142:4eea097334d6 443 #endif
Anna Bridge 142:4eea097334d6 444
Anna Bridge 142:4eea097334d6 445 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 446 * @brief
Anna Bridge 142:4eea097334d6 447 * Get part number of the MCU.
Anna Bridge 142:4eea097334d6 448 *
Anna Bridge 142:4eea097334d6 449 * @return
Anna Bridge 142:4eea097334d6 450 * The part number of the MCU.
Anna Bridge 142:4eea097334d6 451 ******************************************************************************/
Anna Bridge 142:4eea097334d6 452 __STATIC_INLINE uint16_t SYSTEM_GetPartNumber(void)
Anna Bridge 142:4eea097334d6 453 {
Anna Bridge 142:4eea097334d6 454 return (DEVINFO->PART & _DEVINFO_PART_DEVICE_NUMBER_MASK)
Anna Bridge 142:4eea097334d6 455 >> _DEVINFO_PART_DEVICE_NUMBER_SHIFT;
Anna Bridge 142:4eea097334d6 456 }
Anna Bridge 142:4eea097334d6 457
Anna Bridge 142:4eea097334d6 458 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 459 * @brief
Anna Bridge 142:4eea097334d6 460 * Get family identifier of the MCU.
Anna Bridge 142:4eea097334d6 461 *
Anna Bridge 142:4eea097334d6 462 * @note
Anna Bridge 142:4eea097334d6 463 * This function retrievs the family id by reading the chip's device info
Anna Bridge 142:4eea097334d6 464 * structure in flash memory. The user can retrieve the family id directly
Anna Bridge 142:4eea097334d6 465 * by reading the DEVINFO->PART item and decode with the mask and shift
Anna Bridge 142:4eea097334d6 466 * \#defines defined in \<part_family\>_devinfo.h (please refer to code
Anna Bridge 142:4eea097334d6 467 * below for details).
Anna Bridge 142:4eea097334d6 468 *
Anna Bridge 142:4eea097334d6 469 * @return
Anna Bridge 142:4eea097334d6 470 * The family identifier of the MCU.
Anna Bridge 142:4eea097334d6 471 ******************************************************************************/
Anna Bridge 142:4eea097334d6 472 __STATIC_INLINE SYSTEM_PartFamily_TypeDef SYSTEM_GetFamily(void)
Anna Bridge 142:4eea097334d6 473 {
Anna Bridge 142:4eea097334d6 474 return (SYSTEM_PartFamily_TypeDef)
Anna Bridge 142:4eea097334d6 475 ((DEVINFO->PART & _DEVINFO_PART_DEVICE_FAMILY_MASK)
Anna Bridge 142:4eea097334d6 476 >> _DEVINFO_PART_DEVICE_FAMILY_SHIFT);
Anna Bridge 142:4eea097334d6 477 }
Anna Bridge 142:4eea097334d6 478
Anna Bridge 142:4eea097334d6 479 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 480 * @brief
Anna Bridge 142:4eea097334d6 481 * Get the calibration temperature (in degrees Celsius).
Anna Bridge 142:4eea097334d6 482 *
Anna Bridge 142:4eea097334d6 483 * @return
Anna Bridge 142:4eea097334d6 484 * The calibration temperature in Celsius.
Anna Bridge 142:4eea097334d6 485 ******************************************************************************/
Anna Bridge 142:4eea097334d6 486 __STATIC_INLINE uint8_t SYSTEM_GetCalibrationTemperature(void)
Anna Bridge 142:4eea097334d6 487 {
Anna Bridge 142:4eea097334d6 488 return (DEVINFO->CAL & _DEVINFO_CAL_TEMP_MASK)
Anna Bridge 142:4eea097334d6 489 >> _DEVINFO_CAL_TEMP_SHIFT;
Anna Bridge 142:4eea097334d6 490 }
Anna Bridge 142:4eea097334d6 491
Anna Bridge 142:4eea097334d6 492 /** @} (end addtogroup SYSTEM) */
Anna Bridge 142:4eea097334d6 493 /** @} (end addtogroup emlib) */
Anna Bridge 142:4eea097334d6 494
Anna Bridge 142:4eea097334d6 495 #ifdef __cplusplus
Anna Bridge 142:4eea097334d6 496 }
Anna Bridge 142:4eea097334d6 497 #endif
Anna Bridge 142:4eea097334d6 498
Anna Bridge 142:4eea097334d6 499 #endif /* EM_SYSTEM_H */