mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
187:0387e8f68319
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 187:0387e8f68319 1 /* mbed Microcontroller Library
AnnaBridge 187:0387e8f68319 2 * Copyright (c) 2015-2017 Nuvoton
AnnaBridge 187:0387e8f68319 3 *
AnnaBridge 187:0387e8f68319 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 187:0387e8f68319 5 * you may not use this file except in compliance with the License.
AnnaBridge 187:0387e8f68319 6 * You may obtain a copy of the License at
AnnaBridge 187:0387e8f68319 7 *
AnnaBridge 187:0387e8f68319 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 187:0387e8f68319 9 *
AnnaBridge 187:0387e8f68319 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 187:0387e8f68319 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 187:0387e8f68319 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 187:0387e8f68319 13 * See the License for the specific language governing permissions and
AnnaBridge 187:0387e8f68319 14 * limitations under the License.
AnnaBridge 187:0387e8f68319 15 */
AnnaBridge 187:0387e8f68319 16
AnnaBridge 187:0387e8f68319 17 #ifndef MBED_OBJECTS_H
AnnaBridge 187:0387e8f68319 18 #define MBED_OBJECTS_H
AnnaBridge 187:0387e8f68319 19
AnnaBridge 187:0387e8f68319 20 #include "cmsis.h"
AnnaBridge 187:0387e8f68319 21 #include "PortNames.h"
AnnaBridge 187:0387e8f68319 22 #include "PeripheralNames.h"
AnnaBridge 187:0387e8f68319 23 #include "PinNames.h"
AnnaBridge 187:0387e8f68319 24 #include "dma_api.h"
AnnaBridge 187:0387e8f68319 25
AnnaBridge 187:0387e8f68319 26 #ifdef __cplusplus
AnnaBridge 187:0387e8f68319 27 extern "C" {
AnnaBridge 187:0387e8f68319 28 #endif
AnnaBridge 187:0387e8f68319 29
AnnaBridge 187:0387e8f68319 30 struct gpio_irq_s {
AnnaBridge 187:0387e8f68319 31 PinName pin;
AnnaBridge 187:0387e8f68319 32 uint32_t irq_handler;
AnnaBridge 187:0387e8f68319 33 uint32_t irq_id;
AnnaBridge 187:0387e8f68319 34 struct gpio_irq_s *next;
AnnaBridge 187:0387e8f68319 35 };
AnnaBridge 187:0387e8f68319 36
AnnaBridge 187:0387e8f68319 37 struct port_s {
AnnaBridge 187:0387e8f68319 38 PortName port;
AnnaBridge 187:0387e8f68319 39 uint32_t mask;
AnnaBridge 187:0387e8f68319 40 PinDirection direction;
AnnaBridge 187:0387e8f68319 41 };
AnnaBridge 187:0387e8f68319 42
AnnaBridge 187:0387e8f68319 43 struct analogin_s {
AnnaBridge 187:0387e8f68319 44 ADCName adc;
AnnaBridge 187:0387e8f68319 45 };
AnnaBridge 187:0387e8f68319 46
AnnaBridge 189:f392fc9709a3 47 struct dac_s {
AnnaBridge 189:f392fc9709a3 48 DACName dac;
AnnaBridge 189:f392fc9709a3 49 };
AnnaBridge 189:f392fc9709a3 50
AnnaBridge 187:0387e8f68319 51 struct serial_s {
AnnaBridge 187:0387e8f68319 52 UARTName uart;
AnnaBridge 187:0387e8f68319 53
AnnaBridge 187:0387e8f68319 54 uint32_t baudrate;
AnnaBridge 187:0387e8f68319 55 uint32_t databits;
AnnaBridge 187:0387e8f68319 56 uint32_t parity;
AnnaBridge 187:0387e8f68319 57 uint32_t stopbits;
AnnaBridge 187:0387e8f68319 58
AnnaBridge 187:0387e8f68319 59 void (*vec)(void);
AnnaBridge 187:0387e8f68319 60 uint32_t irq_handler;
AnnaBridge 187:0387e8f68319 61 uint32_t irq_id;
AnnaBridge 187:0387e8f68319 62 uint32_t irq_en;
AnnaBridge 187:0387e8f68319 63 uint32_t inten_msk;
AnnaBridge 187:0387e8f68319 64
AnnaBridge 187:0387e8f68319 65 // Async transfer related fields
AnnaBridge 187:0387e8f68319 66 DMAUsage dma_usage_tx;
AnnaBridge 187:0387e8f68319 67 DMAUsage dma_usage_rx;
AnnaBridge 187:0387e8f68319 68 int dma_chn_id_tx;
AnnaBridge 187:0387e8f68319 69 int dma_chn_id_rx;
AnnaBridge 187:0387e8f68319 70 uint32_t event;
AnnaBridge 187:0387e8f68319 71 void (*irq_handler_tx_async)(void);
AnnaBridge 187:0387e8f68319 72 void (*irq_handler_rx_async)(void);
AnnaBridge 187:0387e8f68319 73 };
AnnaBridge 187:0387e8f68319 74
AnnaBridge 187:0387e8f68319 75 struct spi_s {
AnnaBridge 187:0387e8f68319 76 SPIName spi;
AnnaBridge 187:0387e8f68319 77 PinName pin_miso;
AnnaBridge 187:0387e8f68319 78 PinName pin_mosi;
AnnaBridge 187:0387e8f68319 79 PinName pin_sclk;
AnnaBridge 187:0387e8f68319 80 PinName pin_ssel;
AnnaBridge 187:0387e8f68319 81
AnnaBridge 187:0387e8f68319 82 // Async transfer related fields
AnnaBridge 187:0387e8f68319 83 DMAUsage dma_usage;
AnnaBridge 187:0387e8f68319 84 int dma_chn_id_tx;
AnnaBridge 187:0387e8f68319 85 int dma_chn_id_rx;
AnnaBridge 187:0387e8f68319 86 uint32_t event;
AnnaBridge 187:0387e8f68319 87 uint32_t hdlr_async;
AnnaBridge 187:0387e8f68319 88 };
AnnaBridge 187:0387e8f68319 89
AnnaBridge 187:0387e8f68319 90 struct i2c_s {
AnnaBridge 187:0387e8f68319 91 I2CName i2c;
AnnaBridge 187:0387e8f68319 92 int slaveaddr_state;
AnnaBridge 187:0387e8f68319 93
AnnaBridge 187:0387e8f68319 94 uint32_t tran_ctrl;
AnnaBridge 187:0387e8f68319 95 char * tran_beg;
AnnaBridge 187:0387e8f68319 96 char * tran_pos;
AnnaBridge 187:0387e8f68319 97 char * tran_end;
AnnaBridge 187:0387e8f68319 98 int inten;
AnnaBridge 187:0387e8f68319 99
AnnaBridge 187:0387e8f68319 100 // Async transfer related fields
AnnaBridge 187:0387e8f68319 101 DMAUsage dma_usage;
AnnaBridge 187:0387e8f68319 102 uint32_t event;
AnnaBridge 187:0387e8f68319 103 int stop;
AnnaBridge 187:0387e8f68319 104 uint32_t address;
AnnaBridge 187:0387e8f68319 105 uint32_t hdlr_async;
AnnaBridge 187:0387e8f68319 106 };
AnnaBridge 187:0387e8f68319 107
AnnaBridge 187:0387e8f68319 108 struct pwmout_s {
AnnaBridge 187:0387e8f68319 109 PWMName pwm;
AnnaBridge 187:0387e8f68319 110 uint32_t period_us;
AnnaBridge 187:0387e8f68319 111 uint32_t pulsewidth_us;
AnnaBridge 187:0387e8f68319 112 };
AnnaBridge 187:0387e8f68319 113
AnnaBridge 187:0387e8f68319 114 struct sleep_s {
AnnaBridge 187:0387e8f68319 115 int powerdown;
AnnaBridge 187:0387e8f68319 116 };
AnnaBridge 187:0387e8f68319 117
AnnaBridge 187:0387e8f68319 118 struct trng_s {
AnnaBridge 187:0387e8f68319 119 uint8_t dummy;
AnnaBridge 187:0387e8f68319 120 };
AnnaBridge 187:0387e8f68319 121
AnnaBridge 187:0387e8f68319 122 #ifdef __cplusplus
AnnaBridge 187:0387e8f68319 123 }
AnnaBridge 187:0387e8f68319 124 #endif
AnnaBridge 187:0387e8f68319 125
AnnaBridge 187:0387e8f68319 126 #include "gpio_object.h"
AnnaBridge 187:0387e8f68319 127
AnnaBridge 187:0387e8f68319 128 #endif