The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
<>
Date:
Wed Apr 12 16:07:08 2017 +0100
Revision:
140:97feb9bacc10
Parent:
139:856d2700e60b
Release 140 of the mbed library

Ports for Upcoming Targets

3841: Add nRf52840 target https://github.com/ARMmbed/mbed-os/pull/3841
3992: Introducing UBLOX_C030 platform. https://github.com/ARMmbed/mbed-os/pull/3992

Fixes and Changes

3951: [NUCLEO_F303ZE] Correct ARDUINO pin https://github.com/ARMmbed/mbed-os/pull/3951
4021: Fixing a macro to detect when RTOS was in use for the NRF52840_DK https://github.com/ARMmbed/mbed-os/pull/4021
3979: KW24D: Add missing SPI defines and Arduino connector definitions https://github.com/ARMmbed/mbed-os/pull/3979
3990: UBLOX_C027: construct a ticker-based wait, rather than calling wait_ms(), in the https://github.com/ARMmbed/mbed-os/pull/3990
4003: Fixed OBOE in async serial tx for NRF52 target, fixes #4002 https://github.com/ARMmbed/mbed-os/pull/4003
4012: STM32: Correct I2C master error handling https://github.com/ARMmbed/mbed-os/pull/4012
4020: NUCLEO_L011K4 remove unsupported tool chain files https://github.com/ARMmbed/mbed-os/pull/4020
4065: K66F: Move bss section to m_data_2 Section https://github.com/ARMmbed/mbed-os/pull/4065
4014: Issue 3763: Reduce heap allocation in the GCC linker file https://github.com/ARMmbed/mbed-os/pull/4014
4030: [STM32L0] reduce IAR heap and stack size for small targets https://github.com/ARMmbed/mbed-os/pull/4030
4109: NUCLEO_L476RG : minor serial pin update https://github.com/ARMmbed/mbed-os/pull/4109
3982: Ticker - kl25z bugfix for handling events in the past https://github.com/ARMmbed/mbed-os/pull/3982

Who changed what in which revision?

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