Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-dev by
targets/TARGET_Realtek/TARGET_AMEBA/TARGET_RTL8195A/objects.h@178:d650f5d4c87a, 2017-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Wed Nov 08 13:50:44 2017 +0000
- Revision:
- 178:d650f5d4c87a
- Parent:
- 168:e84263d55307
This updates the lib to the mbed lib v 155
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 168:e84263d55307 | 1 | /* mbed Microcontroller Library |
AnnaBridge | 168:e84263d55307 | 2 | * Copyright (c) 2006-2013 ARM Limited |
AnnaBridge | 168:e84263d55307 | 3 | * |
AnnaBridge | 168:e84263d55307 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
AnnaBridge | 168:e84263d55307 | 5 | * you may not use this file except in compliance with the License. |
AnnaBridge | 168:e84263d55307 | 6 | * You may obtain a copy of the License at |
AnnaBridge | 168:e84263d55307 | 7 | * |
AnnaBridge | 168:e84263d55307 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
AnnaBridge | 168:e84263d55307 | 9 | * |
AnnaBridge | 168:e84263d55307 | 10 | * Unless required by applicable law or agreed to in writing, software |
AnnaBridge | 168:e84263d55307 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
AnnaBridge | 168:e84263d55307 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
AnnaBridge | 168:e84263d55307 | 13 | * See the License for the specific language governing permissions and |
AnnaBridge | 168:e84263d55307 | 14 | * limitations under the License. |
AnnaBridge | 168:e84263d55307 | 15 | */ |
AnnaBridge | 168:e84263d55307 | 16 | #ifndef MBED_OBJECTS_H |
AnnaBridge | 168:e84263d55307 | 17 | #define MBED_OBJECTS_H |
AnnaBridge | 168:e84263d55307 | 18 | |
AnnaBridge | 168:e84263d55307 | 19 | #include "cmsis.h" |
AnnaBridge | 168:e84263d55307 | 20 | #include "PortNames.h" |
AnnaBridge | 168:e84263d55307 | 21 | #include "PeripheralNames.h" |
AnnaBridge | 168:e84263d55307 | 22 | #include "PinNames.h" |
AnnaBridge | 168:e84263d55307 | 23 | |
AnnaBridge | 168:e84263d55307 | 24 | #ifdef __cplusplus |
AnnaBridge | 168:e84263d55307 | 25 | extern "C" { |
AnnaBridge | 168:e84263d55307 | 26 | #endif |
AnnaBridge | 168:e84263d55307 | 27 | |
AnnaBridge | 168:e84263d55307 | 28 | #ifdef CONFIG_GPIO_EN |
AnnaBridge | 168:e84263d55307 | 29 | struct gpio_irq_s { |
AnnaBridge | 168:e84263d55307 | 30 | PinName pin; |
AnnaBridge | 168:e84263d55307 | 31 | uint32_t event; |
AnnaBridge | 168:e84263d55307 | 32 | HAL_GPIO_PIN hal_pin; |
AnnaBridge | 168:e84263d55307 | 33 | uint8_t hal_port_num; |
AnnaBridge | 168:e84263d55307 | 34 | uint8_t hal_pin_num; |
AnnaBridge | 168:e84263d55307 | 35 | }; |
AnnaBridge | 168:e84263d55307 | 36 | |
AnnaBridge | 168:e84263d55307 | 37 | typedef struct gpio_irq_s gpio_irq_t; |
AnnaBridge | 168:e84263d55307 | 38 | |
AnnaBridge | 168:e84263d55307 | 39 | struct gpio_s { |
AnnaBridge | 168:e84263d55307 | 40 | PinName pin; |
AnnaBridge | 168:e84263d55307 | 41 | PinMode mode; |
AnnaBridge | 168:e84263d55307 | 42 | PinDirection direction; |
AnnaBridge | 168:e84263d55307 | 43 | HAL_GPIO_PIN hal_pin; |
AnnaBridge | 168:e84263d55307 | 44 | uint8_t hal_port_num; |
AnnaBridge | 168:e84263d55307 | 45 | uint8_t hal_pin_num; |
AnnaBridge | 168:e84263d55307 | 46 | }; |
AnnaBridge | 168:e84263d55307 | 47 | |
AnnaBridge | 168:e84263d55307 | 48 | typedef struct gpio_s gpio_t; |
AnnaBridge | 168:e84263d55307 | 49 | |
AnnaBridge | 168:e84263d55307 | 50 | struct port_s { |
AnnaBridge | 168:e84263d55307 | 51 | PortName port; |
AnnaBridge | 168:e84263d55307 | 52 | uint32_t mask; |
AnnaBridge | 168:e84263d55307 | 53 | PinDirection direction; |
AnnaBridge | 168:e84263d55307 | 54 | uint8_t *pin_def; |
AnnaBridge | 168:e84263d55307 | 55 | }; |
AnnaBridge | 168:e84263d55307 | 56 | #endif // end of "#ifdef CONFIG_GPIO_EN" |
AnnaBridge | 168:e84263d55307 | 57 | |
AnnaBridge | 168:e84263d55307 | 58 | #ifdef CONFIG_UART_EN |
AnnaBridge | 168:e84263d55307 | 59 | struct serial_s { |
AnnaBridge | 168:e84263d55307 | 60 | int index; |
AnnaBridge | 168:e84263d55307 | 61 | HAL_RUART_OP hal_uart_op; |
AnnaBridge | 168:e84263d55307 | 62 | HAL_RUART_ADAPTER hal_uart_adp; |
AnnaBridge | 168:e84263d55307 | 63 | #ifdef CONFIG_GDMA_EN |
AnnaBridge | 168:e84263d55307 | 64 | UART_DMA_CONFIG uart_gdma_cfg; |
AnnaBridge | 168:e84263d55307 | 65 | HAL_GDMA_ADAPTER uart_gdma_adp_tx; |
AnnaBridge | 168:e84263d55307 | 66 | HAL_GDMA_ADAPTER uart_gdma_adp_rx; |
AnnaBridge | 168:e84263d55307 | 67 | UART_DMA_MULTIBLK gdma_multiblk_list_tx; |
AnnaBridge | 168:e84263d55307 | 68 | UART_DMA_MULTIBLK gdma_multiblk_list_rx; |
AnnaBridge | 168:e84263d55307 | 69 | #endif |
AnnaBridge | 168:e84263d55307 | 70 | uint32_t tx_len; |
AnnaBridge | 168:e84263d55307 | 71 | uint32_t rx_len; |
AnnaBridge | 168:e84263d55307 | 72 | }; |
AnnaBridge | 168:e84263d55307 | 73 | #endif // end of "#ifdef CONFIG_UART_EN" |
AnnaBridge | 168:e84263d55307 | 74 | |
AnnaBridge | 168:e84263d55307 | 75 | struct log_uart_s { |
AnnaBridge | 168:e84263d55307 | 76 | HAL_LOG_UART_ADAPTER log_hal_uart; |
AnnaBridge | 168:e84263d55307 | 77 | }; |
AnnaBridge | 168:e84263d55307 | 78 | |
AnnaBridge | 168:e84263d55307 | 79 | #ifdef CONFIG_SPI_COM_EN |
AnnaBridge | 168:e84263d55307 | 80 | |
AnnaBridge | 168:e84263d55307 | 81 | #endif |
AnnaBridge | 168:e84263d55307 | 82 | |
AnnaBridge | 168:e84263d55307 | 83 | #ifdef CONFIG_PWM_EN |
AnnaBridge | 168:e84263d55307 | 84 | struct pwmout_s { |
AnnaBridge | 168:e84263d55307 | 85 | uint8_t pwm_idx; |
AnnaBridge | 168:e84263d55307 | 86 | uint8_t pin_sel; |
AnnaBridge | 168:e84263d55307 | 87 | uint32_t period; |
AnnaBridge | 168:e84263d55307 | 88 | uint32_t pulse; |
AnnaBridge | 168:e84263d55307 | 89 | HAL_PWM_ADAPTER pwm_hal_adp; |
AnnaBridge | 168:e84263d55307 | 90 | }; |
AnnaBridge | 168:e84263d55307 | 91 | #endif |
AnnaBridge | 168:e84263d55307 | 92 | |
AnnaBridge | 168:e84263d55307 | 93 | #ifdef CONFIG_I2C_EN |
AnnaBridge | 168:e84263d55307 | 94 | struct i2c_s { |
AnnaBridge | 168:e84263d55307 | 95 | SAL_I2C_MNGT_ADPT SalI2CMngtAdpt; |
AnnaBridge | 168:e84263d55307 | 96 | SAL_I2C_HND_PRIV SalI2CHndPriv; |
AnnaBridge | 168:e84263d55307 | 97 | HAL_I2C_INIT_DAT HalI2CInitData; |
AnnaBridge | 168:e84263d55307 | 98 | HAL_I2C_OP HalI2COp; |
AnnaBridge | 168:e84263d55307 | 99 | IRQ_HANDLE I2CIrqHandleDat; |
AnnaBridge | 168:e84263d55307 | 100 | HAL_GDMA_ADAPTER HalI2CTxGdmaAdpt; |
AnnaBridge | 168:e84263d55307 | 101 | HAL_GDMA_ADAPTER HalI2CRxGdmaAdpt; |
AnnaBridge | 168:e84263d55307 | 102 | HAL_GDMA_OP HalI2CGdmaOp; |
AnnaBridge | 168:e84263d55307 | 103 | IRQ_HANDLE I2CTxGdmaIrqHandleDat; |
AnnaBridge | 168:e84263d55307 | 104 | IRQ_HANDLE I2CRxGdmaIrqHandleDat; |
AnnaBridge | 168:e84263d55307 | 105 | SAL_I2C_USER_CB SalI2CUserCB; |
AnnaBridge | 168:e84263d55307 | 106 | SAL_I2C_USERCB_ADPT SalI2CUserCBAdpt[SAL_USER_CB_NUM]; |
AnnaBridge | 168:e84263d55307 | 107 | SAL_I2C_DMA_USER_DEF SalI2CDmaUserDef; |
AnnaBridge | 168:e84263d55307 | 108 | }; |
AnnaBridge | 168:e84263d55307 | 109 | #endif |
AnnaBridge | 168:e84263d55307 | 110 | |
AnnaBridge | 168:e84263d55307 | 111 | |
AnnaBridge | 168:e84263d55307 | 112 | struct flash_s |
AnnaBridge | 168:e84263d55307 | 113 | { |
AnnaBridge | 168:e84263d55307 | 114 | SPIC_INIT_PARA SpicInitPara; |
AnnaBridge | 168:e84263d55307 | 115 | u32 Length; |
AnnaBridge | 168:e84263d55307 | 116 | }; |
AnnaBridge | 168:e84263d55307 | 117 | |
AnnaBridge | 168:e84263d55307 | 118 | |
AnnaBridge | 168:e84263d55307 | 119 | #ifdef CONFIG_ADC_EN |
AnnaBridge | 168:e84263d55307 | 120 | struct analogin_s { |
AnnaBridge | 168:e84263d55307 | 121 | SAL_ADC_MNGT_ADPT SalADCMngtAdpt; |
AnnaBridge | 168:e84263d55307 | 122 | SAL_ADC_HND_PRIV SalADCHndPriv; |
AnnaBridge | 168:e84263d55307 | 123 | HAL_ADC_INIT_DAT HalADCInitData; |
AnnaBridge | 168:e84263d55307 | 124 | HAL_ADC_OP HalADCOp; |
AnnaBridge | 168:e84263d55307 | 125 | IRQ_HANDLE ADCIrqHandleDat; |
AnnaBridge | 168:e84263d55307 | 126 | HAL_GDMA_ADAPTER HalADCGdmaAdpt; |
AnnaBridge | 168:e84263d55307 | 127 | HAL_GDMA_OP HalADCGdmaOp; |
AnnaBridge | 168:e84263d55307 | 128 | IRQ_HANDLE ADCGdmaIrqHandleDat; |
AnnaBridge | 168:e84263d55307 | 129 | SAL_ADC_USER_CB SalADCUserCB; |
AnnaBridge | 168:e84263d55307 | 130 | SAL_ADC_USERCB_ADPT SalADCUserCBAdpt[SAL_ADC_USER_CB_NUM]; |
AnnaBridge | 168:e84263d55307 | 131 | }; |
AnnaBridge | 168:e84263d55307 | 132 | #endif |
AnnaBridge | 168:e84263d55307 | 133 | |
AnnaBridge | 168:e84263d55307 | 134 | #if 0 |
AnnaBridge | 168:e84263d55307 | 135 | struct i2c_s { |
AnnaBridge | 168:e84263d55307 | 136 | I2C_Type *i2c; |
AnnaBridge | 168:e84263d55307 | 137 | }; |
AnnaBridge | 168:e84263d55307 | 138 | |
AnnaBridge | 168:e84263d55307 | 139 | struct spi_s { |
AnnaBridge | 168:e84263d55307 | 140 | SPI_Type *spi; |
AnnaBridge | 168:e84263d55307 | 141 | }; |
AnnaBridge | 168:e84263d55307 | 142 | |
AnnaBridge | 168:e84263d55307 | 143 | #endif |
AnnaBridge | 168:e84263d55307 | 144 | |
AnnaBridge | 168:e84263d55307 | 145 | #ifdef CONFIG_NFC_EN |
AnnaBridge | 168:e84263d55307 | 146 | struct nfctag_s { |
AnnaBridge | 168:e84263d55307 | 147 | NFC_ADAPTER NFCAdapter; |
AnnaBridge | 168:e84263d55307 | 148 | void *nfc_rd_cb; // read callback function |
AnnaBridge | 168:e84263d55307 | 149 | void *rd_cb_arg; |
AnnaBridge | 168:e84263d55307 | 150 | void *nfc_wr_cb; // write callback function |
AnnaBridge | 168:e84263d55307 | 151 | void *wr_cb_arg; |
AnnaBridge | 168:e84263d55307 | 152 | void *nfc_ev_cb; // event callback function |
AnnaBridge | 168:e84263d55307 | 153 | void *ev_cb_arg; |
AnnaBridge | 168:e84263d55307 | 154 | void *nfc_cache_rd_cb; // cache read callback function |
AnnaBridge | 168:e84263d55307 | 155 | void *cache_read_cb_arg; |
AnnaBridge | 168:e84263d55307 | 156 | unsigned int event_mask; |
AnnaBridge | 168:e84263d55307 | 157 | int pwr_status; |
AnnaBridge | 168:e84263d55307 | 158 | }; |
AnnaBridge | 168:e84263d55307 | 159 | #endif |
AnnaBridge | 168:e84263d55307 | 160 | |
AnnaBridge | 168:e84263d55307 | 161 | #ifdef CONFIG_TIMER_EN |
AnnaBridge | 168:e84263d55307 | 162 | struct gtimer_s { |
AnnaBridge | 168:e84263d55307 | 163 | TIMER_ADAPTER hal_gtimer_adp; |
AnnaBridge | 168:e84263d55307 | 164 | void *handler; |
AnnaBridge | 168:e84263d55307 | 165 | u32 hid; |
AnnaBridge | 168:e84263d55307 | 166 | u8 timer_id; |
AnnaBridge | 168:e84263d55307 | 167 | u8 is_periodcal; |
AnnaBridge | 168:e84263d55307 | 168 | }; |
AnnaBridge | 168:e84263d55307 | 169 | #endif |
AnnaBridge | 168:e84263d55307 | 170 | |
AnnaBridge | 168:e84263d55307 | 171 | #ifdef CONFIG_I2S_EN |
AnnaBridge | 168:e84263d55307 | 172 | struct i2s_s { |
AnnaBridge | 168:e84263d55307 | 173 | HAL_I2S_ADAPTER I2SAdapter; |
AnnaBridge | 168:e84263d55307 | 174 | HAL_I2S_INIT_DAT InitDat; |
AnnaBridge | 168:e84263d55307 | 175 | u8 sampling_rate; |
AnnaBridge | 168:e84263d55307 | 176 | u8 channel_num; |
AnnaBridge | 168:e84263d55307 | 177 | u8 word_length; |
AnnaBridge | 168:e84263d55307 | 178 | u8 direction; |
AnnaBridge | 168:e84263d55307 | 179 | }; |
AnnaBridge | 168:e84263d55307 | 180 | |
AnnaBridge | 168:e84263d55307 | 181 | #endif |
AnnaBridge | 168:e84263d55307 | 182 | |
AnnaBridge | 168:e84263d55307 | 183 | #ifdef CONFIG_DAC_EN |
AnnaBridge | 168:e84263d55307 | 184 | /** \file objects.h |
AnnaBridge | 168:e84263d55307 | 185 | * \brief A Documented file. |
AnnaBridge | 168:e84263d55307 | 186 | * |
AnnaBridge | 168:e84263d55307 | 187 | * A documented file. |
AnnaBridge | 168:e84263d55307 | 188 | */ |
AnnaBridge | 168:e84263d55307 | 189 | |
AnnaBridge | 168:e84263d55307 | 190 | /** \struct dac_s objects.h "rtl8195a/objects.h" |
AnnaBridge | 168:e84263d55307 | 191 | * \brief This is a dac_s structure. |
AnnaBridge | 168:e84263d55307 | 192 | * |
AnnaBridge | 168:e84263d55307 | 193 | * For analogout APIs, a pointer to dac_s is used as an input paras. |
AnnaBridge | 168:e84263d55307 | 194 | * A DAC initial data structure is the major element of dac_s. |
AnnaBridge | 168:e84263d55307 | 195 | */ |
AnnaBridge | 168:e84263d55307 | 196 | struct dac_s { |
AnnaBridge | 168:e84263d55307 | 197 | HAL_DAC_INIT_DAT DACpara; |
AnnaBridge | 168:e84263d55307 | 198 | }; |
AnnaBridge | 168:e84263d55307 | 199 | #endif |
AnnaBridge | 168:e84263d55307 | 200 | |
AnnaBridge | 168:e84263d55307 | 201 | #ifdef CONFIG_ADC_EN //True random number generator uses ADC |
AnnaBridge | 168:e84263d55307 | 202 | |
AnnaBridge | 168:e84263d55307 | 203 | struct trng_s{ |
AnnaBridge | 168:e84263d55307 | 204 | uint32_t pin; |
AnnaBridge | 168:e84263d55307 | 205 | struct analogin_s tradcng; |
AnnaBridge | 168:e84263d55307 | 206 | uint8_t inited; |
AnnaBridge | 168:e84263d55307 | 207 | }; |
AnnaBridge | 168:e84263d55307 | 208 | #endif |
AnnaBridge | 168:e84263d55307 | 209 | |
AnnaBridge | 168:e84263d55307 | 210 | #ifdef __cplusplus |
AnnaBridge | 168:e84263d55307 | 211 | } |
AnnaBridge | 168:e84263d55307 | 212 | #endif |
AnnaBridge | 168:e84263d55307 | 213 | |
AnnaBridge | 168:e84263d55307 | 214 | #endif |