EFR32 Mighty Gecko 1 Software Documentation
efr32mg1-doc-5.1.2
|
CMSIS Cortex-M3/M4 System Layer for EFR32 devices.
Copyright 2017 Silicon Laboratories, Inc. http://www.silabs.com
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Laboratories, Inc. has no obligation to support this Software. Silicon Laboratories, Inc. is providing the Software "AS IS", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party.
Silicon Laboratories, Inc. will not be liable for any consequential, incidental, or special damages, or any other relief, or for any claim by any third party, arising from your use of this Software.
Definition in file system_efr32mg1p.h.
#include <stdint.h>
Go to the source code of this file.
Functions | |
void | ACMP0_IRQHandler (void) |
void | ADC0_IRQHandler (void) |
Interrupt handler is executed with frequency ~28Hz when panel is not pressed and with frequency ~140Hz when panel is pressed - this will give ~50 readings per second. | |
void | AGC_IRQHandler (void) |
void | BUFC_IRQHandler (void) |
void | BusFault_Handler (void) |
void | CMU_IRQHandler (void) |
void | CRYOTIMER_IRQHandler (void) |
void | CRYPTO_IRQHandler (void) |
void | DebugMon_Handler (void) |
void | EMU_IRQHandler (void) |
EMU Interrupt Handler. More... | |
void | FRC_IRQHandler (void) |
void | FRC_PRI_IRQHandler (void) |
void | GPIO_EVEN_IRQHandler (void) |
void | GPIO_ODD_IRQHandler (void) |
void | HardFault_Handler (void) |
void | I2C0_IRQHandler (void) |
void | IDAC0_IRQHandler (void) |
void | LDMA_IRQHandler (void) |
void | LETIMER0_IRQHandler (void) |
void | LEUART0_IRQHandler (void) |
void | MemManage_Handler (void) |
void | MODEM_IRQHandler (void) |
void | MSC_IRQHandler (void) |
void | NMI_Handler (void) |
void | PCNT0_IRQHandler (void) |
void | PendSV_Handler (void) |
void | PROTIMER_IRQHandler (void) |
void | RAC_RSM_IRQHandler (void) |
void | RAC_SEQ_IRQHandler (void) |
void | Reset_Handler (void) |
void | RFSENSE_IRQHandler (void) |
void | RTCC_IRQHandler (void) |
void | SVC_Handler (void) |
void | SYNTH_IRQHandler (void) |
uint32_t | SystemCoreClockGet (void) |
Get the current core clock frequency. More... | |
static __INLINE void | SystemCoreClockUpdate (void) |
Update CMSIS SystemCoreClock variable. More... | |
uint32_t | SystemHFClockGet (void) |
Get the current HFCLK frequency. More... | |
uint32_t | SystemHFXOClockGet (void) |
Get high frequency crystal oscillator clock frequency for target system. More... | |
void | SystemHFXOClockSet (uint32_t freq) |
Set high frequency crystal oscillator clock frequency for target system. More... | |
void | SystemInit (void) |
Initialize the system. More... | |
uint32_t | SystemLFRCOClockGet (void) |
Get low frequency RC oscillator clock frequency for target system. More... | |
uint32_t | SystemLFXOClockGet (void) |
Get low frequency crystal oscillator clock frequency for target system. More... | |
void | SystemLFXOClockSet (uint32_t freq) |
Set low frequency crystal oscillator clock frequency for target system. More... | |
uint32_t | SystemMaxCoreClockGet (void) |
Get the maximum core clock frequency. More... | |
uint32_t | SystemULFRCOClockGet (void) |
Get ultra low frequency RC oscillator clock frequency for target system. More... | |
void | SysTick_Handler (void) |
Interrupt Service Routine for system tick counter. More... | |
void | TIMER0_IRQHandler (void) |
TIMER0 interrupt handler. More... | |
void | TIMER1_IRQHandler (void) |
void | UsageFault_Handler (void) |
void | USART0_RX_IRQHandler (void) |
void | USART0_TX_IRQHandler (void) |
void | USART1_RX_IRQHandler (void) |
void | USART1_TX_IRQHandler (void) |
void | WDOG0_IRQHandler (void) |
Variables | |
uint32_t | SystemCoreClock |
System System Clock Frequency (Core Clock). More... | |
uint32_t | SystemHfrcoFreq |
System HFRCO frequency. More... | |
void EMU_IRQHandler | ( | void | ) |
EMU Interrupt Handler.
The EMU_IRQHandler provided by TEMPDRV will call TEMPDRV_IRQ_Handler. Configure EMU_CUSTOM_IRQ_HANDLER = true if the application wants to implement its own EMU_IRQHandler. This is typically needed if one of the non-temperature related EMU interrupt flags are in use.
Definition at line 91 of file tempdrv.c.
References TEMPDRV_IRQHandler().
uint32_t SystemCoreClockGet | ( | void | ) |
Get the current core clock frequency.
Calculate and get the current core clock frequency based on the current configuration. Assuming that the SystemCoreClock global variable is maintained, the core clock frequency is stored in that variable as well. This function will however calculate the core clock based on actual HW configuration. It will also update the SystemCoreClock global variable.
Definition at line 137 of file system_efr32mg1p.c.
References _CMU_HFCOREPRESC_PRESC_MASK, _CMU_HFCOREPRESC_PRESC_SHIFT, CMU, SystemCoreClock, and SystemHFClockGet().
Referenced by CMU_ClockDivSet(), CMU_ClockFreqGet(), CMU_ClockPrescSet(), CMU_ClockSelectSet(), CMU_HFRCOBandSet(), MSC_Init(), SystemCoreClockUpdate(), SystemHFXOClockSet(), SystemLFXOClockSet(), TFT_AddressMappedInit(), and TFT_DirectInit().
|
static |
Update CMSIS SystemCoreClock variable.
CMSIS defines a global variable SystemCoreClock that shall hold the core frequency in Hz. If the core frequency is dynamically changed, the variable must be kept updated in order to be CMSIS compliant.
Notice that only if changing the core clock frequency through the EFR CMU API, this variable will be kept updated. This function is only provided for CMSIS compliance and if a user modifies the the core clock outside the CMU API.
Definition at line 118 of file system_efr32mg1p.h.
References SystemCoreClockGet().
Referenced by CAPLESENSE_setupCMU(), EMU_EnterEM2(), and EMU_EnterEM3().
uint32_t SystemHFClockGet | ( | void | ) |
Get the current HFCLK frequency.
Definition at line 181 of file system_efr32mg1p.c.
References _CMU_HFCLKSTATUS_SELECTED_MASK, _CMU_HFPRESC_PRESC_MASK, _CMU_HFPRESC_PRESC_SHIFT, CMU, CMU_HFCLKSTATUS_SELECTED_HFXO, CMU_HFCLKSTATUS_SELECTED_LFRCO, CMU_HFCLKSTATUS_SELECTED_LFXO, EFR32_LFRCO_FREQ, and SystemHfrcoFreq.
Referenced by CMU_ClockDivSet(), CMU_ClockFreqGet(), and SystemCoreClockGet().
uint32_t SystemHFXOClockGet | ( | void | ) |
Get high frequency crystal oscillator clock frequency for target system.
Definition at line 231 of file system_efr32mg1p.c.
Referenced by CMU_ClockSelectSet(), and CMU_HFXOAutostartEnable().
void SystemHFXOClockSet | ( | uint32_t | freq | ) |
Set high frequency crystal oscillator clock frequency for target system.
[in] | freq | HFXO frequency in Hz used for target. |
Definition at line 257 of file system_efr32mg1p.c.
References _CMU_HFCLKSTATUS_SELECTED_MASK, CMU, CMU_HFCLKSTATUS_SELECTED_HFXO, and SystemCoreClockGet().
void SystemInit | ( | void | ) |
Initialize the system.
Do required generic HW system init.
Definition at line 287 of file system_efr32mg1p.c.
uint32_t SystemLFRCOClockGet | ( | void | ) |
Get low frequency RC oscillator clock frequency for target system.
Definition at line 307 of file system_efr32mg1p.c.
References EFR32_LFRCO_FREQ.
uint32_t SystemLFXOClockGet | ( | void | ) |
Get low frequency crystal oscillator clock frequency for target system.
Definition at line 343 of file system_efr32mg1p.c.
Referenced by UARTDRV_InitLeuart().
void SystemLFXOClockSet | ( | uint32_t | freq | ) |
Set low frequency crystal oscillator clock frequency for target system.
[in] | freq | LFXO frequency in Hz used for target. |
Definition at line 369 of file system_efr32mg1p.c.
References _CMU_HFCLKSTATUS_SELECTED_MASK, CMU, CMU_HFCLKSTATUS_SELECTED_LFXO, and SystemCoreClockGet().
uint32_t SystemMaxCoreClockGet | ( | void | ) |
Get the maximum core clock frequency.
Definition at line 164 of file system_efr32mg1p.c.
uint32_t SystemULFRCOClockGet | ( | void | ) |
Get ultra low frequency RC oscillator clock frequency for target system.
Definition at line 326 of file system_efr32mg1p.c.
void TIMER0_IRQHandler | ( | void | ) |
TIMER0 interrupt handler.
When TIMER0 expires the number of pulses on TIMER1 is inserted into channelValues. If this values is bigger than what is recorded in channelMaxValues, channelMaxValues is updated. Finally, the next ACMP channel is selected.
Definition at line 92 of file capsense.c.
References channelMaxValues, channelValues, currentChannel, TIMER0, TIMER1, TIMER_CMD_STOP, and TIMER_IFC_OF.
uint32_t SystemCoreClock |
System System Clock Frequency (Core Clock).
System Clock Frequency (Core Clock)
(DO_NOT_INCLUDE_WITH_DOXYGEN)
Required CMSIS global variable that must be kept up-to-date.
Definition at line 100 of file system_efr32mg1p.c.
Referenced by SystemCoreClockGet().
uint32_t SystemHfrcoFreq |
System HFRCO frequency.
System HFRCO frequency
Frequency of the system HFRCO oscillator
Definition at line 113 of file system_efr32mg1p.c.
Referenced by CMU_HFRCOBandGet(), CMU_HFRCOBandSet(), and SystemHFClockGet().