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)
85 #if defined(_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)
100 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B)
103 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V)
106 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P)
109 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B)
112 #if defined(_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)
127 #if defined(_DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B)
130 #if defined(_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)
189 uint32_t SYSTEM_GetCalibrationValue(
volatile uint32_t *regAddress);
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 )
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1V
#define _DEVINFO_PART_DEVICE_FAMILY_EZR32LG
#define _DEVINFO_PART_DEVICE_NUMBER_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32HG
#define _DEVINFO_MSIZE_FLASH_SHIFT
void SYSTEM_ChipRevisionGet(SYSTEM_ChipRevision_TypeDef *rev)
Get chip major/minor revision.
#define _DEVINFO_PART_PROD_REV_SHIFT
__STATIC_INLINE void SYSTEM_FpuAccessModeSet(SYSTEM_FpuAccess_TypeDef accessMode)
Set floating point coprocessor (FPU) access mode.
#define _DEVINFO_PART_DEVICE_FAMILY_EZR32WG
#define _DEVINFO_PART_DEVICE_FAMILY_GG
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1V
CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories microcontroller devices.
#define _DEVINFO_MSIZE_FLASH_MASK
#define _DEVINFO_DEVINFOREV_DEVINFOREV_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_ZG
__STATIC_INLINE uint8_t SYSTEM_GetProdRev(void)
Get the production revision for this part.
__STATIC_INLINE SYSTEM_PartFamily_TypeDef SYSTEM_GetFamily(void)
Get family identifier of the MCU.
#define _DEVINFO_PART_DEVICE_FAMILY_EZR32HG
#define _DEVINFO_MSIZE_SRAM_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_G
#define _DEVINFO_PART_PROD_REV_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32JG1B
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1P
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1P
#define _DEVINFO_MEMINFO_FLASH_PAGE_SIZE_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_TG
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32GG
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P
#define _DEVINFO_CAL_TEMP_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32TG
__STATIC_INLINE uint8_t SYSTEM_GetDevinfoRev(void)
Get DEVINFO revision.
#define _DEVINFO_MEMINFO_FLASH_PAGE_SIZE_MASK
#define _DEVINFO_DEVINFOREV_DEVINFOREV_MASK
__STATIC_INLINE uint16_t SYSTEM_GetSRAMSize(void)
Get the SRAM size (in KB).
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32PG1B
__STATIC_INLINE uint16_t SYSTEM_GetPartNumber(void)
Get part number of the MCU.
#define _DEVINFO_CAL_TEMP_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B
#define _DEVINFO_PART_DEVICE_NUMBER_SHIFT
#define _DEVINFO_PART_DEVICE_FAMILY_HG
#define _DEVINFO_MSIZE_SRAM_MASK
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32G
__STATIC_INLINE uint16_t SYSTEM_GetFlashSize(void)
Get the flash size (in KB).
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32WG
__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_PART_DEVICE_FAMILY_EFM32ZG
#define _DEVINFO_PART_DEVICE_FAMILY_EFM32LG
#define _DEVINFO_PART_DEVICE_FAMILY_LG
__STATIC_INLINE uint64_t SYSTEM_GetUnique(void)
Get the unique number for this part.
#define _DEVINFO_PART_DEVICE_FAMILY_WG
SYSTEM_PartFamily_TypeDef
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B
#define _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V