mbed library sources. Supersedes mbed-src.

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

Committer:
AnnaBridge
Date:
Thu Sep 06 13:40:20 2018 +0100
Revision:
187:0387e8f68319
Parent:
targets/TARGET_NUVOTON/TARGET_NANO100/TARGET_NUMAKER_PFM_NANO130/objects.h@176:447f873cad2f
Child:
189:f392fc9709a3
mbed-dev library. Release version 163

Who changed what in which revision?

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