SYSTEM - System Utils
Description
System API.
This module contains functions to read information such as RAM and Flash size, device unique ID, chip revision, family, and part number from DEVINFO and SCB blocks. Functions to configure and read status from FPU are available for compatible devices.
Data Structures |
|
struct | SYSTEM_ChipRevision_TypeDef |
Chip revision details.
|
|
struct | SYSTEM_CalAddrVal_TypeDef |
DEVINFO calibration address/value pair.
|
|
Functions |
|
void | SYSTEM_ChipRevisionGet ( SYSTEM_ChipRevision_TypeDef *rev) |
Get a chip major/minor revision.
|
|
bool | SYSTEM_GetCalibrationValue (volatile uint32_t *regAddress) |
Get a factory calibration value for a given peripheral register.
|
|
SYSTEM_SecurityCapability_TypeDef | SYSTEM_GetSecurityCapability (void) |
Get family security capability.
|
|
void | SYSTEM_FpuAccessModeSet ( SYSTEM_FpuAccess_TypeDef accessMode) |
Set floating point co-processor (FPU) access mode.
|
|
uint64_t | SYSTEM_GetUnique (void) |
Get the unique number for this device.
|
|
uint8_t | SYSTEM_GetProdRev (void) |
Get the production revision for this part.
|
|
uint16_t | SYSTEM_GetSRAMSize (void) |
Get the SRAM size (in KB).
|
|
uint16_t | SYSTEM_GetFlashSize (void) |
Get the flash size (in KB).
|
|
uint32_t | SYSTEM_GetFlashPageSize (void) |
Get the flash page size in bytes.
|
|
uint16_t | SYSTEM_GetPartNumber (void) |
Get the MCU part number.
|
|
SYSTEM_PartFamily_TypeDef | SYSTEM_GetFamily (void) |
Get the MCU family identifier.
|
|
uint8_t | SYSTEM_GetCalibrationTemperature (void) |
Get the calibration temperature (in degrees Celsius).
|
|
Enumerations |
|
enum |
SYSTEM_PartFamily_TypeDef
{
systemPartFamilyEfm32Gecko = _DEVINFO_PART_DEVICE_FAMILY_EFM32G, systemPartFamilyEfm32Giant = _DEVINFO_PART_DEVICE_FAMILY_EFM32GG, systemPartFamilyEfm32Giant11B = _DEVINFO_PART_DEVICE_FAMILY_EFM32GG11B, systemPartFamilyEfm32Giant12B = _DEVINFO_PART_DEVICE_FAMILY_EFM32GG12B, systemPartFamilyEfm32Tiny = _DEVINFO_PART_DEVICE_FAMILY_EFM32TG, systemPartFamilyEfm32Tiny11B = _DEVINFO_PART_DEVICE_FAMILY_EFM32TG11B, systemPartFamilyEfm32Leopard = _DEVINFO_PART_DEVICE_FAMILY_EFM32LG, systemPartFamilyEfm32Wonder = _DEVINFO_PART_DEVICE_FAMILY_EFM32WG, systemPartFamilyEfm32Zero = _DEVINFO_PART_DEVICE_FAMILY_EFM32ZG, systemPartFamilyEfm32Happy = _DEVINFO_PART_DEVICE_FAMILY_EFM32HG, systemPartFamilyEfm32Pearl1B = _DEVINFO_PART_DEVICE_FAMILY_EFM32PG1B, systemPartFamilyEfm32Jade1B = _DEVINFO_PART_DEVICE_FAMILY_EFM32JG1B, systemPartFamilyEfm32Pearl12B = _DEVINFO_PART_DEVICE_FAMILY_EFM32PG12B, systemPartFamilyEfm32Jade12B = _DEVINFO_PART_DEVICE_FAMILY_EFM32JG12B, systemPartFamilyEzr32Wonder = _DEVINFO_PART_DEVICE_FAMILY_EZR32WG, systemPartFamilyEzr32Leopard = _DEVINFO_PART_DEVICE_FAMILY_EZR32LG, systemPartFamilyEzr32Happy = _DEVINFO_PART_DEVICE_FAMILY_EZR32HG, systemPartFamilyMighty1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1P, systemPartFamilyMighty1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1B, systemPartFamilyMighty1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG1V, systemPartFamilyBlue1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1P, systemPartFamilyBlue1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1B, systemPartFamilyBlue1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG1V, systemPartFamilyFlex1P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1P, systemPartFamilyFlex1B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1B, systemPartFamilyFlex1V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG1V, systemPartFamilyMighty12P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG12P, systemPartFamilyMighty12B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG12B, systemPartFamilyMighty12V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG12V, systemPartFamilyBlue12P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG12P, systemPartFamilyBlue12B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG12B, systemPartFamilyBlue12V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG12V, systemPartFamilyFlex12P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG12P, systemPartFamilyFlex12B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG12B, systemPartFamilyFlex12V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG12V, systemPartFamilyMighty13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG13P, systemPartFamilyMighty13B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG13B, systemPartFamilyMighty13V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG13V, systemPartFamilyBlue13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG13P, systemPartFamilyBlue13B = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG13B, systemPartFamilyBlue13V = _DEVINFO_PART_DEVICE_FAMILY_EFR32BG13V, systemPartFamilyFlex13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG13P, systemPartFamilyFlex13B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG13B, systemPartFamilyFlex13V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG13V, systemPartFamilyZen13P = _DEVINFO_PART_DEVICE_FAMILY_EFR32ZG13P, systemPartFamilyZen13L = _DEVINFO_PART_DEVICE_FAMILY_EFR32ZG13L, systemPartFamilyZen13S = _DEVINFO_PART_DEVICE_FAMILY_EFR32ZG13S, systemPartFamilyMighty14P = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG14P, systemPartFamilyMighty14B = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG14B, systemPartFamilyMighty14V = _DEVINFO_PART_DEVICE_FAMILY_EFR32MG14V, systemPartFamilyFlex14P = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG14P, systemPartFamilyFlex14B = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG14B, systemPartFamilyFlex14V = _DEVINFO_PART_DEVICE_FAMILY_EFR32FG14V, systemPartFamilyZen14P = _DEVINFO_PART_DEVICE_FAMILY_EFR32ZG14P, systemPartFamilyGecko = _DEVINFO_PART_DEVICE_FAMILY_G, systemPartFamilyGiant = _DEVINFO_PART_DEVICE_FAMILY_GG, systemPartFamilyTiny = _DEVINFO_PART_DEVICE_FAMILY_TG, systemPartFamilyLeopard = _DEVINFO_PART_DEVICE_FAMILY_LG, systemPartFamilyWonder = _DEVINFO_PART_DEVICE_FAMILY_WG, systemPartFamilyZero = _DEVINFO_PART_DEVICE_FAMILY_ZG, systemPartFamilyHappy = _DEVINFO_PART_DEVICE_FAMILY_HG, systemPartFamilyUnknown = 0xFF } |
Family identifiers.
|
|
enum |
SYSTEM_SecurityCapability_TypeDef
{
securityCapabilityUnknown , securityCapabilityNA , securityCapabilityBasic , securityCapabilityRoT , securityCapabilitySE , securityCapabilityVault } |
Family security capability.
|
|
enum |
SYSTEM_FpuAccess_TypeDef
{
fpuAccessDenied = (0x0 << 20), fpuAccessPrivilegedOnly = (0x5 << 20), fpuAccessReserved = (0xA << 20), fpuAccessFull = (0xF << 20) } |
Floating point co-processor access modes.
|
|
Function Documentation
◆ SYSTEM_ChipRevisionGet()
void SYSTEM_ChipRevisionGet | ( | SYSTEM_ChipRevision_TypeDef * |
rev
|
) |
Get a chip major/minor revision.
- Parameters
-
[out] rev
A location to place the chip revision information.
◆ SYSTEM_GetCalibrationValue()
bool SYSTEM_GetCalibrationValue | ( | volatile uint32_t * |
regAddress
|
) |
Get a factory calibration value for a given peripheral register.
- Parameters
-
[in] regAddress
The peripheral calibration register address to get a calibration value for. If the calibration value is found, this register is updated with the calibration value.
- Returns
- True if a calibration value exists, false otherwise.
◆ SYSTEM_GetSecurityCapability()
SYSTEM_SecurityCapability_TypeDef SYSTEM_GetSecurityCapability | ( | void |
|
) |
Get family security capability.
- Note
- This function retrieves the family security capability based on the device number. The device number is one letter and 3 digits: DEVICENUMBER = (alpha-'A')*1000 + numeric. i.e. 0d = "A000"; 1123d = "B123". The security capabilities are represented by SYSTEM_SecurityCapability_TypeDef .
- Returns
- Security capability of MCU.
◆ SYSTEM_FpuAccessModeSet()
|
inline |
Set floating point co-processor (FPU) access mode.
- Parameters
-
[in] accessMode
Floating point co-processor access mode. See SYSTEM_FpuAccess_TypeDef for details.
◆ SYSTEM_GetUnique()
|
inline |
Get the unique number for this device.
- Returns
- Unique number for this device.
◆ SYSTEM_GetProdRev()
|
inline |
Get the production revision for this part.
- Returns
- Production revision for this part.
◆ SYSTEM_GetSRAMSize()
|
inline |
Get the SRAM size (in KB).
- Note
- This function retrieves SRAM size by reading the chip device info structure. If your binary is made for one specific device only, use SRAM_SIZE instead.
- Returns
- Size of internal SRAM (in KB).
◆ SYSTEM_GetFlashSize()
|
inline |
Get the flash size (in KB).
- Note
- This function retrieves flash size by reading the chip device info structure. If your binary is made for one specific device only, use FLASH_SIZE instead.
- Returns
- Size of internal flash (in KB).
◆ SYSTEM_GetFlashPageSize()
|
inline |
Get the flash page size in bytes.
- Note
- This function retrieves flash page size by reading the chip device info structure. If your binary is made for one specific device only, use FLASH_PAGE_SIZE instead.
- Returns
- Page size of internal flash in bytes.
◆ SYSTEM_GetPartNumber()
|
inline |
Get the MCU part number.
- Returns
- The part number of MCU.
◆ SYSTEM_GetFamily()
|
inline |
Get the MCU family identifier.
- Note
- This function retrieves family ID by reading the chip's device info structure in flash memory. Users can retrieve family ID directly by reading DEVINFO->PART item and decode with mask and shift #defines defined in <part_family>_devinfo.h (refer to code below for details).
- Returns
- Family identifier of MCU.
◆ SYSTEM_GetCalibrationTemperature()
|
inline |
Get the calibration temperature (in degrees Celsius).
- Returns
- Calibration temperature in Celsius.
Enumeration Type Documentation
◆ SYSTEM_PartFamily_TypeDef
Family identifiers.
◆ SYSTEM_SecurityCapability_TypeDef
Family security capability.