Skip to content

Commit a2c9ae6

Browse files
committed
M2351: Update BSP and bugfix
Align with mainline BSP and fix relevant bugs: 1. Align with SPI module naming (1) Remove SPI5 (2) Degrade QSPI0 to SPI4 so that it can use for standard SPI 2. Fix some code lacking GPIO H 3. Implement __PC(...) by following BSP instead of with MBED_CALLER_ADDR() 4. Add SCU_IRQHandler(). Change printf(...) with interrupt-safe error(...) 5. Other minor alignment change
1 parent 82770d7 commit a2c9ae6

File tree

122 files changed

+2990
-4068
lines changed

Some content is hidden

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

122 files changed

+2990
-4068
lines changed

targets/TARGET_NUVOTON/TARGET_M2351/PeripheralNames.h

Lines changed: 47 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -81,45 +81,51 @@ typedef enum {
8181
GPIO_G = (int) NU_MODNAME(GPIOG_BASE, 6, 0),
8282
#endif
8383

84+
#if defined(SCU_INIT_IONSSET_VAL) && (SCU_INIT_IONSSET_VAL & (1 << 7))
85+
GPIO_H = (int) NU_MODNAME(GPIOH_BASE + NS_OFFSET, 7, 0),
86+
#else
87+
GPIO_H = (int) NU_MODNAME(GPIOH_BASE, 7, 0),
88+
#endif
89+
8490
} GPIOName;
8591
#endif
8692

8793
typedef enum {
8894

8995
#if defined(SCU_INIT_PNSSET2_VAL) && (SCU_INIT_PNSSET2_VAL & (1 << 3))
90-
ADC_0_0 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 0),
91-
ADC_0_1 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 1),
92-
ADC_0_2 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 2),
93-
ADC_0_3 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 3),
94-
ADC_0_4 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 4),
95-
ADC_0_5 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 5),
96-
ADC_0_6 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 6),
97-
ADC_0_7 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 7),
98-
ADC_0_8 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 8),
99-
ADC_0_9 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 9),
100-
ADC_0_10 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 10),
101-
ADC_0_11 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 11),
102-
ADC_0_12 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 12),
103-
ADC_0_13 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 13),
104-
ADC_0_14 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 14),
105-
ADC_0_15 = (int) NU_MODNAME(EADC0_BASE + NS_OFFSET, 0, 15),
106-
#else
107-
ADC_0_0 = (int) NU_MODNAME(EADC0_BASE, 0, 0),
108-
ADC_0_1 = (int) NU_MODNAME(EADC0_BASE, 0, 1),
109-
ADC_0_2 = (int) NU_MODNAME(EADC0_BASE, 0, 2),
110-
ADC_0_3 = (int) NU_MODNAME(EADC0_BASE, 0, 3),
111-
ADC_0_4 = (int) NU_MODNAME(EADC0_BASE, 0, 4),
112-
ADC_0_5 = (int) NU_MODNAME(EADC0_BASE, 0, 5),
113-
ADC_0_6 = (int) NU_MODNAME(EADC0_BASE, 0, 6),
114-
ADC_0_7 = (int) NU_MODNAME(EADC0_BASE, 0, 7),
115-
ADC_0_8 = (int) NU_MODNAME(EADC0_BASE, 0, 8),
116-
ADC_0_9 = (int) NU_MODNAME(EADC0_BASE, 0, 9),
117-
ADC_0_10 = (int) NU_MODNAME(EADC0_BASE, 0, 10),
118-
ADC_0_11 = (int) NU_MODNAME(EADC0_BASE, 0, 11),
119-
ADC_0_12 = (int) NU_MODNAME(EADC0_BASE, 0, 12),
120-
ADC_0_13 = (int) NU_MODNAME(EADC0_BASE, 0, 13),
121-
ADC_0_14 = (int) NU_MODNAME(EADC0_BASE, 0, 14),
122-
ADC_0_15 = (int) NU_MODNAME(EADC0_BASE, 0, 15),
96+
ADC_0_0 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 0),
97+
ADC_0_1 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 1),
98+
ADC_0_2 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 2),
99+
ADC_0_3 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 3),
100+
ADC_0_4 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 4),
101+
ADC_0_5 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 5),
102+
ADC_0_6 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 6),
103+
ADC_0_7 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 7),
104+
ADC_0_8 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 8),
105+
ADC_0_9 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 9),
106+
ADC_0_10 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 10),
107+
ADC_0_11 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 11),
108+
ADC_0_12 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 12),
109+
ADC_0_13 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 13),
110+
ADC_0_14 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 14),
111+
ADC_0_15 = (int) NU_MODNAME(EADC_BASE + NS_OFFSET, 0, 15),
112+
#else
113+
ADC_0_0 = (int) NU_MODNAME(EADC_BASE, 0, 0),
114+
ADC_0_1 = (int) NU_MODNAME(EADC_BASE, 0, 1),
115+
ADC_0_2 = (int) NU_MODNAME(EADC_BASE, 0, 2),
116+
ADC_0_3 = (int) NU_MODNAME(EADC_BASE, 0, 3),
117+
ADC_0_4 = (int) NU_MODNAME(EADC_BASE, 0, 4),
118+
ADC_0_5 = (int) NU_MODNAME(EADC_BASE, 0, 5),
119+
ADC_0_6 = (int) NU_MODNAME(EADC_BASE, 0, 6),
120+
ADC_0_7 = (int) NU_MODNAME(EADC_BASE, 0, 7),
121+
ADC_0_8 = (int) NU_MODNAME(EADC_BASE, 0, 8),
122+
ADC_0_9 = (int) NU_MODNAME(EADC_BASE, 0, 9),
123+
ADC_0_10 = (int) NU_MODNAME(EADC_BASE, 0, 10),
124+
ADC_0_11 = (int) NU_MODNAME(EADC_BASE, 0, 11),
125+
ADC_0_12 = (int) NU_MODNAME(EADC_BASE, 0, 12),
126+
ADC_0_13 = (int) NU_MODNAME(EADC_BASE, 0, 13),
127+
ADC_0_14 = (int) NU_MODNAME(EADC_BASE, 0, 14),
128+
ADC_0_15 = (int) NU_MODNAME(EADC_BASE, 0, 15),
123129
#endif
124130

