mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Mon Jul 20 09:00:09 2015 +0100
Revision:
593:78ee8643776a
Parent:
556:a217bc785985
Child:
627:4fa1328d9c60
Synchronized with git revision a68b724d07788e6389ea4d52c622aad767953758

Full URL: https://github.com/mbedmicro/mbed/commit/a68b724d07788e6389ea4d52c622aad767953758/

[Silicon Labs] Bring EFM32 HAL up to date

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 525:c320967f86b9 1 /* mbed Microcontroller Library
mbed_official 525:c320967f86b9 2 * Copyright (c) 2006-2013 ARM Limited
mbed_official 525:c320967f86b9 3 *
mbed_official 525:c320967f86b9 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 525:c320967f86b9 5 * you may not use this file except in compliance with the License.
mbed_official 525:c320967f86b9 6 * You may obtain a copy of the License at
mbed_official 525:c320967f86b9 7 *
mbed_official 525:c320967f86b9 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 525:c320967f86b9 9 *
mbed_official 525:c320967f86b9 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 525:c320967f86b9 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 525:c320967f86b9 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 525:c320967f86b9 13 * See the License for the specific language governing permissions and
mbed_official 525:c320967f86b9 14 * limitations under the License.
mbed_official 525:c320967f86b9 15 */
mbed_official 525:c320967f86b9 16 #ifndef MBED_OBJECTS_H
mbed_official 525:c320967f86b9 17 #define MBED_OBJECTS_H
mbed_official 525:c320967f86b9 18
mbed_official 525:c320967f86b9 19 #include "PinNames.h"
mbed_official 525:c320967f86b9 20 #include "PeripheralNames.h"
mbed_official 525:c320967f86b9 21 #include "PortNames.h"
mbed_official 525:c320967f86b9 22 #include "em_i2c.h"
mbed_official 525:c320967f86b9 23 #include "em_dma.h"
mbed_official 525:c320967f86b9 24 #include "em_cmu.h"
mbed_official 525:c320967f86b9 25 #include "dma_api_HAL.h"
mbed_official 525:c320967f86b9 26
mbed_official 525:c320967f86b9 27 #ifdef __cplusplus
mbed_official 525:c320967f86b9 28 extern "C" {
mbed_official 525:c320967f86b9 29 #endif
mbed_official 525:c320967f86b9 30
mbed_official 593:78ee8643776a 31 typedef struct {
mbed_official 593:78ee8643776a 32 PinName pin:8;
mbed_official 593:78ee8643776a 33 PinMode mode:6;
mbed_official 593:78ee8643776a 34 PinDirection dir:2;
mbed_official 593:78ee8643776a 35 } gpio_t;
mbed_official 593:78ee8643776a 36
mbed_official 525:c320967f86b9 37 #if DEVICE_ANALOGIN
mbed_official 525:c320967f86b9 38 struct analogin_s {
mbed_official 525:c320967f86b9 39 ADC_TypeDef *adc;
mbed_official 525:c320967f86b9 40 uint32_t channel;
mbed_official 525:c320967f86b9 41 };
mbed_official 525:c320967f86b9 42 #endif
mbed_official 525:c320967f86b9 43
mbed_official 525:c320967f86b9 44 #if DEVICE_ANALOGOUT
mbed_official 525:c320967f86b9 45 struct dac_s {
mbed_official 525:c320967f86b9 46 DAC_TypeDef *dac;
mbed_official 525:c320967f86b9 47 uint32_t channel;
mbed_official 525:c320967f86b9 48 };
mbed_official 525:c320967f86b9 49 #endif
mbed_official 525:c320967f86b9 50
mbed_official 525:c320967f86b9 51 #if DEVICE_I2C
mbed_official 525:c320967f86b9 52 struct i2c_s {
mbed_official 525:c320967f86b9 53 I2C_TypeDef *i2c;
mbed_official 525:c320967f86b9 54 int loc;
mbed_official 525:c320967f86b9 55 uint8_t index;
mbed_official 525:c320967f86b9 56 PinName sda;
mbed_official 525:c320967f86b9 57 PinName scl;
mbed_official 525:c320967f86b9 58 uint32_t clock;
mbed_official 525:c320967f86b9 59 #if DEVICE_I2C_ASYNCH
mbed_official 525:c320967f86b9 60 uint32_t events;
mbed_official 525:c320967f86b9 61 I2C_TransferSeq_TypeDef xfer;
mbed_official 525:c320967f86b9 62 #endif
mbed_official 525:c320967f86b9 63 };
mbed_official 525:c320967f86b9 64 #endif
mbed_official 525:c320967f86b9 65
mbed_official 525:c320967f86b9 66 #if DEVICE_PORTOUT
mbed_official 525:c320967f86b9 67 struct port_s {
mbed_official 525:c320967f86b9 68 PortName port;
mbed_official 525:c320967f86b9 69 uint32_t mask;
mbed_official 525:c320967f86b9 70 PinDirection dir;
mbed_official 525:c320967f86b9 71 };
mbed_official 525:c320967f86b9 72 #endif
mbed_official 525:c320967f86b9 73
mbed_official 525:c320967f86b9 74 #if DEVICE_PWMOUT
mbed_official 525:c320967f86b9 75 struct pwmout_s {
mbed_official 525:c320967f86b9 76 //The period of the pulse in clock cycles
mbed_official 556:a217bc785985 77 uint16_t period_cycles;
mbed_official 525:c320967f86b9 78 //The width of the pulse in clock cycles
mbed_official 556:a217bc785985 79 uint16_t width_cycles;
mbed_official 525:c320967f86b9 80 //Channel on TIMER
mbed_official 525:c320967f86b9 81 uint32_t channel;
mbed_official 525:c320967f86b9 82 PinName pin;
mbed_official 525:c320967f86b9 83 };
mbed_official 525:c320967f86b9 84 #endif
mbed_official 525:c320967f86b9 85
mbed_official 525:c320967f86b9 86 #if DEVICE_INTERRUPTIN
mbed_official 525:c320967f86b9 87 struct gpio_irq_s {
mbed_official 593:78ee8643776a 88 PinName pin:8; // Pin number 4 least significant bits, port number 4 most significant bits
mbed_official 593:78ee8643776a 89 uint32_t risingEdge:1;
mbed_official 593:78ee8643776a 90 uint32_t fallingEdge:1;
mbed_official 525:c320967f86b9 91 };
mbed_official 525:c320967f86b9 92 #endif
mbed_official 525:c320967f86b9 93
mbed_official 525:c320967f86b9 94 #if DEVICE_SERIAL
mbed_official 525:c320967f86b9 95 #define SERIAL_NUM_UARTS (7)
mbed_official 525:c320967f86b9 96
mbed_official 525:c320967f86b9 97 struct serial_s {
mbed_official 525:c320967f86b9 98 union {
mbed_official 525:c320967f86b9 99 USART_TypeDef *uart;
mbed_official 525:c320967f86b9 100 LEUART_TypeDef *leuart;
mbed_official 525:c320967f86b9 101 } periph;
mbed_official 525:c320967f86b9 102 uint32_t location;
mbed_official 525:c320967f86b9 103 PinName rx_pin;
mbed_official 525:c320967f86b9 104 PinName tx_pin;
mbed_official 525:c320967f86b9 105 #if DEVICE_SERIAL_ASYNCH
mbed_official 525:c320967f86b9 106 uint32_t events;
mbed_official 525:c320967f86b9 107 DMA_OPTIONS_t dmaOptionsTX;
mbed_official 525:c320967f86b9 108 DMA_OPTIONS_t dmaOptionsRX;
mbed_official 525:c320967f86b9 109 #endif
mbed_official 525:c320967f86b9 110 };
mbed_official 525:c320967f86b9 111 #endif
mbed_official 525:c320967f86b9 112
mbed_official 525:c320967f86b9 113 #if DEVICE_SPI
mbed_official 525:c320967f86b9 114 struct spi_s {
mbed_official 525:c320967f86b9 115 USART_TypeDef *spi;
mbed_official 525:c320967f86b9 116 int location;
mbed_official 525:c320967f86b9 117 uint8_t bits;
mbed_official 525:c320967f86b9 118 uint8_t master;
mbed_official 525:c320967f86b9 119 #if DEVICE_SPI_ASYNCH
mbed_official 525:c320967f86b9 120 uint32_t event;
mbed_official 525:c320967f86b9 121 DMA_OPTIONS_t dmaOptionsTX;
mbed_official 525:c320967f86b9 122 DMA_OPTIONS_t dmaOptionsRX;
mbed_official 525:c320967f86b9 123 #endif
mbed_official 525:c320967f86b9 124 };
mbed_official 525:c320967f86b9 125 #endif
mbed_official 525:c320967f86b9 126
mbed_official 525:c320967f86b9 127 #if DEVICE_RTC
mbed_official 525:c320967f86b9 128 struct lp_timer_s {
mbed_official 525:c320967f86b9 129 uint32_t start;
mbed_official 525:c320967f86b9 130 uint32_t stop;
mbed_official 525:c320967f86b9 131 };
mbed_official 525:c320967f86b9 132 #endif
mbed_official 525:c320967f86b9 133
mbed_official 525:c320967f86b9 134 #if DEVICE_SLEEP
mbed_official 525:c320967f86b9 135 #define NUM_SLEEP_MODES 5
mbed_official 525:c320967f86b9 136 typedef enum {
mbed_official 548:1abac31e188e 137 EM0 = 0,
mbed_official 548:1abac31e188e 138 EM1 = 1,
mbed_official 548:1abac31e188e 139 EM2 = 2,
mbed_official 548:1abac31e188e 140 EM3 = 3,
mbed_official 548:1abac31e188e 141 EM4 = 4
mbed_official 525:c320967f86b9 142 } sleepstate_enum;
mbed_official 525:c320967f86b9 143 #endif
mbed_official 525:c320967f86b9 144
mbed_official 525:c320967f86b9 145
mbed_official 525:c320967f86b9 146 #ifdef __cplusplus
mbed_official 525:c320967f86b9 147 }
mbed_official 525:c320967f86b9 148 #endif
mbed_official 525:c320967f86b9 149
mbed_official 525:c320967f86b9 150 #endif