Skip to content

Commit 9a234ee

Browse files
committed
[Generic Serial] Review management
As generic "Serial" and "serialEvent" could be used by HardwareSerial or USBSerial, defaut definition have to be move away from uart to be properly wired. Signed-off-by: Frederic.Pillon <[email protected]>
1 parent fed0068 commit 9a234ee

File tree

6 files changed

+196
-170
lines changed

6 files changed

+196
-170
lines changed

cores/arduino/HardwareSerial.cpp

-37
Original file line numberDiff line numberDiff line change
@@ -105,43 +105,6 @@
105105
#endif
106106
#endif // HAVE_HWSERIALx
107107

108-
void serialEventRun(void)
109-
{
110-
#if defined(HAVE_HWSERIAL1)
111-
if (serialEvent1 && Serial1.available()) serialEvent1();
112-
#endif
113-
#if defined(HAVE_HWSERIAL2)
114-
if (serialEvent2 && Serial2.available()) serialEvent2();
115-
#endif
116-
#if defined(HAVE_HWSERIAL3)
117-
if (serialEvent3 && Serial3.available()) serialEvent3();
118-
#endif
119-
#if defined(HAVE_HWSERIAL4)
120-
if (serialEvent4 && Serial4.available()) serialEvent4();
121-
#endif
122-
#if defined(HAVE_HWSERIAL5)
123-
if (serialEvent5 && Serial5.available()) serialEvent5();
124-
#endif
125-
#if defined(HAVE_HWSERIAL6)
126-
if (serialEvent6 && Serial6.available()) serialEvent6();
127-
#endif
128-
#if defined(HAVE_HWSERIAL7)
129-
if (serialEvent7 && Serial7.available()) serialEvent7();
130-
#endif
131-
#if defined(HAVE_HWSERIAL8)
132-
if (serialEvent8 && Serial8.available()) serialEvent8();
133-
#endif
134-
#if defined(HAVE_HWSERIAL9)
135-
if (serialEvent9 && Serial9.available()) serialEvent9();
136-
#endif
137-
#if defined(HAVE_HWSERIAL10)
138-
if (serialEventl10 && Serial10.available()) serialEvent10();
139-
#endif
140-
#if defined(HAVE_HWSERIALLP1)
141-
if (serialEventLP1 && SerialLP1.available()) serialEventLP1();
142-
#endif
143-
}
144-
145108
// Constructors ////////////////////////////////////////////////////////////////
146109
HardwareSerial::HardwareSerial(uint32_t _rx, uint32_t _tx)
147110
{

cores/arduino/HardwareSerial.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <inttypes.h>
2828

2929
#include "Stream.h"
30+
#include "uart.h"
3031

3132
// Define constants and variables for buffering incoming serial data. We're
3233
// using a ring buffer (I think), in which head is the index of the location
@@ -148,6 +149,4 @@ extern HardwareSerial Serial9;
148149
extern HardwareSerial Serial10;
149150
extern HardwareSerial SerialLP1;
150151

151-
extern void serialEventRun(void) __attribute__((weak));
152-
153152
#endif

cores/arduino/WSerial.cpp

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include "WSerial.h"
2+
3+
void serialEventRun(void)
4+
{
5+
#if defined(HAVE_HWSERIAL1)
6+
if (serialEvent1 && Serial1.available()) serialEvent1();
7+
#endif
8+
#if defined(HAVE_HWSERIAL2)
9+
if (serialEvent2 && Serial2.available()) serialEvent2();
10+
#endif
11+
#if defined(HAVE_HWSERIAL3)
12+
if (serialEvent3 && Serial3.available()) serialEvent3();
13+
#endif
14+
#if defined(HAVE_HWSERIAL4)
15+
if (serialEvent4 && Serial4.available()) serialEvent4();
16+
#endif
17+
#if defined(HAVE_HWSERIAL5)
18+
if (serialEvent5 && Serial5.available()) serialEvent5();
19+
#endif
20+
#if defined(HAVE_HWSERIAL6)
21+
if (serialEvent6 && Serial6.available()) serialEvent6();
22+
#endif
23+
#if defined(HAVE_HWSERIAL7)
24+
if (serialEvent7 && Serial7.available()) serialEvent7();
25+
#endif
26+
#if defined(HAVE_HWSERIAL8)
27+
if (serialEvent8 && Serial8.available()) serialEvent8();
28+
#endif
29+
#if defined(HAVE_HWSERIAL9)
30+
if (serialEvent9 && Serial9.available()) serialEvent9();
31+
#endif
32+
#if defined(HAVE_HWSERIAL10)
33+
if (serialEventl10 && Serial10.available()) serialEvent10();
34+
#endif
35+
#if defined(HAVE_HWSERIALLP1)
36+
if (serialEventLP1 && SerialLP1.available()) serialEventLP1();
37+
#endif
38+
}
39+

cores/arduino/WSerial.h

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
#ifndef WIRING_SERIAL_H
2+
#define WIRING_SERIAL_H
3+
4+
#include "variant.h"
5+
#include "HardwareSerial.h"
6+
7+
#if defined(HAL_UART_MODULE_ENABLED)
8+
9+
#if !defined(HWSERIAL_NONE) && defined(SERIAL_UART_INSTANCE)
10+
#if SERIAL_UART_INSTANCE == 0
11+
#define ENABLE_HWSERIALLP1
12+
#if !defined(Serial)
13+
#define Serial SerialLP1
14+
#define serialEvent serialEventLP1
15+
#endif
16+
#elif SERIAL_UART_INSTANCE == 1
17+
#define ENABLE_HWSERIAL1
18+
#if !defined(Serial)
19+
#define Serial Serial1
20+
#define serialEvent serialEvent1
21+
#endif
22+
#elif SERIAL_UART_INSTANCE == 2
23+
#define ENABLE_HWSERIAL2
24+
#if !defined(Serial)
25+
#define Serial Serial2
26+
#define serialEvent serialEvent2
27+
#endif
28+
#elif SERIAL_UART_INSTANCE == 3
29+
#define ENABLE_HWSERIAL3
30+
#if !defined(Serial)
31+
#define Serial Serial3
32+
#define serialEvent serialEvent3
33+
#endif
34+
#elif SERIAL_UART_INSTANCE == 4
35+
#define ENABLE_HWSERIAL4
36+
#if !defined(Serial)
37+
#define Serial Serial4
38+
#define serialEvent serialEvent4
39+
#endif
40+
#elif SERIAL_UART_INSTANCE == 5
41+
#define ENABLE_HWSERIAL5
42+
#if !defined(Serial)
43+
#define Serial Serial5
44+
#define serialEvent serialEvent5
45+
#endif
46+
#elif SERIAL_UART_INSTANCE == 6
47+
#define ENABLE_HWSERIAL6
48+
#if !defined(Serial)
49+
#define Serial Serial6
50+
#define serialEvent serialEvent6
51+
#endif
52+
#elif SERIAL_UART_INSTANCE == 7
53+
#define ENABLE_HWSERIAL7
54+
#if !defined(Serial)
55+
#define Serial Serial7
56+
#define serialEvent serialEvent7
57+
#endif
58+
#elif SERIAL_UART_INSTANCE == 8
59+
#define ENABLE_HWSERIAL8
60+
#if !defined(Serial)
61+
#define Serial Serial8
62+
#define serialEvent serialEvent8
63+
#endif
64+
#elif SERIAL_UART_INSTANCE == 9
65+
#define ENABLE_HWSERIAL9
66+
#if !defined(Serial)
67+
#define Serial Serial9
68+
#define serialEvent serialEvent9
69+
#endif
70+
#elif SERIAL_UART_INSTANCE == 10
71+
#define ENABLE_HWSERIAL10
72+
#if !defined(Serial)
73+
#define Serial Serial10
74+
#define serialEvent serialEvent10
75+
#endif
76+
#else
77+
#if !defined(Serial)
78+
#warning "No generic 'Serial' defined!"
79+
#endif
80+
#endif /* SERIAL_UART_INSTANCE == x */
81+
#endif /* !HWSERIAL_NONE && SERIAL_UART_INSTANCE */
82+
83+
#if defined(ENABLE_HWSERIALLP1)
84+
#if defined(LPUART1_BASE)
85+
#define HAVE_HWSERIALLP1
86+
#endif
87+
#endif
88+
#if defined(ENABLE_HWSERIAL1)
89+
#if defined(USART1_BASE)
90+
#define HAVE_HWSERIAL1
91+
#endif
92+
#endif
93+
#if defined(ENABLE_HWSERIAL2)
94+
#if defined(USART2_BASE)
95+
#define HAVE_HWSERIAL2
96+
#endif
97+
#endif
98+
#if defined(ENABLE_HWSERIAL3)
99+
#if defined(USART3_BASE)
100+
#define HAVE_HWSERIAL3
101+
#endif
102+
#endif
103+
#if defined(ENABLE_HWSERIAL4)
104+
#if defined(USART4_BASE) || defined(UART4_BASE)
105+
#define HAVE_HWSERIAL4
106+
#endif
107+
#endif
108+
#if defined(ENABLE_HWSERIAL5)
109+
#if defined(USART5_BASE) || defined(UART5_BASE)
110+
#define HAVE_HWSERIAL5
111+
#endif
112+
#endif
113+
#if defined(ENABLE_HWSERIAL6)
114+
#if defined(USART6_BASE)
115+
#define HAVE_HWSERIAL6
116+
#endif
117+
#endif
118+
#if defined(ENABLE_HWSERIAL7)
119+
#if defined(USART7_BASE) || defined(UART7_BASE)
120+
#define HAVE_HWSERIAL7
121+
#endif
122+
#endif
123+
#if defined(ENABLE_HWSERIAL8)
124+
#if defined(USART8_BASE) || defined(UART8_BASE)
125+
#define HAVE_HWSERIAL8
126+
#endif
127+
#endif
128+
#if defined(ENABLE_HWSERIAL9)
129+
#if defined(UART9_BASE)
130+
#define HAVE_HWSERIAL9
131+
#endif
132+
#endif
133+
#if defined(ENABLE_HWSERIAL10)
134+
#if defined(UART10_BASE)
135+
#define HAVE_HWSERIAL10
136+
#endif
137+
#endif
138+
139+
extern void serialEvent1(void) __attribute__((weak));
140+
extern void serialEvent2(void) __attribute__((weak));
141+
extern void serialEvent3(void) __attribute__((weak));
142+
extern void serialEvent4(void) __attribute__((weak));
143+
extern void serialEvent5(void) __attribute__((weak));
144+
extern void serialEvent6(void) __attribute__((weak));
145+
extern void serialEvent7(void) __attribute__((weak));
146+
extern void serialEvent8(void) __attribute__((weak));
147+
extern void serialEvent9(void) __attribute__((weak));
148+
extern void serialEvent10(void) __attribute__((weak));
149+
extern void serialEventLP1(void) __attribute__((weak));
150+
151+
#endif /* HAL_UART_MODULE_ENABLED */
152+
extern void serialEventRun(void) __attribute__((weak));
153+
154+
#endif // WIRING_SERIAL_H

cores/arduino/stm32/uart.h

-130
Original file line numberDiff line numberDiff line change
@@ -48,136 +48,6 @@
4848
#if !defined(HAL_UART_MODULE_ENABLED)
4949
#define serial_t void*
5050
#else
51-
#if !defined(HWSERIAL_NONE) && defined(SERIAL_UART_INSTANCE)
52-
53-
#if SERIAL_UART_INSTANCE == 0
54-
#define ENABLE_HWSERIALLP1
55-
#if !defined(Serial)
56-
#define Serial SerialLP1
57-
#define serialEvent serialEventLP1
58-
#endif
59-
#elif SERIAL_UART_INSTANCE == 1
60-
#define ENABLE_HWSERIAL1
61-
#if !defined(Serial)
62-
#define Serial Serial1
63-
#define serialEvent serialEvent1
64-
#endif
65-
#elif SERIAL_UART_INSTANCE == 2
66-
#define ENABLE_HWSERIAL2
67-
#if !defined(Serial)
68-
#define Serial Serial2
69-
#define serialEvent serialEvent2
70-
#endif
71-
#elif SERIAL_UART_INSTANCE == 3
72-
#define ENABLE_HWSERIAL3
73-
#if !defined(Serial)
74-
#define Serial Serial3
75-
#define serialEvent serialEvent3
76-
#endif
77-
#elif SERIAL_UART_INSTANCE == 4
78-
#define ENABLE_HWSERIAL4
79-
#if !defined(Serial)
80-
#define Serial Serial4
81-
#define serialEvent serialEvent4
82-
#endif
83-
#elif SERIAL_UART_INSTANCE == 5
84-
#define ENABLE_HWSERIAL5
85-
#if !defined(Serial)
86-
#define Serial Serial5
87-
#define serialEvent serialEvent5
88-
#endif
89-
#elif SERIAL_UART_INSTANCE == 6
90-
#define ENABLE_HWSERIAL6
91-
#if !defined(Serial)
92-
#define Serial Serial6
93-
#define serialEvent serialEvent6
94-
#endif
95-
#elif SERIAL_UART_INSTANCE == 7
96-
#define ENABLE_HWSERIAL7
97-
#if !defined(Serial)
98-
#define Serial Serial7
99-
#define serialEvent serialEvent7
100-
#endif
101-
#elif SERIAL_UART_INSTANCE == 8
102-
#define ENABLE_HWSERIAL8
103-
#if !defined(Serial)
104-
#define Serial Serial8
105-
#define serialEvent serialEvent8
106-
#endif
107-
#elif SERIAL_UART_INSTANCE == 9
108-
#define ENABLE_HWSERIAL9
109-
#if !defined(Serial)
110-
#define Serial Serial9
111-
#define serialEvent serialEvent9
112-
#endif
113-
#elif SERIAL_UART_INSTANCE == 10
114-
#define ENABLE_HWSERIAL10
115-
#if !defined(Serial)
116-
#define Serial Serial10
117-
#define serialEvent serialEvent10
118-
#endif
119-
#else
120-
#if !defined(Serial)
121-
#warning "No generic 'Serial' defined!"
122-
#endif
123-
#endif /* SERIAL_UART_INSTANCE == x */
124-
#endif /* !HWSERIAL_NONE && SERIAL_UART_INSTANCE */
125-
126-
#if defined(ENABLE_HWSERIALLP1)
127-
#if defined(LPUART1_BASE)
128-
#define HAVE_HWSERIALLP1
129-
#endif
130-
#endif
131-
#if defined(ENABLE_HWSERIAL1)
132-
#if defined(USART1_BASE)
133-
#define HAVE_HWSERIAL1
134-
#endif
135-
#endif
136-
#if defined(ENABLE_HWSERIAL2)
137-
#if defined(USART2_BASE)
138-
#define HAVE_HWSERIAL2
139-
#endif
140-
#endif
141-
#if defined(ENABLE_HWSERIAL3)
142-
#if defined(USART3_BASE)
143-
#define HAVE_HWSERIAL3
144-
#endif
145-
#endif
146-
#if defined(ENABLE_HWSERIAL4)
147-
#if defined(USART4_BASE) || defined(UART4_BASE)
148-
#define HAVE_HWSERIAL4
149-
#endif
150-
#endif
151-
#if defined(ENABLE_HWSERIAL5)
152-
#if defined(USART5_BASE) || defined(UART5_BASE)
153-
#define HAVE_HWSERIAL5
154-
#endif
155-
#endif
156-
#if defined(ENABLE_HWSERIAL6)
157-
#if defined(USART6_BASE)
158-
#define HAVE_HWSERIAL6
159-
#endif
160-
#endif
161-
#if defined(ENABLE_HWSERIAL7)
162-
#if defined(USART7_BASE) || defined(UART7_BASE)
163-
#define HAVE_HWSERIAL7
164-
#endif
165-
#endif
166-
#if defined(ENABLE_HWSERIAL8)
167-
#if defined(USART8_BASE) || defined(UART8_BASE)
168-
#define HAVE_HWSERIAL8
169-
#endif
170-
#endif
171-
#if defined(ENABLE_HWSERIAL9)
172-
#if defined(UART9_BASE)
173-
#define HAVE_HWSERIAL9
174-
#endif
175-
#endif
176-
#if defined(ENABLE_HWSERIAL10)
177-
#if defined(UART10_BASE)
178-
#define HAVE_HWSERIAL10
179-
#endif
180-
#endif
18151

18252
/* Exported types ------------------------------------------------------------*/
18353
typedef struct serial_s serial_t;

0 commit comments

Comments
 (0)