125131
} ADCName;
@@ -181,34 +187,35 @@ typedef enum {
181187

182188
typedef enum {
183189

184-
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 0))
190+
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 1))
185191
SPI_0 = (int) NU_MODNAME(SPI0_BASE + NS_OFFSET, 0, 0),
186192
#else
187193
SPI_0 = (int) NU_MODNAME(SPI0_BASE, 0, 0),
188194
#endif
189195

190-
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 1))
196+
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 2))
191197
SPI_1 = (int) NU_MODNAME(SPI1_BASE + NS_OFFSET, 1, 0),
192198
#else
193199
SPI_1 = (int) NU_MODNAME(SPI1_BASE, 1, 0),
194200
#endif
195201

196-
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 2))
202+
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 3))
197203
SPI_2 = (int) NU_MODNAME(SPI2_BASE + NS_OFFSET, 2, 0),
198204
#else
199205
SPI_2 = (int) NU_MODNAME(SPI2_BASE, 2, 0),
200206
#endif
201207

202-
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 3))
208+
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 4))
203209
SPI_3 = (int) NU_MODNAME(SPI3_BASE + NS_OFFSET, 3, 0),
204210
#else
205211
SPI_3 = (int) NU_MODNAME(SPI3_BASE, 3, 0),
206212
#endif
207213

208-
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 5))
209-
SPI_5 = (int) NU_MODNAME(SPI5_BASE + NS_OFFSET, 5, 0),
214+
/* No SPI4 H/W, degrade QSPI0 H/W to SPI_4 for standard SPI usage */
215+
#if defined(SCU_INIT_PNSSET3_VAL) && (SCU_INIT_PNSSET3_VAL & (1 << 0))
216+
SPI_4 = (int) NU_MODNAME(QSPI0_BASE + NS_OFFSET, 4, 0),
210217
#else
211-
SPI_5 = (int) NU_MODNAME(SPI5_BASE, 5, 0),
218+
SPI_4 = (int) NU_MODNAME(QSPI0_BASE, 4, 0),
212219
#endif
213220

214221
} SPIName;

0 commit comments

Comments
 (0)