33 #ifndef __SILICON_LABS_EM_SYSTEM_H__
34 #define __SILICON_LABS_EM_SYSTEM_H__
61 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32G)
64 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32GG)
67 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32TG)
70 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32LG)
73 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32WG)
76 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32ZG)
79 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32HG)
82 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32PG1B)
83 systemPartFamilyEfm32Pearl1B = _DEVINFO_PART_DEVICE_FAMILY_EFM32PG1B,
85 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFM32JG1B)
86 systemPartFamilyEfm32Jade1B = _DEVINFO_PART_DEVICE_FAMILY_EFM32JG1B,
88 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EZR32WG)
91 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EZR32LG)
94 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EZR32HG)
97 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1P)
98 systemPartFamilyMighty1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1P,
100 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B)
101 systemPartFamilyMighty1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B,
103 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V)
104 systemPartFamilyMighty1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V,
106 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P)
107 systemPartFamilyBlue1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P,
109 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B)
110 systemPartFamilyBlue1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B,
112 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1V)
113 systemPartFamilyBlue1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1V,
115 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32SG1P)
116 systemPartFamilySnappy1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32SG1P,
118 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32SG1B)
119 systemPartFamilySnappy1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32SG1B,
121 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32SG1V)
122 systemPartFamilySnappy1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32SG1V,
124 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1P)
125 systemPartFamilyFlex1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1P,
127 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B)
128 systemPartFamilyFlex1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B,
130 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1V)
131 systemPartFamilyFlex1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1V,
134 #if defined(_DEVINFO_PART_DEVICE_FAMILY_G)
137 #if defined(_DEVINFO_PART_DEVICE_FAMILY_GG)
140 #if defined(_DEVINFO_PART_DEVICE_FAMILY_TG)
143 #if defined(_DEVINFO_PART_DEVICE_FAMILY_LG)
146 #if defined(_DEVINFO_PART_DEVICE_FAMILY_WG)
149 #if defined(_DEVINFO_PART_DEVICE_FAMILY_ZG)
152 #if defined(_DEVINFO_PART_DEVICE_FAMILY_HG)
173 #if defined(__FPU_PRESENT) && (__FPU_PRESENT == 1)
191 #if defined(__FPU_PRESENT) && (__FPU_PRESENT == 1)
202 SCB->CPACR = (SCB->CPACR & ~(0xF << 20)) | accessMode;
215 return (uint64_t)((uint64_t)
DEVINFO->UNIQUEH << 32) | (uint64_t)
DEVINFO->UNIQUEL;
245 #if defined(_EFM32_GECKO_FAMILY)
271 #if defined(_EFM32_GECKO_FAMILY)
300 #if defined(_EFM32_GIANT_FAMILY)
306 #elif defined(_EFM32_ZERO_FAMILY)
317 return 1 << ((tmp + 10) & 0xFF);
321 #if defined( _DEVINFO_DEVINFOREV_DEVINFOREV_MASK )
329 __STATIC_INLINE uint8_t SYSTEM_GetDevinfoRev(
void)
331 return (
DEVINFO->DEVINFOREV & _DEVINFO_DEVINFOREV_DEVINFOREV_MASK)
332 >> _DEVINFO_DEVINFOREV_DEVINFOREV_SHIFT;
#define _DEVINFO_PART_DEVICE_FAMILY_TG
#define _DEVINFO_CAL_TEMP_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_EZR32LG
#define _DEVINFO_PART_DEVICE_NUMBER_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_HG
void SYSTEM_ChipRevisionGet(SYSTEM_ChipRevision_TypeDef *rev)
Get chip major/minor revision.
#define _DEVINFO_MSIZE_SRAM_SHIFT
__STATIC_INLINE void SYSTEM_FpuAccessModeSet(SYSTEM_FpuAccess_TypeDef accessMode)
Set floating point coprocessor (FPU) access mode.
#define _DEVINFO_PART_DEVICE_FAMILY_SHIFT
#define _DEVINFO_CAL_TEMP_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32ZG
CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories microcontroller devices.
#define _DEVINFO_MEMINFO_FLASH_PAGE_SIZE_MASK
#define _DEVINFO_MSIZE_SRAM_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EZR32HG
uint32_t SYSTEM_GetCalibrationValue(volatile uint32_t *regAddress)
Get factory calibration value for a given peripheral register.
__STATIC_INLINE uint8_t SYSTEM_GetProdRev(void)
Get the production revision for this part.
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32G
__STATIC_INLINE SYSTEM_PartFamily_TypeDef SYSTEM_GetFamily(void)
Get family identifier of the MCU.
#define _DEVINFO_PART_DEVICE_FAMILY_ZG
#define _DEVINFO_PART_PROD_REV_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32GG
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32LG
#define _DEVINFO_PART_PROD_REV_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_WG
#define _DEVINFO_PART_DEVICE_FAMILY_G
#define _DEVINFO_PART_DEVICE_FAMILY_EZR32WG
#define _DEVINFO_MSIZE_FLASH_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_GG
#define _DEVINFO_PART_DEVICE_FAMILY_LG
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32TG
__STATIC_INLINE uint16_t SYSTEM_GetSRAMSize(void)
Get the SRAM size (in KB).
__STATIC_INLINE uint16_t SYSTEM_GetPartNumber(void)
Get part number of the MCU.
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32HG
#define _DEVINFO_MSIZE_FLASH_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32WG
__STATIC_INLINE uint16_t SYSTEM_GetFlashSize(void)
Get the flash size (in KB).
__STATIC_INLINE uint32_t SYSTEM_GetFlashPageSize(void)
Get the flash page size in bytes.
__STATIC_INLINE uint8_t SYSTEM_GetCalibrationTemperature(void)
Get the calibration temperature (in degrees Celsius).
#define _DEVINFO_MEMINFO_FLASH_PAGE_SIZE_SHIFT
__STATIC_INLINE uint64_t SYSTEM_GetUnique(void)
Get the unique number for this part.
#define _DEVINFO_PART_DEVICE_NUMBER_MASK
SYSTEM_PartFamily_TypeDef