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:
Anna Bridge
Date:
Wed May 10 11:31:27 2017 +0100
Revision:
142:4eea097334d6
Child:
161:aa5281ff4a02
Release 142 of the mbed library

Ports for Upcoming Targets


Fixes and Changes

4059: [Silicon Labs] Rename targets https://github.com/ARMmbed/mbed-os/pull/4059
4187: [NCS36510] Reduce default heap size allocated by IAR to 1/4 of RAM https://github.com/ARMmbed/mbed-os/pull/4187
4225: fixed missing device_name for xDot and removed progen https://github.com/ARMmbed/mbed-os/pull/4225
4251: Fix C++11 build error w/ u-blox EVK-ODIN-W2 https://github.com/ARMmbed/mbed-os/pull/4251
4236: STM32 Fixed warning related to __packed redefinition https://github.com/ARMmbed/mbed-os/pull/4236
4190: LPC4088: Enable LWIP feature https://github.com/ARMmbed/mbed-os/pull/4190
4260: Inherit Xadow M0 target from LPC11U35_501 https://github.com/ARMmbed/mbed-os/pull/4260
4249: Add consistent button names across targets https://github.com/ARMmbed/mbed-os/pull/4249

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Anna Bridge 142:4eea097334d6 1 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 2 * @file clocking.h
Anna Bridge 142:4eea097334d6 3 * @brief Clock selection calculations
Anna Bridge 142:4eea097334d6 4 *******************************************************************************
Anna Bridge 142:4eea097334d6 5 * @section License
Anna Bridge 142:4eea097334d6 6 * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
Anna Bridge 142:4eea097334d6 7 *******************************************************************************
Anna Bridge 142:4eea097334d6 8 *
Anna Bridge 142:4eea097334d6 9 * SPDX-License-Identifier: Apache-2.0
Anna Bridge 142:4eea097334d6 10 *
Anna Bridge 142:4eea097334d6 11 * Licensed under the Apache License, Version 2.0 (the "License"); you may
Anna Bridge 142:4eea097334d6 12 * not use this file except in compliance with the License.
Anna Bridge 142:4eea097334d6 13 * You may obtain a copy of the License at
Anna Bridge 142:4eea097334d6 14 *
Anna Bridge 142:4eea097334d6 15 * http://www.apache.org/licenses/LICENSE-2.0
Anna Bridge 142:4eea097334d6 16 *
Anna Bridge 142:4eea097334d6 17 * Unless required by applicable law or agreed to in writing, software
Anna Bridge 142:4eea097334d6 18 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
Anna Bridge 142:4eea097334d6 19 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Anna Bridge 142:4eea097334d6 20 * See the License for the specific language governing permissions and
Anna Bridge 142:4eea097334d6 21 * limitations under the License.
Anna Bridge 142:4eea097334d6 22 *
Anna Bridge 142:4eea097334d6 23 ******************************************************************************/
Anna Bridge 142:4eea097334d6 24 #ifndef MBED_CLOCKING_H
Anna Bridge 142:4eea097334d6 25 #define MBED_CLOCKING_H
Anna Bridge 142:4eea097334d6 26
Anna Bridge 142:4eea097334d6 27 /* Clock definitions */
Anna Bridge 142:4eea097334d6 28 #define LFXO 0
Anna Bridge 142:4eea097334d6 29 #define HFXO 1
Anna Bridge 142:4eea097334d6 30 #define LFRCO 2
Anna Bridge 142:4eea097334d6 31 #define HFRCO 3
Anna Bridge 142:4eea097334d6 32 #if !defined(_EFM32_GECKO_FAMILY)
Anna Bridge 142:4eea097334d6 33 #define ULFRCO 4
Anna Bridge 142:4eea097334d6 34 #endif
Anna Bridge 142:4eea097334d6 35
Anna Bridge 142:4eea097334d6 36 /* Low Energy peripheral clock source.
Anna Bridge 142:4eea097334d6 37 * Options:
Anna Bridge 142:4eea097334d6 38 * * LFXO: external crystal, please define frequency.
Anna Bridge 142:4eea097334d6 39 * * LFRCO: internal RC oscillator (32.768kHz)
Anna Bridge 142:4eea097334d6 40 * * ULFRCO: internal ultra-low power RC oscillator (available down to EM3) (1kHz)
Anna Bridge 142:4eea097334d6 41 */
Anna Bridge 142:4eea097334d6 42 #ifndef LOW_ENERGY_CLOCK_SOURCE
Anna Bridge 142:4eea097334d6 43 #define LOW_ENERGY_CLOCK_SOURCE LFXO
Anna Bridge 142:4eea097334d6 44 #endif
Anna Bridge 142:4eea097334d6 45
Anna Bridge 142:4eea097334d6 46 /** Core clock source.
Anna Bridge 142:4eea097334d6 47 * Options:
Anna Bridge 142:4eea097334d6 48 * * HFXO: external crystal, please define frequency.
Anna Bridge 142:4eea097334d6 49 * * HFRCO: High-frequency internal RC oscillator. Please select band as well.
Anna Bridge 142:4eea097334d6 50 */
Anna Bridge 142:4eea097334d6 51 #ifndef CORE_CLOCK_SOURCE
Anna Bridge 142:4eea097334d6 52 #define CORE_CLOCK_SOURCE HFRCO
Anna Bridge 142:4eea097334d6 53 #if defined(_CMU_HFRCOCTRL_BAND_MASK)
Anna Bridge 142:4eea097334d6 54 #define HFRCO_FREQUENCY_ENUM _CMU_HFRCOCTRL_BAND_21MHZ
Anna Bridge 142:4eea097334d6 55 #define HFRCO_FREQUENCY 21000000
Anna Bridge 142:4eea097334d6 56 #elif defined(_CMU_HFRCOCTRL_FREQRANGE_MASK)
Anna Bridge 142:4eea097334d6 57 #define HFRCO_FREQUENCY_ENUM cmuHFRCOFreq_32M0Hz
Anna Bridge 142:4eea097334d6 58 #define HFRCO_FREQUENCY 32000000
Anna Bridge 142:4eea097334d6 59 #endif
Anna Bridge 142:4eea097334d6 60 #endif // CORE_CLOCK_SOURCE
Anna Bridge 142:4eea097334d6 61
Anna Bridge 142:4eea097334d6 62 #if !defined(LFXO_FREQUENCY) && (LOW_ENERGY_CLOCK_SOURCE == LFXO)
Anna Bridge 142:4eea097334d6 63 #error "LFXO frequency is undefined!"
Anna Bridge 142:4eea097334d6 64 #endif
Anna Bridge 142:4eea097334d6 65
Anna Bridge 142:4eea097334d6 66 #if !defined(HFXO_FREQUENCY) && (CORE_CLOCK_SOURCE == HFXO)
Anna Bridge 142:4eea097334d6 67 #error "HFXO frequency is undefined!"
Anna Bridge 142:4eea097334d6 68 #endif
Anna Bridge 142:4eea097334d6 69
Anna Bridge 142:4eea097334d6 70 #if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
Anna Bridge 142:4eea097334d6 71 #define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
Anna Bridge 142:4eea097334d6 72 #elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
Anna Bridge 142:4eea097334d6 73 #define LOW_ENERGY_CLOCK_FREQUENCY 32768
Anna Bridge 142:4eea097334d6 74 #elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
Anna Bridge 142:4eea097334d6 75 #define LOW_ENERGY_CLOCK_FREQUENCY 1000
Anna Bridge 142:4eea097334d6 76 #else
Anna Bridge 142:4eea097334d6 77 #error "Unknown Low Energy Clock selection"
Anna Bridge 142:4eea097334d6 78 #endif
Anna Bridge 142:4eea097334d6 79
Anna Bridge 142:4eea097334d6 80 #if( CORE_CLOCK_SOURCE == HFXO)
Anna Bridge 142:4eea097334d6 81 # define REFERENCE_FREQUENCY HFXO_FREQUENCY
Anna Bridge 142:4eea097334d6 82 #elif( CORE_CLOCK_SOURCE == HFRCO)
Anna Bridge 142:4eea097334d6 83 #if !defined(HFRCO_FREQUENCY)
Anna Bridge 142:4eea097334d6 84 # error "HFRCO frequency is not defined!"
Anna Bridge 142:4eea097334d6 85 #else
Anna Bridge 142:4eea097334d6 86 # define REFERENCE_FREQUENCY HFRCO_FREQUENCY
Anna Bridge 142:4eea097334d6 87 #endif
Anna Bridge 142:4eea097334d6 88 #endif
Anna Bridge 142:4eea097334d6 89
Anna Bridge 142:4eea097334d6 90 #if ( LOW_ENERGY_CLOCK_SOURCE == LFXO )
Anna Bridge 142:4eea097334d6 91 # define LEUART_USING_LFXO
Anna Bridge 142:4eea097334d6 92 # if ( (defined(CMU_CTRL_HFLE) || defined(CMU_CTRL_WSHFLE) ) && (REFERENCE_FREQUENCY > 24000000) )
Anna Bridge 142:4eea097334d6 93 # define LEUART_HF_REF_FREQ (REFERENCE_FREQUENCY / 4)
Anna Bridge 142:4eea097334d6 94 # else
Anna Bridge 142:4eea097334d6 95 # define LEUART_HF_REF_FREQ (REFERENCE_FREQUENCY / 2)
Anna Bridge 142:4eea097334d6 96 # endif
Anna Bridge 142:4eea097334d6 97 # define LEUART_LF_REF_FREQ LFXO_FREQUENCY
Anna Bridge 142:4eea097334d6 98 #else
Anna Bridge 142:4eea097334d6 99 # if ( (defined(CMU_CTRL_HFLE) || defined(CMU_CTRL_WSHFLE) ) && (REFERENCE_FREQUENCY > 24000000) )
Anna Bridge 142:4eea097334d6 100 # define LEUART_REF_FREQ (REFERENCE_FREQUENCY / 4)
Anna Bridge 142:4eea097334d6 101 # else
Anna Bridge 142:4eea097334d6 102 # define LEUART_REF_FREQ (REFERENCE_FREQUENCY / 2)
Anna Bridge 142:4eea097334d6 103 # endif
Anna Bridge 142:4eea097334d6 104 #endif
Anna Bridge 142:4eea097334d6 105
Anna Bridge 142:4eea097334d6 106 #endif