Skip to content

Commit 0977206

Browse files
Merge pull request #4631 from OpenNuvoton/nuvoton_nano130
Add new target NUMAKER_PFM_NANO130
2 parents 0150f58 + 346209e commit 0977206

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+31339
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2015-2017 Nuvoton
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#ifndef MBED_PERIPHERALNAMES_H
18+
#define MBED_PERIPHERALNAMES_H
19+
20+
#include "cmsis.h"
21+
22+
#ifdef __cplusplus
23+
extern "C" {
24+
#endif
25+
26+
// NOTE: Check all module base addresses (XXX_BASE in BSP) for free bit fields to define module name
27+
// which encodes module base address and module index/subindex.
28+
#define NU_MODSUBINDEX_Pos 0
29+
#define NU_MODSUBINDEX_Msk (0x1Ful << NU_MODSUBINDEX_Pos)
30+
#define NU_MODINDEX_Pos 24
31+
#define NU_MODINDEX_Msk (0xFul << NU_MODINDEX_Pos)
32+
33+
#define NU_MODNAME(MODBASE, INDEX, SUBINDEX) ((MODBASE) | ((INDEX) << NU_MODINDEX_Pos) | ((SUBINDEX) << NU_MODSUBINDEX_Pos))
34+
#define NU_MODBASE(MODNAME) ((MODNAME) & ~(NU_MODINDEX_Msk | NU_MODSUBINDEX_Msk))
35+
#define NU_MODINDEX(MODNAME) (((MODNAME) & NU_MODINDEX_Msk) >> NU_MODINDEX_Pos)
36+
#define NU_MODSUBINDEX(MODNAME) (((MODNAME) & NU_MODSUBINDEX_Msk) >> NU_MODSUBINDEX_Pos)
37+
38+
#if 0
39+
typedef enum {
40+
GPIO_A = (int) NU_MODNAME(GPIOA_BASE, 0, 0),
41+
GPIO_B = (int) NU_MODNAME(GPIOB_BASE, 1, 0),
42+
GPIO_C = (int) NU_MODNAME(GPIOC_BASE, 2, 0),
43+
GPIO_D = (int) NU_MODNAME(GPIOD_BASE, 3, 0),
44+
GPIO_E = (int) NU_MODNAME(GPIOE_BASE, 4, 0),
45+
GPIO_F = (int) NU_MODNAME(GPIOF_BASE, 5, 0)
46+
} GPIOName;
47+
#endif
48+
49+
typedef enum {
50+
ADC_0_0 = (int) NU_MODNAME(ADC_BASE, 0, 0),
51+
ADC_0_1 = (int) NU_MODNAME(ADC_BASE, 0, 1),
52+
ADC_0_2 = (int) NU_MODNAME(ADC_BASE, 0, 2),
53+
ADC_0_3 = (int) NU_MODNAME(ADC_BASE, 0, 3),
54+
ADC_0_4 = (int) NU_MODNAME(ADC_BASE, 0, 4),
55+
ADC_0_5 = (int) NU_MODNAME(ADC_BASE, 0, 5),
56+
ADC_0_6 = (int) NU_MODNAME(ADC_BASE, 0, 6),
57+
ADC_0_7 = (int) NU_MODNAME(ADC_BASE, 0, 7),
58+
ADC_0_8 = (int) NU_MODNAME(ADC_BASE, 0, 8),
59+
ADC_0_9 = (int) NU_MODNAME(ADC_BASE, 0, 9),
60+
ADC_0_10 = (int) NU_MODNAME(ADC_BASE, 0, 10),
61+
ADC_0_11 = (int) NU_MODNAME(ADC_BASE, 0, 11),
62+
} ADCName;
63+
64+
typedef enum {
65+
UART_0 = (int) NU_MODNAME(UART0_BASE, 0, 0),
66+
UART_1 = (int) NU_MODNAME(UART1_BASE, 1, 0),
67+
// NOTE: board-specific
68+
STDIO_UART = UART_0
69+
} UARTName;
70+
71+
typedef enum {
72+
SPI_0_0 = (int) NU_MODNAME(SPI0_BASE, 0, 0),
73+
SPI_0_1 = (int) NU_MODNAME(SPI0_BASE, 0, 1),
74+
SPI_1_0 = (int) NU_MODNAME(SPI1_BASE, 1, 0),
75+
SPI_1_1 = (int) NU_MODNAME(SPI1_BASE, 1, 1),
76+
SPI_2_0 = (int) NU_MODNAME(SPI2_BASE, 2, 0),
77+
SPI_2_1 = (int) NU_MODNAME(SPI2_BASE, 2, 1),
78+
79+
SPI_0 = SPI_0_0,
80+
SPI_1 = SPI_1_0,
81+
SPI_2 = SPI_2_0
82+
} SPIName;
83+
84+
typedef enum {
85+
I2C_0 = (int) NU_MODNAME(I2C0_BASE, 0, 0),
86+
I2C_1 = (int) NU_MODNAME(I2C1_BASE, 1, 0)
87+
} I2CName;
88+
89+
typedef enum {
90+
PWM_0_0 = (int) NU_MODNAME(PWM0_BASE, 0, 0),
91+
PWM_0_1 = (int) NU_MODNAME(PWM0_BASE, 0, 1),
92+
PWM_0_2 = (int) NU_MODNAME(PWM0_BASE, 0, 2),
93+
PWM_0_3 = (int) NU_MODNAME(PWM0_BASE, 0, 3),
94+
95+
PWM_1_0 = (int) NU_MODNAME(PWM1_BASE, 1, 0),
96+
PWM_1_1 = (int) NU_MODNAME(PWM1_BASE, 1, 1),
97+
PWM_1_2 = (int) NU_MODNAME(PWM1_BASE, 1, 2),
98+
PWM_1_3 = (int) NU_MODNAME(PWM1_BASE, 1, 3),
99+
} PWMName;
100+
101+
typedef enum {
102+
TIMER_0 = (int) NU_MODNAME(TIMER0_BASE, 0, 0),
103+
TIMER_1 = (int) NU_MODNAME(TIMER1_BASE, 0, 0),
104+
TIMER_2 = (int) NU_MODNAME(TIMER2_BASE, 0, 0),
105+
TIMER_3 = (int) NU_MODNAME(TIMER3_BASE, 0, 0),
106+
} TIMERName;
107+
108+
typedef enum {
109+
RTC_0 = (int) NU_MODNAME(RTC_BASE, 0, 0)
110+
} RTCName;
111+
112+
typedef enum {
113+
DMAGCR_0 = (int) NU_MODNAME(PDMAGCR_BASE, 0, 0)
114+
} DMAGCR_Name;
115+
116+
typedef enum {
117+
DMA_0_0 = (int) NU_MODNAME(VDMA_BASE, 0, 0),
118+
DMA_1_0 = (int) NU_MODNAME(PDMA1_BASE, 1, 0),
119+
DMA_2_0 = (int) NU_MODNAME(PDMA2_BASE, 2, 0),
120+
DMA_3_0 = (int) NU_MODNAME(PDMA3_BASE, 3, 0),
121+
DMA_4_0 = (int) NU_MODNAME(PDMA4_BASE, 4, 0),
122+
DMA_5_0 = (int) NU_MODNAME(PDMA5_BASE, 5, 0),
123+
DMA_6_0 = (int) NU_MODNAME(PDMA6_BASE, 6, 0),
124+
} DMAName;
125+
126+
typedef enum {
127+
I2S_0 = (int) NU_MODNAME(I2S_BASE, 0, 0),
128+
} I2SName;
129+
130+
#ifdef __cplusplus
131+
}
132+
#endif
133+
134+
#endif
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2015-2017 Nuvoton
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#include "PeripheralPins.h"
18+
19+
//*** ADC ***
20+
21+
const PinMap PinMap_ADC[] = {
22+
{PA_0, ADC_0_0, SYS_PA_L_MFP_PA0_MFP_ADC_CH0},
23+
{PA_1, ADC_0_1, SYS_PA_L_MFP_PA1_MFP_ADC_CH1},
24+
{PA_2, ADC_0_2, SYS_PA_L_MFP_PA2_MFP_ADC_CH2},
25+
{PA_3, ADC_0_3, SYS_PA_L_MFP_PA3_MFP_ADC_CH3},
26+
{PA_4, ADC_0_4, SYS_PA_L_MFP_PA4_MFP_ADC_CH4},
27+
{PA_5, ADC_0_5, SYS_PA_L_MFP_PA5_MFP_ADC_CH5},
28+
{PA_6, ADC_0_6, SYS_PA_L_MFP_PA6_MFP_ADC_CH6},
29+
{PA_7, ADC_0_7, SYS_PA_L_MFP_PA7_MFP_ADC_CH7},
30+
{PD_0, ADC_0_8, SYS_PD_L_MFP_PD0_MFP_ADC_CH8},
31+
{PD_1, ADC_0_9, SYS_PD_L_MFP_PD1_MFP_ADC_CH9},
32+
{PD_2, ADC_0_10, SYS_PD_L_MFP_PD2_MFP_ADC_CH10},
33+
{PD_3, ADC_0_11, SYS_PD_L_MFP_PD3_MFP_ADC_CH11},
34+
35+
{NC, NC, 0}
36+
};
37+
38+
//*** I2C ***
39+
40+
const PinMap PinMap_I2C_SDA[] = {
41+
{PA_8, I2C_0, SYS_PA_H_MFP_PA8_MFP_I2C0_SDA},
42+
{PA_10, I2C_1, SYS_PA_H_MFP_PA10_MFP_I2C1_SDA},
43+
{PA_12, I2C_0, SYS_PA_H_MFP_PA12_MFP_I2C0_SDA},
44+
{PA_4, I2C_0, SYS_PA_L_MFP_PA4_MFP_I2C0_SDA},
45+
{PC_8, I2C_1, SYS_PC_H_MFP_PC8_MFP_I2C1_SDA},
46+
{PC_12, I2C_0, SYS_PC_H_MFP_PC12_MFP_I2C0_SDA},
47+
{PF_4, I2C_0, SYS_PF_L_MFP_PF4_MFP_I2C0_SDA},
48+
49+
{NC, NC, 0}
50+
};
51+
52+
const PinMap PinMap_I2C_SCL[] = {
53+
{PA_5, I2C_0, SYS_PA_L_MFP_PA5_MFP_I2C0_SCL},
54+
{PA_9, I2C_0, SYS_PA_H_MFP_PA9_MFP_I2C0_SCL},
55+
{PA_11, I2C_1, SYS_PA_H_MFP_PA11_MFP_I2C1_SCL},
56+
{PA_13, I2C_0, SYS_PA_H_MFP_PA13_MFP_I2C0_SCL},
57+
{PC_9, I2C_1, SYS_PC_H_MFP_PC9_MFP_I2C1_SCL},
58+
{PC_13, I2C_0, SYS_PC_H_MFP_PC13_MFP_I2C0_SCL},
59+
{PF_5, I2C_0, SYS_PF_L_MFP_PF5_MFP_I2C0_SCL},
60+
61+
{NC, NC, 0}
62+
};
63+
64+
//*** PWM ***
65+
66+
const PinMap PinMap_PWM[] = {
67+
{PA_6, PWM_0_3, SYS_PA_L_MFP_PA6_MFP_PWM0_CH3},
68+
{PA_7, PWM_0_2, SYS_PA_L_MFP_PA7_MFP_PWM0_CH2},
69+
{PA_12, PWM_0_0, SYS_PA_H_MFP_PA12_MFP_PWM0_CH0},
70+
{PA_13, PWM_0_1, SYS_PA_H_MFP_PA13_MFP_PWM0_CH1},
71+
{PA_14, PWM_0_2, SYS_PA_H_MFP_PA14_MFP_PWM0_CH2},
72+
{PA_15, PWM_0_3, SYS_PA_H_MFP_PA15_MFP_PWM0_CH3},
73+
{PB_11, PWM_1_0, SYS_PB_H_MFP_PB11_MFP_PWM1_CH0},
74+
{PC_6, PWM_0_0, SYS_PC_L_MFP_PC6_MFP_PWM0_CH0},
75+
{PC_7, PWM_0_1, SYS_PC_L_MFP_PC7_MFP_PWM0_CH1},
76+
{PC_12, PWM_1_0, SYS_PC_H_MFP_PC12_MFP_PWM1_CH0},
77+
{PC_13, PWM_1_1, SYS_PC_H_MFP_PC13_MFP_PWM1_CH1},
78+
{PC_14, PWM_1_3, SYS_PC_H_MFP_PC14_MFP_PWM1_CH3},
79+
{PC_15, PWM_1_2, SYS_PC_H_MFP_PC15_MFP_PWM1_CH2},
80+
{PE_0, PWM_1_2, SYS_PE_L_MFP_PE0_MFP_PWM1_CH2},
81+
{PE_1, PWM_1_3, SYS_PE_L_MFP_PE1_MFP_PWM1_CH3},
82+
{PE_5, PWM_1_1, SYS_PE_L_MFP_PE5_MFP_PWM1_CH1},
83+
84+
{NC, NC, 0}
85+
};
86+
87+
//*** SERIAL ***
88+
89+
const PinMap PinMap_UART_TX[] = {
90+
{PA_3, UART_1, SYS_PA_L_MFP_PA3_MFP_UART1_TX},
91+
{PA_15, UART_0, SYS_PA_H_MFP_PA15_MFP_UART0_TX},
92+
{PB_1, UART_0, SYS_PB_L_MFP_PB1_MFP_UART0_TX},
93+
{PB_5, UART_1, SYS_PB_L_MFP_PB5_MFP_UART1_TX},
94+
{PC_11, UART_1, SYS_PC_H_MFP_PC11_MFP_UART1_TX},
95+
{PD_1, UART_1, SYS_PD_L_MFP_PD1_MFP_UART1_TX},
96+
{PE_10, UART_1, SYS_PE_H_MFP_PE10_MFP_UART1_TX},
97+
98+
{NC, NC, 0}
99+
};
100+
101+
const PinMap PinMap_UART_RX[] = {
102+
{PA_2, UART_1, SYS_PA_L_MFP_PA2_MFP_UART1_RX},
103+
{PA_14, UART_0, SYS_PA_H_MFP_PA14_MFP_UART0_RX},
104+
{PB_0, UART_0, SYS_PB_L_MFP_PB0_MFP_UART0_RX},
105+
{PB_4, UART_1, SYS_PB_L_MFP_PB4_MFP_UART1_RX},
106+
{PC_10, UART_1, SYS_PC_H_MFP_PC10_MFP_UART1_RX},
107+
{PD_0, UART_1, SYS_PD_L_MFP_PD0_MFP_UART1_RX},
108+
{PE_9, UART_1, SYS_PE_H_MFP_PE9_MFP_UART1_RX},
109+
110+
{NC, NC, 0}
111+
};
112+
113+
const PinMap PinMap_UART_RTS[] = {
114+
{PB_2, UART_0, SYS_PB_L_MFP_PB2_MFP_UART0_RTS},
115+
{PB_6, UART_1, SYS_PB_L_MFP_PB6_MFP_UART1_RTS},
116+
{PD_2, UART_1, SYS_PD_L_MFP_PD2_MFP_UART1_RTS},
117+
{PE_11, UART_1, SYS_PE_H_MFP_PE11_MFP_UART1_RTS},
118+
119+
{NC, NC, 0}
120+
};
121+
122+
const PinMap PinMap_UART_CTS[] = {
123+
{PB_3, UART_0, SYS_PB_L_MFP_PB3_MFP_UART0_CTS},
124+
{PB_7, UART_1, SYS_PB_L_MFP_PB7_MFP_UART1_CTS},
125+
{PD_3, UART_1, SYS_PD_L_MFP_PD3_MFP_UART1_CTS},
126+
{PE_12, UART_1, SYS_PE_H_MFP_PE12_MFP_UART1_CTS},
127+
128+
{NC, NC, 0}
129+
};
130+
131+
//*** SPI ***
132+
133+
const PinMap PinMap_SPI_MOSI[] = {
134+
{PA_11, SPI_2, SYS_PA_H_MFP_PA11_MFP_SPI2_MOSI0},
135+
{PB_0, SPI_1, SYS_PB_L_MFP_PB0_MFP_SPI1_MOSI0},
136+
{PB_7, SPI_2, SYS_PB_L_MFP_PB7_MFP_SPI2_MOSI0},
137+
{PB_10, SPI_0, SYS_PB_H_MFP_PB10_MFP_SPI0_MOSI0},
138+
{PC_3, SPI_0, SYS_PC_L_MFP_PC3_MFP_SPI0_MOSI0},
139+
{PC_5, SPI_0, SYS_PC_L_MFP_PC5_MFP_SPI0_MOSI1},
140+
{PC_11, SPI_1, SYS_PC_H_MFP_PC11_MFP_SPI1_MOSI0},
141+
{PC_13, SPI_1, SYS_PC_H_MFP_PC13_MFP_SPI1_MOSI1},
142+
{PD_3, SPI_2, SYS_PD_L_MFP_PD3_MFP_SPI2_MOSI0},
143+
{PD_5, SPI_2, SYS_PD_L_MFP_PD5_MFP_SPI2_MOSI1},
144+
{PE_4, SPI_0, SYS_PE_L_MFP_PE4_MFP_SPI0_MOSI0},
145+
146+
{NC, NC, 0}
147+
};
148+
149+
const PinMap PinMap_SPI_MISO[] = {
150+
{PA_10, SPI_2, SYS_PA_H_MFP_PA10_MFP_SPI2_MISO0},
151+
{PB_1, SPI_1, SYS_PB_L_MFP_PB1_MFP_SPI1_MISO0},
152+
{PB_6, SPI_2, SYS_PB_L_MFP_PB6_MFP_SPI2_MISO0},
153+
{PB_11, SPI_0, SYS_PB_H_MFP_PB11_MFP_SPI0_MISO0},
154+
{PC_2, SPI_0, SYS_PC_L_MFP_PC2_MFP_SPI0_MISO0},
155+
{PC_4, SPI_0, SYS_PC_L_MFP_PC4_MFP_SPI0_MISO1},
156+
{PC_10, SPI_1, SYS_PC_H_MFP_PC10_MFP_SPI1_MISO0},
157+
{PC_12, SPI_1, SYS_PC_H_MFP_PC12_MFP_SPI1_MISO1},
158+
{PD_2, SPI_2, SYS_PD_L_MFP_PD2_MFP_SPI2_MISO0},
159+
{PD_4, SPI_2, SYS_PD_L_MFP_PD4_MFP_SPI2_MISO1},
160+
{PE_3, SPI_0, SYS_PE_L_MFP_PE3_MFP_SPI0_MISO0},
161+
162+
{NC, NC, 0}
163+
};
164+
165+
const PinMap PinMap_SPI_SCLK[] = {
166+
{PA_9, SPI_2, SYS_PA_H_MFP_PA9_MFP_SPI2_SCLK},
167+
{PB_2, SPI_1, SYS_PB_L_MFP_PB2_MFP_SPI1_SCLK},
168+
{PB_5, SPI_2, SYS_PB_L_MFP_PB5_MFP_SPI2_SCLK},
169+
{PC_1, SPI_0, SYS_PC_L_MFP_PC1_MFP_SPI0_SCLK},
170+
{PC_9, SPI_1, SYS_PC_H_MFP_PC9_MFP_SPI1_SCLK},
171+
{PD_1, SPI_2, SYS_PD_L_MFP_PD1_MFP_SPI2_SCLK},
172+
{PE_2, SPI_0, SYS_PE_L_MFP_PE2_MFP_SPI0_SCLK},
173+
174+
{NC, NC, 0}
175+
};
176+
177+
const PinMap PinMap_SPI_SSEL[] = {
178+
{PA_8, SPI_2, SYS_PA_H_MFP_PA8_MFP_SPI2_SS0},
179+
{PB_3, SPI_1, SYS_PB_L_MFP_PB3_MFP_SPI1_SS0},
180+
{PB_4, SPI_2, SYS_PB_L_MFP_PB4_MFP_SPI2_SS0},
181+
{PB_9, SPI_1, SYS_PB_H_MFP_PB9_MFP_SPI1_SS1},
182+
{PB_10, SPI_0, SYS_PB_H_MFP_PB10_MFP_SPI0_SS1},
183+
{PB_14, SPI_2, SYS_PB_H_MFP_PB14_MFP_SPI2_SS1},
184+
{PC_0, SPI_0, SYS_PC_L_MFP_PC0_MFP_SPI0_SS0},
185+
{PC_8, SPI_1, SYS_PC_H_MFP_PC8_MFP_SPI1_SS0},
186+
{PD_0, SPI_2, SYS_PD_L_MFP_PD0_MFP_SPI2_SS0},
187+
{PE_1, SPI_0, SYS_PE_L_MFP_PE1_MFP_SPI0_SS0},
188+
189+
{NC, NC, 0}
190+
};
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2015-2017 Nuvoton
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#ifndef MBED_PERIPHERALPINS_H
18+
#define MBED_PERIPHERALPINS_H
19+
20+
#include "pinmap.h"
21+
#include "PeripheralNames.h"
22+
23+
#ifdef __cplusplus
24+
extern "C" {
25+
#endif
26+
27+
#if 0
28+
//*** GPIO ***
29+
30+
extern const PinMap PinMap_GPIO[];
31+
#endif
32+
33+
//*** ADC ***
34+
35+
extern const PinMap PinMap_ADC[];
36+
37+
//*** I2C ***
38+
39+
extern const PinMap PinMap_I2C_SDA[];
40+
extern const PinMap PinMap_I2C_SCL[];
41+
42+
//*** PWM ***
43+
44+
extern const PinMap PinMap_PWM[];
45+
46+
//*** SERIAL ***
47+
48+
extern const PinMap PinMap_UART_TX[];
49+
extern const PinMap PinMap_UART_RX[];
50+
extern const PinMap PinMap_UART_RTS[];
51+
extern const PinMap PinMap_UART_CTS[];
52+
53+
//*** SPI ***
54+
55+
extern const PinMap PinMap_SPI_MOSI[];
56+
extern const PinMap PinMap_SPI_MISO[];
57+
extern const PinMap PinMap_SPI_SCLK[];
58+
extern const PinMap PinMap_SPI_SSEL[];
59+
60+
#ifdef __cplusplus
61+
}
62+
#endif
63+
64+
#endif

0 commit comments

Comments
 (0)