mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
fwndz
Date:
Thu Dec 22 05:12:40 2016 +0000
Revision:
153:9398a535854b
Parent:
150:02e0a0aed4ec
device target maximize

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 150:02e0a0aed4ec 1 /***************************************************************************//**
<> 150:02e0a0aed4ec 2 * @file system_efm32wg.h
<> 150:02e0a0aed4ec 3 * @brief CMSIS Cortex-M4 System Layer for EFM32WG devices.
<> 150:02e0a0aed4ec 4 * @version 5.0.0
<> 150:02e0a0aed4ec 5 ******************************************************************************
<> 150:02e0a0aed4ec 6 * @section License
<> 150:02e0a0aed4ec 7 * <b>Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com</b>
<> 150:02e0a0aed4ec 8 ******************************************************************************
<> 150:02e0a0aed4ec 9 *
<> 150:02e0a0aed4ec 10 * Permission is granted to anyone to use this software for any purpose,
<> 150:02e0a0aed4ec 11 * including commercial applications, and to alter it and redistribute it
<> 150:02e0a0aed4ec 12 * freely, subject to the following restrictions:
<> 150:02e0a0aed4ec 13 *
<> 150:02e0a0aed4ec 14 * 1. The origin of this software must not be misrepresented; you must not
<> 150:02e0a0aed4ec 15 * claim that you wrote the original software.@n
<> 150:02e0a0aed4ec 16 * 2. Altered source versions must be plainly marked as such, and must not be
<> 150:02e0a0aed4ec 17 * misrepresented as being the original software.@n
<> 150:02e0a0aed4ec 18 * 3. This notice may not be removed or altered from any source distribution.
<> 150:02e0a0aed4ec 19 *
<> 150:02e0a0aed4ec 20 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Laboratories, Inc.
<> 150:02e0a0aed4ec 21 * has no obligation to support this Software. Silicon Laboratories, Inc. is
<> 150:02e0a0aed4ec 22 * providing the Software "AS IS", with no express or implied warranties of any
<> 150:02e0a0aed4ec 23 * kind, including, but not limited to, any implied warranties of
<> 150:02e0a0aed4ec 24 * merchantability or fitness for any particular purpose or warranties against
<> 150:02e0a0aed4ec 25 * infringement of any proprietary rights of a third party.
<> 150:02e0a0aed4ec 26 *
<> 150:02e0a0aed4ec 27 * Silicon Laboratories, Inc. will not be liable for any consequential,
<> 150:02e0a0aed4ec 28 * incidental, or special damages, or any other relief, or for any claim by
<> 150:02e0a0aed4ec 29 * any third party, arising from your use of this Software.
<> 150:02e0a0aed4ec 30 *
<> 150:02e0a0aed4ec 31 *****************************************************************************/
<> 150:02e0a0aed4ec 32
<> 150:02e0a0aed4ec 33 #ifndef SYSTEM_EFM32WG_H
<> 150:02e0a0aed4ec 34 #define SYSTEM_EFM32WG_H
<> 150:02e0a0aed4ec 35
<> 150:02e0a0aed4ec 36 #ifdef __cplusplus
<> 150:02e0a0aed4ec 37 extern "C" {
<> 150:02e0a0aed4ec 38 #endif
<> 150:02e0a0aed4ec 39
<> 150:02e0a0aed4ec 40 #include <stdint.h>
<> 150:02e0a0aed4ec 41
<> 150:02e0a0aed4ec 42 /*******************************************************************************
<> 150:02e0a0aed4ec 43 ************************** GLOBAL VARIABLES *******************************
<> 150:02e0a0aed4ec 44 ******************************************************************************/
<> 150:02e0a0aed4ec 45
<> 150:02e0a0aed4ec 46 extern uint32_t SystemCoreClock; /**< System Clock Frequency (Core Clock) */
<> 150:02e0a0aed4ec 47
<> 150:02e0a0aed4ec 48 /*******************************************************************************
<> 150:02e0a0aed4ec 49 ***************************** PROTOTYPES **********************************
<> 150:02e0a0aed4ec 50 ******************************************************************************/
<> 150:02e0a0aed4ec 51
<> 150:02e0a0aed4ec 52 /* Interrupt routines - prototypes */
<> 150:02e0a0aed4ec 53 void Reset_Handler(void);
<> 150:02e0a0aed4ec 54 void NMI_Handler(void);
<> 150:02e0a0aed4ec 55 void HardFault_Handler(void);
<> 150:02e0a0aed4ec 56 void MemManage_Handler(void);
<> 150:02e0a0aed4ec 57 void BusFault_Handler(void);
<> 150:02e0a0aed4ec 58 void UsageFault_Handler(void);
<> 150:02e0a0aed4ec 59 void SVC_Handler(void);
<> 150:02e0a0aed4ec 60 void DebugMon_Handler(void);
<> 150:02e0a0aed4ec 61 void PendSV_Handler(void);
<> 150:02e0a0aed4ec 62 void SysTick_Handler(void);
<> 150:02e0a0aed4ec 63
<> 150:02e0a0aed4ec 64 void DMA_IRQHandler(void);
<> 150:02e0a0aed4ec 65 void GPIO_EVEN_IRQHandler(void);
<> 150:02e0a0aed4ec 66 void TIMER0_IRQHandler(void);
<> 150:02e0a0aed4ec 67 void USART0_RX_IRQHandler(void);
<> 150:02e0a0aed4ec 68 void USART0_TX_IRQHandler(void);
<> 150:02e0a0aed4ec 69 void USB_IRQHandler(void);
<> 150:02e0a0aed4ec 70 void ACMP0_IRQHandler(void);
<> 150:02e0a0aed4ec 71 void ADC0_IRQHandler(void);
<> 150:02e0a0aed4ec 72 void DAC0_IRQHandler(void);
<> 150:02e0a0aed4ec 73 void I2C0_IRQHandler(void);
<> 150:02e0a0aed4ec 74 void I2C1_IRQHandler(void);
<> 150:02e0a0aed4ec 75 void GPIO_ODD_IRQHandler(void);
<> 150:02e0a0aed4ec 76 void TIMER1_IRQHandler(void);
<> 150:02e0a0aed4ec 77 void TIMER2_IRQHandler(void);
<> 150:02e0a0aed4ec 78 void TIMER3_IRQHandler(void);
<> 150:02e0a0aed4ec 79 void USART1_RX_IRQHandler(void);
<> 150:02e0a0aed4ec 80 void USART1_TX_IRQHandler(void);
<> 150:02e0a0aed4ec 81 void LESENSE_IRQHandler(void);
<> 150:02e0a0aed4ec 82 void USART2_RX_IRQHandler(void);
<> 150:02e0a0aed4ec 83 void USART2_TX_IRQHandler(void);
<> 150:02e0a0aed4ec 84 void UART0_RX_IRQHandler(void);
<> 150:02e0a0aed4ec 85 void UART0_TX_IRQHandler(void);
<> 150:02e0a0aed4ec 86 void UART1_RX_IRQHandler(void);
<> 150:02e0a0aed4ec 87 void UART1_TX_IRQHandler(void);
<> 150:02e0a0aed4ec 88 void LEUART0_IRQHandler(void);
<> 150:02e0a0aed4ec 89 void LEUART1_IRQHandler(void);
<> 150:02e0a0aed4ec 90 void LETIMER0_IRQHandler(void);
<> 150:02e0a0aed4ec 91 void PCNT0_IRQHandler(void);
<> 150:02e0a0aed4ec 92 void PCNT1_IRQHandler(void);
<> 150:02e0a0aed4ec 93 void PCNT2_IRQHandler(void);
<> 150:02e0a0aed4ec 94 void RTC_IRQHandler(void);
<> 150:02e0a0aed4ec 95 void BURTC_IRQHandler(void);
<> 150:02e0a0aed4ec 96 void CMU_IRQHandler(void);
<> 150:02e0a0aed4ec 97 void VCMP_IRQHandler(void);
<> 150:02e0a0aed4ec 98 void LCD_IRQHandler(void);
<> 150:02e0a0aed4ec 99 void MSC_IRQHandler(void);
<> 150:02e0a0aed4ec 100 void AES_IRQHandler(void);
<> 150:02e0a0aed4ec 101 void EBI_IRQHandler(void);
<> 150:02e0a0aed4ec 102 void EMU_IRQHandler(void);
<> 150:02e0a0aed4ec 103 void FPUEH_IRQHandler(void);
<> 150:02e0a0aed4ec 104
<> 150:02e0a0aed4ec 105 uint32_t SystemCoreClockGet(void);
<> 150:02e0a0aed4ec 106 uint32_t SystemMaxCoreClockGet(void);
<> 150:02e0a0aed4ec 107
<> 150:02e0a0aed4ec 108 /**************************************************************************//**
<> 150:02e0a0aed4ec 109 * @brief
<> 150:02e0a0aed4ec 110 * Update CMSIS SystemCoreClock variable.
<> 150:02e0a0aed4ec 111 *
<> 150:02e0a0aed4ec 112 * @details
<> 150:02e0a0aed4ec 113 * CMSIS defines a global variable SystemCoreClock that shall hold the
<> 150:02e0a0aed4ec 114 * core frequency in Hz. If the core frequency is dynamically changed, the
<> 150:02e0a0aed4ec 115 * variable must be kept updated in order to be CMSIS compliant.
<> 150:02e0a0aed4ec 116 *
<> 150:02e0a0aed4ec 117 * Notice that if only changing core clock frequency through the EFM32 CMU
<> 150:02e0a0aed4ec 118 * API, this variable will be kept updated. This function is only provided
<> 150:02e0a0aed4ec 119 * for CMSIS compliance and if a user modifies the the core clock outside
<> 150:02e0a0aed4ec 120 * the CMU API.
<> 150:02e0a0aed4ec 121 *****************************************************************************/
<> 150:02e0a0aed4ec 122 static __INLINE void SystemCoreClockUpdate(void)
<> 150:02e0a0aed4ec 123 {
<> 150:02e0a0aed4ec 124 SystemCoreClockGet();
<> 150:02e0a0aed4ec 125 }
<> 150:02e0a0aed4ec 126
<> 150:02e0a0aed4ec 127 void SystemInit(void);
<> 150:02e0a0aed4ec 128 uint32_t SystemHFClockGet(void);
<> 150:02e0a0aed4ec 129 uint32_t SystemHFXOClockGet(void);
<> 150:02e0a0aed4ec 130 void SystemHFXOClockSet(uint32_t freq);
<> 150:02e0a0aed4ec 131 uint32_t SystemLFRCOClockGet(void);
<> 150:02e0a0aed4ec 132 uint32_t SystemULFRCOClockGet(void);
<> 150:02e0a0aed4ec 133 uint32_t SystemLFXOClockGet(void);
<> 150:02e0a0aed4ec 134 void SystemLFXOClockSet(uint32_t freq);
<> 150:02e0a0aed4ec 135
<> 150:02e0a0aed4ec 136 #ifdef __cplusplus
<> 150:02e0a0aed4ec 137 }
<> 150:02e0a0aed4ec 138 #endif
<> 150:02e0a0aed4ec 139 #endif /* SYSTEM_EFM32WG_H */