SYSTEM - System Utils#

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.

Modules#

SYSTEM_ChipRevision_TypeDef

SYSTEM_CalAddrVal_TypeDef

Enumerations#

enum
systemPartFamilyEfm32Gecko = _DEVINFO_PART_DEVICE_FAMILY_EFM32G
systemPartFamilyEfm32Giant = _DEVINFO_PART_DEVICE_FAMILY_EFM32GG
systemPartFamilyEfm32Tiny = _DEVINFO_PART_DEVICE_FAMILY_EFM32TG
systemPartFamilyEfm32Leopard = _DEVINFO_PART_DEVICE_FAMILY_EFM32LG
systemPartFamilyEfm32Wonder = _DEVINFO_PART_DEVICE_FAMILY_EFM32WG
systemPartFamilyEfm32Zero = _DEVINFO_PART_DEVICE_FAMILY_EFM32ZG
systemPartFamilyEfm32Happy = _DEVINFO_PART_DEVICE_FAMILY_EFM32HG
systemPartFamilyEzr32Wonder = _DEVINFO_PART_DEVICE_FAMILY_EZR32WG
systemPartFamilyEzr32Leopard = _DEVINFO_PART_DEVICE_FAMILY_EZR32LG
systemPartFamilyEzr32Happy = _DEVINFO_PART_DEVICE_FAMILY_EZR32HG
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
securityCapabilityUnknown
securityCapabilityNA
securityCapabilityBasic
securityCapabilityRoT
securityCapabilitySE
securityCapabilityVault
}

Family security capability.

Functions#

void
SYSTEM_ChipRevisionGet(SYSTEM_ChipRevision_TypeDef *rev)

Get a chip major/minor revision.

Get the MCU family identifier.

bool
SYSTEM_GetCalibrationValue(volatile uint32_t *regAddress)

Get a factory calibration value for a given peripheral register.

uint64_t

Get the unique number for this device.

uint8_t

Get the production revision for this part.

uint32_t

Get the SRAM Base Address.

uint16_t

Get the SRAM size (in KB).

uint16_t

Get the flash size (in KB).

uint32_t

Get the flash page size in bytes.

uint16_t

Get the MCU part number.

uint8_t

Get the calibration temperature (in degrees Celsius).

Enumeration Documentation#

SYSTEM_PartFamily_TypeDef#

SYSTEM_PartFamily_TypeDef

Family identifiers.

Enumerator
systemPartFamilyEfm32Gecko

EFM32 Gecko Device Family.

systemPartFamilyEfm32Giant

EFM32 Giant Gecko Series 0 Device Family.

systemPartFamilyEfm32Tiny

EFM32 Tiny Gecko Device Family.

systemPartFamilyEfm32Leopard

EFM32 Leopard Gecko Device Family.

systemPartFamilyEfm32Wonder

EFM32 Wonder Gecko Device Family.

systemPartFamilyEfm32Zero

EFM32 Zero Gecko Device Family.

systemPartFamilyEfm32Happy

EFM32 Happy Gecko Device Family.

systemPartFamilyEzr32Wonder

EZR32 Wonder Device Family.

systemPartFamilyEzr32Leopard

EZR32 Leopard Device Family.

systemPartFamilyEzr32Happy

EZR32 Happy Device Family.

systemPartFamilyGecko

Gecko Device Family.

systemPartFamilyGiant

Giant Gecko Device Family.

systemPartFamilyTiny

Tiny Gecko Device Family.

systemPartFamilyLeopard

Leopard Gecko Device Family.

systemPartFamilyWonder

Wonder Gecko Device Family.

systemPartFamilyZero

Zero Gecko Device Family.

systemPartFamilyHappy

Happy Gecko Device Family.

systemPartFamilyUnknown

Unknown Device Family.


SYSTEM_SecurityCapability_TypeDef#

SYSTEM_SecurityCapability_TypeDef

Family security capability.

Enumerator
securityCapabilityUnknown

Unknown security capability.

securityCapabilityNA

Security capability not applicable.

securityCapabilityBasic

Basic security capability.

securityCapabilityRoT

Root of Trust security capability.

securityCapabilitySE

Secure Element security capability.

securityCapabilityVault

Secure Vault security capability.


Function Documentation#

SYSTEM_ChipRevisionGet#

void SYSTEM_ChipRevisionGet (SYSTEM_ChipRevision_TypeDef * rev)

Get a chip major/minor revision.

Parameters
TypeDirectionArgument NameDescription
SYSTEM_ChipRevision_TypeDef *[out]rev

A location to place the chip revision information.


SYSTEM_GetFamily#

SYSTEM_PartFamily_TypeDef SYSTEM_GetFamily (void )

Get the MCU family identifier.

Parameters
TypeDirectionArgument NameDescription
voidN/A

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_GetCalibrationValue#

bool SYSTEM_GetCalibrationValue (volatile uint32_t * regAddress)

Get a factory calibration value for a given peripheral register.

Parameters
TypeDirectionArgument NameDescription
volatile uint32_t *[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.

Parameters
TypeDirectionArgument NameDescription
voidN/A

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_GetUnique#

uint64_t SYSTEM_GetUnique (void )

Get the unique number for this device.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Unique number for this device.


SYSTEM_GetProdRev#

uint8_t SYSTEM_GetProdRev (void )

Get the production revision for this part.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Production revision for this part.


SYSTEM_GetSRAMBaseAddress#

uint32_t SYSTEM_GetSRAMBaseAddress (void )

Get the SRAM Base Address.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Note

  • This function is used to retrieve the base address of the SRAM.

Returns

  • Base address SRAM (32-bit unsigned integer).


SYSTEM_GetSRAMSize#

uint16_t SYSTEM_GetSRAMSize (void )

Get the SRAM size (in KB).

Parameters
TypeDirectionArgument NameDescription
voidN/A

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#

uint16_t SYSTEM_GetFlashSize (void )

Get the flash size (in KB).

Parameters
TypeDirectionArgument NameDescription
voidN/A

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#

uint32_t SYSTEM_GetFlashPageSize (void )

Get the flash page size in bytes.

Parameters
TypeDirectionArgument NameDescription
voidN/A

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#

uint16_t SYSTEM_GetPartNumber (void )

Get the MCU part number.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • The part number of MCU.


SYSTEM_GetCalibrationTemperature#

uint8_t SYSTEM_GetCalibrationTemperature (void )

Get the calibration temperature (in degrees Celsius).

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • Calibration temperature in Celsius.