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#
sl_hal_system_devinfo_adc_cal_data_t
sl_hal_system_devinfo_adc_offset_t
sl_hal_system_devinfo_temperature_t
Enumerations#
Family identifiers.
Family security capability.
Family security capability.
Floating point co-processor access modes.
Family identifiers.
Floating point co-processor access modes.
Variables#
Functions#
Get the MCU family identifier.
Get a factory calibration value for a given peripheral register.
Get family security capability.
Get the unique number for this device.
Get the production revision for this part.
Get the SRAM Base Address.
Get the SRAM size (in KB).
Get the flash size (in KB).
Get the flash page size in bytes.
Get the MCU part number.
Get the calibration temperature (in degrees Celsius).
Get a chip major/minor revision.
Get the MCU family identifier.
Get DEVINFO revision.
Get the default factory calibration value for HFRCO oscillator.
Get the speed factory calibration value for HFRCO oscillator.
Get the HFRCO calibration based on the frequency band.
Get a factory calibration value for HFRCOCEM23 oscillator.
Get a factory calibration value for HFXOCAL.
Get family security capability.
Get the unique number for this device.
Get the production revision for this part.
Get the SRAM Base Address.
Get the SRAM size (in KB).
Get the flash size (in KB).
Get the flash page size in bytes.
Get the MCU part number.
Get the SoC or MCU features.
Get the temperature information.
Set floating point co-processor (FPU) access mode.
Get the ADC calibration info.
Get DEVINFO revision.
Set floating point co-processor (FPU) access mode.
Enumeration Documentation#
sl_hal_system_part_family_t#
sl_hal_system_part_family_t
Family identifiers.
Enumerator | |
---|---|
SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_27 | EFR32 Mighty Gecko Series 2 Config 7 Value Device Family. |
SL_HAL_SYSTEM_PART_FAMILY_BLUE_27 | EFR32 Blue Gecko Series 2 Config 7 Value Device Family. |
SL_HAL_SYSTEM_PART_FAMILY_UNKNOWN | Unknown Device Family. Family ID is missing on unprogrammed parts. |
59
of file platform/peripheral/inc/sl_hal_system.h
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. |
50
of file platform/emlib/inc/em_system_generic.h
sl_hal_system_security_capability_t#
sl_hal_system_security_capability_t
Family security capability.
Enumerator | |
---|---|
SL_SYSTEM_SECURITY_CAPABILITY_UNKNOWN | Unknown security capability. |
SL_SYSTEM_SECURITY_CAPABILITY_NA | Security capability not applicable. |
SL_SYSTEM_SECURITY_CAPABILITY_BASIC | Basic security capability. |
SL_SYSTEM_SECURITY_CAPABILITY_ROT | Root of Trust security capability. |
SL_SYSTEM_SECURITY_CAPABILITY_SE | Secure Element security capability. |
SL_SYSTEM_SECURITY_CAPABILITY_VAULT | Secure Vault security capability. |
51
of file platform/peripheral/inc/sl_hal_system_generic.h
sl_hal_system_fpu_access_t#
sl_hal_system_fpu_access_t
Floating point co-processor access modes.
Enumerator | |
---|---|
SL_SYSTEM_FPU_ACCESS_DENIED | Access denied, any attempted access generates a NOCP UsageFault. |
SL_SYSTEM_FPU_ACCESS_PRIVILEGED_ONLY | Privileged access only, an unprivileged access generates a NOCP UsageFault. |
SL_SYSTEM_FPU_ACCESS_RESERVED | Reserved. |
SL_SYSTEM_FPU_ACCESS_FULL | Full access. |
67
of file platform/peripheral/inc/sl_hal_system_generic.h
SYSTEM_PartFamily_TypeDef#
SYSTEM_PartFamily_TypeDef
Family identifiers.
Enumerator | |
---|---|
systemPartFamilyMighty27 | EFR32 Mighty Gecko Series 2 Config 7 Value Device Family. |
systemPartFamilyBlue27 | EFR32 Blue Gecko Series 2 Config 7 Value Device Family. |
systemPartFamilyUnknown | Unknown Device Family. |
57
of file platform/emlib/inc/em_system.h
SYSTEM_FpuAccess_TypeDef#
SYSTEM_FpuAccess_TypeDef
Floating point co-processor access modes.
Enumerator | |
---|---|
fpuAccessDenied | Access denied, any attempted access generates a NOCP UsageFault. |
fpuAccessPrivilegedOnly | Privileged access only, an unprivileged access generates a NOCP UsageFault. |
fpuAccessReserved | Reserved. |
fpuAccessFull | Full access. |
310
of file platform/emlib/inc/em_system.h
Variable Documentation#
SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES#
const sl_hal_system_devinfo_adc_t SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES
77
of file platform/peripheral/src/sl_hal_system.c
SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES#
const sl_hal_system_devinfo_temperature_t SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES
91
of file platform/peripheral/src/sl_hal_system.c
SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES#
const sl_hal_system_devinfo_adc_t SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES
127
of file platform/peripheral/inc/sl_hal_system_generic.h
SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES#
const sl_hal_system_devinfo_temperature_t SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES
129
of file platform/peripheral/inc/sl_hal_system_generic.h
Function Documentation#
sl_hal_system_get_family#
sl_hal_system_part_family_t sl_hal_system_get_family (void )
Get the MCU family identifier.
N/A |
Returns
Family identifier of MCU.
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).
202
of file platform/peripheral/src/sl_hal_system.c
SYSTEM_GetCalibrationValue#
bool SYSTEM_GetCalibrationValue (volatile uint32_t * regAddress)
Get a factory calibration value for a given peripheral register.
[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.
120
of file platform/emlib/src/em_system.c
SYSTEM_GetSecurityCapability#
SYSTEM_SecurityCapability_TypeDef SYSTEM_GetSecurityCapability (void )
Get family security capability.
N/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.
162
of file platform/emlib/src/em_system.c
SYSTEM_GetUnique#
uint64_t SYSTEM_GetUnique (void )
Get the unique number for this device.
N/A |
Returns
Unique number for this device.
213
of file platform/emlib/src/em_system.c
SYSTEM_GetProdRev#
uint8_t SYSTEM_GetProdRev (void )
Get the production revision for this part.
N/A |
Returns
Production revision for this part.
233
of file platform/emlib/src/em_system.c
SYSTEM_GetSRAMBaseAddress#
uint32_t SYSTEM_GetSRAMBaseAddress (void )
Get the SRAM Base Address.
N/A |
Note
This function is used to retrieve the base address of the SRAM.
Returns
Base address SRAM (32-bit unsigned integer).
256
of file platform/emlib/src/em_system.c
SYSTEM_GetSRAMSize#
uint16_t SYSTEM_GetSRAMSize (void )
Get the SRAM size (in KB).
N/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).
273
of file platform/emlib/src/em_system.c
SYSTEM_GetFlashSize#
uint16_t SYSTEM_GetFlashSize (void )
Get the flash size (in KB).
N/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).
307
of file platform/emlib/src/em_system.c
SYSTEM_GetFlashPageSize#
uint32_t SYSTEM_GetFlashPageSize (void )
Get the flash page size in bytes.
N/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.
332
of file platform/emlib/src/em_system.c
SYSTEM_GetPartNumber#
uint16_t SYSTEM_GetPartNumber (void )
Get the MCU part number.
N/A |
Returns
The part number of MCU.
371
of file platform/emlib/src/em_system.c
SYSTEM_GetCalibrationTemperature#
uint8_t SYSTEM_GetCalibrationTemperature (void )
Get the calibration temperature (in degrees Celsius).
N/A |
Returns
Calibration temperature in Celsius.
391
of file platform/emlib/src/em_system.c
SYSTEM_ChipRevisionGet#
void SYSTEM_ChipRevisionGet (SYSTEM_ChipRevision_TypeDef * rev)
Get a chip major/minor revision.
[out] | rev | A location to place the chip revision information. |
69
of file platform/emlib/src/em_system.c
SYSTEM_GetFamily#
SYSTEM_PartFamily_TypeDef SYSTEM_GetFamily (void )
Get the MCU family identifier.
N/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.
418
of file platform/emlib/src/em_system.c
sl_hal_system_get_chip_revision#
void sl_hal_system_get_chip_revision (sl_hal_system_chip_revision_t * rev)
N/A | rev |
178
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_devinfo_rev#
uint8_t sl_hal_system_get_devinfo_rev (void )
Get DEVINFO revision.
N/A |
Returns
Revision of the DEVINFO contents.
217
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_hfrco_default_calibration#
uint32_t sl_hal_system_get_hfrco_default_calibration (void )
Get the default factory calibration value for HFRCO oscillator.
N/A |
Returns
HFRCOCAL default value.
233
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_hfrco_speed_calibration#
uint32_t sl_hal_system_get_hfrco_speed_calibration (void )
Get the speed factory calibration value for HFRCO oscillator.
N/A |
Returns
HFRCOCAL speed value.
245
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_hfrcodpll_band_calibration#
uint32_t sl_hal_system_get_hfrcodpll_band_calibration (uint32_t frequency)
Get the HFRCO calibration based on the frequency band.
[in] | frequency | Frequency for which to retrieve calibration. |
Returns
HFRCOCAL value for the given band.
Note
Those calibrations are only valid for the HFRCO oscillator when used with the DPLL module.
257
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_hfrcoem23_calibration#
uint32_t sl_hal_system_get_hfrcoem23_calibration (void )
Get a factory calibration value for HFRCOCEM23 oscillator.
N/A |
Returns
HFRCOEM23 calibration value.
304
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_hfxocal#
uint32_t sl_hal_system_get_hfxocal (void )
Get a factory calibration value for HFXOCAL.
N/A |
Returns
HFXOCAL value.
334
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_security_capability#
sl_hal_system_security_capability_t sl_hal_system_get_security_capability (void )
Get family security capability.
N/A |
Note
This function retrieves the family security capability based on the device number.
Returns
Security capability of MCU.
346
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_unique#
uint64_t sl_hal_system_get_unique (void )
Get the unique number for this device.
N/A |
Returns
Unique number for this device.
383
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_prod_rev#
uint8_t sl_hal_system_get_prod_rev (void )
Get the production revision for this part.
N/A |
Returns
Production revision for this part.
392
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_sram_base_address#
uint32_t sl_hal_system_get_sram_base_address (void )
Get the SRAM Base Address.
N/A |
Returns
Base address SRAM (32-bit unsigned integer).
408
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_sram_size#
uint16_t sl_hal_system_get_sram_size (void )
Get the SRAM size (in KB).
N/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).
416
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_flash_size#
uint16_t sl_hal_system_get_flash_size (void )
Get the flash size (in KB).
N/A |
Note
This function retrieves flash size by reading the chip device info structure or DEVINFO->EMBMSIZE (embedded flash. not the case for S3 for now) or user config (external flash).
Returns
Size of flash (in KB).
432
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_flash_page_size#
uint32_t sl_hal_system_get_flash_page_size (void )
Get the flash page size in bytes.
N/A |
Note
This function retrieves flash page size by reading the SE or user config (external flash)
Returns
Page size of flash in bytes.
455
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_part_number#
uint16_t sl_hal_system_get_part_number (void )
Get the MCU part number.
N/A |
Returns
The part number of MCU.
472
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_part_features#
sl_hal_system_features_t sl_hal_system_get_part_features (void )
Get the SoC or MCU features.
N/A |
Returns
The features of the current SoC or MCU.
Note
The features can be decoded by referring to the SoC or MCU datasheet.
500
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_temperature_info#
void sl_hal_system_get_temperature_info (sl_hal_system_devinfo_temperature_t * info)
Get the temperature information.
[out] | info | Pointer to variable where to store the temperature info. |
527
of file platform/peripheral/src/sl_hal_system.c
sl_hal_syscfg_read_chip_rev#
uint32_t sl_hal_syscfg_read_chip_rev (void )
N/A |
572
of file platform/peripheral/src/sl_hal_system.c
sl_hal_syscfg_set_systicextclken_cfgsystic#
void sl_hal_syscfg_set_systicextclken_cfgsystic (void )
N/A |
584
of file platform/peripheral/src/sl_hal_system.c
sl_hal_syscfg_clear_systicextclken_cfgsystic#
void sl_hal_syscfg_clear_systicextclken_cfgsystic (void )
N/A |
596
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_fpu_set_access_mode#
void sl_hal_system_fpu_set_access_mode (sl_hal_system_fpu_access_t access_mode)
Set floating point co-processor (FPU) access mode.
[in] | access_mode | Floating point co-processor access mode. |
609
of file platform/peripheral/src/sl_hal_system.c
sl_hal_system_get_adc_calibration_info#
void sl_hal_system_get_adc_calibration_info (sl_hal_system_devinfo_adc_t * info)
Get the ADC calibration info.
[out] | info | Pointer to variable where to store the adc calibration info. |
618
of file platform/peripheral/src/sl_hal_system.c
SYSTEM_GetDevinfoRev#
uint8_t SYSTEM_GetDevinfoRev (void )
Get DEVINFO revision.
N/A |
Returns
Revision of the DEVINFO contents.
333
of file platform/emlib/inc/em_system.h
SYSTEM_FpuAccessModeSet#
void SYSTEM_FpuAccessModeSet (SYSTEM_FpuAccess_TypeDef accessMode)
Set floating point co-processor (FPU) access mode.
[in] | accessMode | Floating point co-processor access mode. See SYSTEM_FpuAccess_TypeDef for details. |
354
of file platform/emlib/inc/em_system.h
Macro Definition Documentation#
HFRCO_DPLL_FREQUENCY_TABLE_SIZE#
#define HFRCO_DPLL_FREQUENCY_TABLE_SIZEValue:
11
59
of file platform/peripheral/src/sl_hal_system.c
DEVINFO_TEMPERATURE_CALTEMP_INTEGER_SHIFT#
#define DEVINFO_TEMPERATURE_CALTEMP_INTEGER_SHIFTValue:
4
61
of file platform/peripheral/src/sl_hal_system.c