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 172:7d866c31b3c5 1 /* mbed Microcontroller Library
AnnaBridge 172:7d866c31b3c5 2 * Copyright (c) 2015-2016 Nuvoton
AnnaBridge 172:7d866c31b3c5 3 *
AnnaBridge 172:7d866c31b3c5 4 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 172:7d866c31b3c5 5 * you may not use this file except in compliance with the License.
AnnaBridge 172:7d866c31b3c5 6 * You may obtain a copy of the License at
AnnaBridge 172:7d866c31b3c5 7 *
AnnaBridge 172:7d866c31b3c5 8 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 172:7d866c31b3c5 9 *
AnnaBridge 172:7d866c31b3c5 10 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 172:7d866c31b3c5 11 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 172:7d866c31b3c5 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 172:7d866c31b3c5 13 * See the License for the specific language governing permissions and
AnnaBridge 172:7d866c31b3c5 14 * limitations under the License.
AnnaBridge 172:7d866c31b3c5 15 */
AnnaBridge 172:7d866c31b3c5 16
AnnaBridge 172:7d866c31b3c5 17 #ifndef MBED_PERIPHERALNAMES_H
AnnaBridge 172:7d866c31b3c5 18 #define MBED_PERIPHERALNAMES_H
AnnaBridge 172:7d866c31b3c5 19
AnnaBridge 172:7d866c31b3c5 20 #include "cmsis.h"
AnnaBridge 172:7d866c31b3c5 21
AnnaBridge 172:7d866c31b3c5 22 #ifdef __cplusplus
AnnaBridge 172:7d866c31b3c5 23 extern "C" {
AnnaBridge 172:7d866c31b3c5 24 #endif
AnnaBridge 172:7d866c31b3c5 25
AnnaBridge 172:7d866c31b3c5 26 // NOTE: Check all module base addresses (XXX_BASE in BSP) for free bit fields to define module name
AnnaBridge 172:7d866c31b3c5 27 // which encodes module base address and module index/subindex.
AnnaBridge 172:7d866c31b3c5 28 #define NU_MODSUBINDEX_Pos 0
AnnaBridge 172:7d866c31b3c5 29 #define NU_MODSUBINDEX_Msk (0x1Ful << NU_MODSUBINDEX_Pos)
AnnaBridge 172:7d866c31b3c5 30 #define NU_MODINDEX_Pos 20
AnnaBridge 172:7d866c31b3c5 31 #define NU_MODINDEX_Msk (0xFul << NU_MODINDEX_Pos)
AnnaBridge 172:7d866c31b3c5 32
AnnaBridge 172:7d866c31b3c5 33 #define NU_MODNAME(MODBASE, INDEX, SUBINDEX) ((MODBASE) | ((INDEX) << NU_MODINDEX_Pos) | ((SUBINDEX) << NU_MODSUBINDEX_Pos))
AnnaBridge 172:7d866c31b3c5 34 #define NU_MODBASE(MODNAME) ((MODNAME) & ~(NU_MODINDEX_Msk | NU_MODSUBINDEX_Msk))
AnnaBridge 172:7d866c31b3c5 35 #define NU_MODINDEX(MODNAME) (((MODNAME) & NU_MODINDEX_Msk) >> NU_MODINDEX_Pos)
AnnaBridge 172:7d866c31b3c5 36 #define NU_MODSUBINDEX(MODNAME) (((MODNAME) & NU_MODSUBINDEX_Msk) >> NU_MODSUBINDEX_Pos)
AnnaBridge 172:7d866c31b3c5 37
AnnaBridge 172:7d866c31b3c5 38 #if 0
AnnaBridge 172:7d866c31b3c5 39 typedef enum {
AnnaBridge 172:7d866c31b3c5 40 GPIO_A = (int) NU_MODNAME(GPIOA_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 41 GPIO_B = (int) NU_MODNAME(GPIOB_BASE, 1, 0),
AnnaBridge 172:7d866c31b3c5 42 GPIO_C = (int) NU_MODNAME(GPIOC_BASE, 2, 0),
AnnaBridge 172:7d866c31b3c5 43 GPIO_D = (int) NU_MODNAME(GPIOD_BASE, 3, 0),
AnnaBridge 172:7d866c31b3c5 44 GPIO_E = (int) NU_MODNAME(GPIOE_BASE, 4, 0),
AnnaBridge 172:7d866c31b3c5 45 GPIO_F = (int) NU_MODNAME(GPIOF_BASE, 5, 0),
AnnaBridge 172:7d866c31b3c5 46 GPIO_G = (int) NU_MODNAME(GPIOG_BASE, 6, 0),
AnnaBridge 172:7d866c31b3c5 47 GPIO_H = (int) NU_MODNAME(GPIOH_BASE, 7, 0)
AnnaBridge 172:7d866c31b3c5 48 } GPIOName;
AnnaBridge 172:7d866c31b3c5 49 #endif
AnnaBridge 172:7d866c31b3c5 50
AnnaBridge 172:7d866c31b3c5 51 typedef enum {
AnnaBridge 172:7d866c31b3c5 52 ADC_0_0 = (int) NU_MODNAME(EADC_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 53 ADC_0_1 = (int) NU_MODNAME(EADC_BASE, 0, 1),
AnnaBridge 172:7d866c31b3c5 54 ADC_0_2 = (int) NU_MODNAME(EADC_BASE, 0, 2),
AnnaBridge 172:7d866c31b3c5 55 ADC_0_3 = (int) NU_MODNAME(EADC_BASE, 0, 3),
AnnaBridge 172:7d866c31b3c5 56 ADC_0_4 = (int) NU_MODNAME(EADC_BASE, 0, 4),
AnnaBridge 172:7d866c31b3c5 57 ADC_0_5 = (int) NU_MODNAME(EADC_BASE, 0, 5),
AnnaBridge 172:7d866c31b3c5 58 ADC_0_6 = (int) NU_MODNAME(EADC_BASE, 0, 6),
AnnaBridge 172:7d866c31b3c5 59 ADC_0_7 = (int) NU_MODNAME(EADC_BASE, 0, 7),
AnnaBridge 172:7d866c31b3c5 60 ADC_0_8 = (int) NU_MODNAME(EADC_BASE, 0, 8),
AnnaBridge 172:7d866c31b3c5 61 ADC_0_9 = (int) NU_MODNAME(EADC_BASE, 0, 9),
AnnaBridge 172:7d866c31b3c5 62 ADC_0_10 = (int) NU_MODNAME(EADC_BASE, 0, 10),
AnnaBridge 172:7d866c31b3c5 63 ADC_0_11 = (int) NU_MODNAME(EADC_BASE, 0, 11),
AnnaBridge 172:7d866c31b3c5 64 ADC_0_12 = (int) NU_MODNAME(EADC_BASE, 0, 12),
AnnaBridge 172:7d866c31b3c5 65 ADC_0_13 = (int) NU_MODNAME(EADC_BASE, 0, 13),
AnnaBridge 172:7d866c31b3c5 66 ADC_0_14 = (int) NU_MODNAME(EADC_BASE, 0, 14),
AnnaBridge 172:7d866c31b3c5 67 ADC_0_15 = (int) NU_MODNAME(EADC_BASE, 0, 15)
AnnaBridge 172:7d866c31b3c5 68 } ADCName;
AnnaBridge 172:7d866c31b3c5 69
AnnaBridge 172:7d866c31b3c5 70 typedef enum {
AnnaBridge 189:f392fc9709a3 71 DAC_0_0 = (int) NU_MODNAME(DAC0_BASE, 0, 0),
AnnaBridge 189:f392fc9709a3 72 DAC_1_0 = (int) NU_MODNAME(DAC1_BASE, 1, 0)
AnnaBridge 189:f392fc9709a3 73 } DACName;
AnnaBridge 189:f392fc9709a3 74
AnnaBridge 189:f392fc9709a3 75 typedef enum {
AnnaBridge 172:7d866c31b3c5 76 UART_0 = (int) NU_MODNAME(UART0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 77 UART_1 = (int) NU_MODNAME(UART1_BASE, 1, 0),
AnnaBridge 172:7d866c31b3c5 78 UART_2 = (int) NU_MODNAME(UART2_BASE, 2, 0),
AnnaBridge 172:7d866c31b3c5 79 UART_3 = (int) NU_MODNAME(UART3_BASE, 3, 0),
AnnaBridge 172:7d866c31b3c5 80 UART_4 = (int) NU_MODNAME(UART4_BASE, 4, 0),
AnnaBridge 172:7d866c31b3c5 81 UART_5 = (int) NU_MODNAME(UART5_BASE, 5, 0),
AnnaBridge 172:7d866c31b3c5 82 // NOTE: board-specific
AnnaBridge 172:7d866c31b3c5 83 STDIO_UART = UART_0
AnnaBridge 172:7d866c31b3c5 84 } UARTName;
AnnaBridge 172:7d866c31b3c5 85
AnnaBridge 172:7d866c31b3c5 86 typedef enum {
AnnaBridge 172:7d866c31b3c5 87 SPI_0 = (int) NU_MODNAME(SPI0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 88 SPI_1 = (int) NU_MODNAME(SPI1_BASE, 1, 0),
AnnaBridge 172:7d866c31b3c5 89 SPI_2 = (int) NU_MODNAME(SPI2_BASE, 2, 0),
AnnaBridge 172:7d866c31b3c5 90 SPI_3 = (int) NU_MODNAME(SPI3_BASE, 3, 0),
AnnaBridge 172:7d866c31b3c5 91 SPI_4 = (int) NU_MODNAME(SPI4_BASE, 4, 0)
AnnaBridge 172:7d866c31b3c5 92 } SPIName;
AnnaBridge 172:7d866c31b3c5 93
AnnaBridge 172:7d866c31b3c5 94 typedef enum {
AnnaBridge 172:7d866c31b3c5 95 I2C_0 = (int) NU_MODNAME(I2C0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 96 I2C_1 = (int) NU_MODNAME(I2C1_BASE, 1, 0),
AnnaBridge 172:7d866c31b3c5 97 I2C_2 = (int) NU_MODNAME(I2C2_BASE, 2, 0)
AnnaBridge 172:7d866c31b3c5 98 } I2CName;
AnnaBridge 172:7d866c31b3c5 99
AnnaBridge 172:7d866c31b3c5 100 typedef enum {
AnnaBridge 172:7d866c31b3c5 101 PWM_0_0 = (int) NU_MODNAME(EPWM0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 102 PWM_0_1 = (int) NU_MODNAME(EPWM0_BASE, 0, 1),
AnnaBridge 172:7d866c31b3c5 103 PWM_0_2 = (int) NU_MODNAME(EPWM0_BASE, 0, 2),
AnnaBridge 172:7d866c31b3c5 104 PWM_0_3 = (int) NU_MODNAME(EPWM0_BASE, 0, 3),
AnnaBridge 172:7d866c31b3c5 105 PWM_0_4 = (int) NU_MODNAME(EPWM0_BASE, 0, 4),
AnnaBridge 172:7d866c31b3c5 106 PWM_0_5 = (int) NU_MODNAME(EPWM0_BASE, 0, 5),
AnnaBridge 172:7d866c31b3c5 107
AnnaBridge 172:7d866c31b3c5 108 PWM_1_0 = (int) NU_MODNAME(EPWM1_BASE, 1, 0),
AnnaBridge 172:7d866c31b3c5 109 PWM_1_1 = (int) NU_MODNAME(EPWM1_BASE, 1, 1),
AnnaBridge 172:7d866c31b3c5 110 PWM_1_2 = (int) NU_MODNAME(EPWM1_BASE, 1, 2),
AnnaBridge 172:7d866c31b3c5 111 PWM_1_3 = (int) NU_MODNAME(EPWM1_BASE, 1, 3),
AnnaBridge 172:7d866c31b3c5 112 PWM_1_4 = (int) NU_MODNAME(EPWM1_BASE, 1, 4),
AnnaBridge 172:7d866c31b3c5 113 PWM_1_5 = (int) NU_MODNAME(EPWM1_BASE, 1, 5)
AnnaBridge 172:7d866c31b3c5 114 } PWMName;
AnnaBridge 172:7d866c31b3c5 115
AnnaBridge 172:7d866c31b3c5 116 typedef enum {
AnnaBridge 172:7d866c31b3c5 117 TIMER_0 = (int) NU_MODNAME(TIMER0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 118 TIMER_1 = (int) NU_MODNAME(TIMER1_BASE, 1, 0),
AnnaBridge 172:7d866c31b3c5 119 TIMER_2 = (int) NU_MODNAME(TIMER2_BASE, 2, 0),
AnnaBridge 172:7d866c31b3c5 120 TIMER_3 = (int) NU_MODNAME(TIMER3_BASE, 3, 0),
AnnaBridge 172:7d866c31b3c5 121 } TIMERName;
AnnaBridge 172:7d866c31b3c5 122
AnnaBridge 172:7d866c31b3c5 123 typedef enum {
AnnaBridge 172:7d866c31b3c5 124 RTC_0 = (int) NU_MODNAME(RTC_BASE, 0, 0)
AnnaBridge 172:7d866c31b3c5 125 } RTCName;
AnnaBridge 172:7d866c31b3c5 126
AnnaBridge 172:7d866c31b3c5 127 typedef enum {
AnnaBridge 172:7d866c31b3c5 128 DMA_0 = (int) NU_MODNAME(PDMA_BASE, 0, 0)
AnnaBridge 172:7d866c31b3c5 129 } DMAName;
AnnaBridge 172:7d866c31b3c5 130
AnnaBridge 172:7d866c31b3c5 131 typedef enum {
AnnaBridge 172:7d866c31b3c5 132 SD_0 = (int) NU_MODNAME(SDH0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 133 SD_1 = (int) NU_MODNAME(SDH1_BASE, 1, 0)
AnnaBridge 172:7d866c31b3c5 134 } SDName;
AnnaBridge 172:7d866c31b3c5 135
AnnaBridge 172:7d866c31b3c5 136 typedef enum {
AnnaBridge 172:7d866c31b3c5 137 CAN_0 = (int) NU_MODNAME(CAN0_BASE, 0, 0),
AnnaBridge 172:7d866c31b3c5 138 CAN_1 = (int) NU_MODNAME(CAN1_BASE, 1, 0)
AnnaBridge 172:7d866c31b3c5 139 } CANName;
AnnaBridge 172:7d866c31b3c5 140
AnnaBridge 172:7d866c31b3c5 141 #ifdef __cplusplus
AnnaBridge 172:7d866c31b3c5 142 }
AnnaBridge 172:7d866c31b3c5 143 #endif
AnnaBridge 172:7d866c31b3c5 144
AnnaBridge 172:7d866c31b3c5 145 #endif