Skip to content

Commit 517e7fb

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents a52c360 + 7d7f113 commit 517e7fb

113 files changed

Lines changed: 6863 additions & 8191 deletions

File tree

Some content is hidden

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

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@
1010
[submodule "tools/src/dfu-util"]
1111
path = tools/src/dfu-util
1212
url = https://gitorious.org/dfu-util/dfu-util.git
13+
[submodule "STM32duino-bootloader"]
14+
path = STM32duino-bootloader
15+
url = https://github.com/rogerclarkmelbourne/STM32duino-bootloader.git

LICENSE

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
This project is built of many different components.
2+
3+
Substantial portions were derived from leaflabs libmaple - see https://github.com/leaflabs/libmaple/blob/master/LICENSE
4+
5+
Other sub projects e.g. Texane STlink have their own licenses

README.md

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,46 @@
1-
Arduino STM32
2-
=============
1+
Arduino STM32
2+
=============
33

4-
This repo contains, the "Hardware" files to support STM32 based boards on Arduino version 1.5.x to the latest version (currently 1.6.3) including LeafLabs Maple, and Maple mini, and other generic STM32F103 boards
4+
##Notice
55

6-
Please read the wiki https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki for full details
6+
This software is experimental and a work in progress.
7+
Under no circumstances should these files be used in relation to any critical system(s).
8+
Use of these files is at your own risk.
79

8-
Based on https://github.com/bobc/maple-asp, which is in turn based on LibMaple by Leaflabs
910

10-
See also my blog
11+
##Summary:
12+
This repo contains, the "Hardware" files to support STM32 based boards on Arduino version 1.5.x to the latest version (currently 1.6.3) including [LeafLabs Maple, and Maple mini](http://www.leaflabs.com/about-maple/), and other generic STM32F103 boards
13+
14+
***PRIMARY SUPPORT FORUM: http://www.stm32duino.com/***
15+
16+
##Background & Support:
17+
* Based on https://github.com/bobc/maple-asp, which is in turn based on LibMaple by Leaflabs
18+
* **Please read the wiki (https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki) for full details**
19+
* See also my blog: http://www.rogerclark.net/stm32f103-and-maple-maple-mini-with-arduino-1-5-x-ide/
20+
* **NEW: Main support site for using STM32 boards with the Arduino IDE: http://www.stm32duino.com/**
21+
* LeafLabs "Maple Language Reference:" http://leaflabs.com/docs/language.html
22+
* LeafLabs "Maple-Arduino Compatibility:" http://leaflabs.com/docs/arduino-compatibility.html
23+
24+
**YouTube Videos:**
25+
* 20141116: [Arduino 1.5.8 IDE with STM32 board](https://www.youtube.com/watch?v=-zwGnytGT8M)
26+
* 20150413: [STM32 for Arduino 1.6.2 or newer (update)](https://www.youtube.com/watch?v=TePglhSkghg)
27+
* 20150419: [Uploading via USB to Serial to STM32F103 boards](https://www.youtube.com/watch?v=G_RF0a0hrak)
28+
29+
##Additional Links & Info:
30+
* https://www.hackster.io/rayburne/4-dollar-90-mips-32-bit-72-mhz-arm-arduino
31+
32+
##Purchase info:
33+
###Entry level boards
34+
35+
* [Ebay search for "arduino maple"](http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&LH_BIN=1&_nkw=arduino+maple&_sop=15) (currently costs <$5 with shipping)
36+
* [AliExpress search for "leaflabs maple"] (http://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20150607085526&SearchText=leaflabs+maple)
37+
38+
### Bigger boards (You need to load the stm32duino bootloader)
39+
40+
Some supplier have this board e.g.
41+
42+
*[ STM32F103VET ](http://www.ebay.com.au/itm/1PCS-STM32F103VET6-ARM-STM32-Minimum-System-Development-Board-Arduino-M77-/301433302819)
43+
44+
*[There is also a STM32F103ZET board which also works, however they are not always available. They have been listed as "STM32F103ZET6 Minimum System Development Board ARM STM32 Cortex-m3 M75"]
45+
(http://www.ebay.com.au/itm/1pcs-STM32F103ZET6-Minimum-System-Development-Board-ARM-STM32-Cortex-m3-M75-/291305557264)
1146

12-
More information is available at http://www.rogerclark.net/stm32f103-and-maple-maple-mini-with-arduino-1-5-x-ide/

STM32F1/boards.txt

Lines changed: 71 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,35 @@ menu.bootloader_version=Bootloader version
66
menu.upload_method=Upload method
77

88
##############################################################
9-
maple_mini.name=LeafLabs Maple Mini Rev 2 to Flash
10-
11-
maple_mini.build.board=MAPLE_MINI
12-
maple_mini.build.core=maple
13-
maple_mini.build.cpu_flags=-DMCU_STM32F103CB -DSERIAL_USB
14-
maple_mini.build.variant=maple_mini
15-
maple_mini.upload.usbID=1EAF:0003
16-
17-
maple_mini.upload.tool=maple_upload
18-
maple_mini.upload.protocol=maple_dfu
19-
maple_mini.upload.use_1200bps_touch=false
20-
maple_mini.upload.file_type=bin
21-
maple_mini.upload.auto_reset=true
22-
23-
maple_mini.menu.bootloader_version.original = Original (17k RAM,108k Flash)
24-
maple_mini.menu.bootloader_version.original.build.vect=VECT_TAB_ADDR=0x8005000
25-
maple_mini.menu.bootloader_version.original.build.ldscript=ld/flash.ld
26-
maple_mini.menu.bootloader_version.original.upload.ram.maximum_size=17408
27-
maple_mini.menu.bootloader_version.original.upload.flash.maximum_size=110592
28-
maple_mini.menu.bootloader_version.original.upload.maximum_size=110592
29-
maple_mini.menu.bootloader_version.original.upload.altID=1
30-
31-
maple_mini.menu.bootloader_version.bootloader20 = Bootloader 2.0 (20k RAM,120k Flash)
32-
maple_mini.menu.bootloader_version.bootloader20.build.vect=VECT_TAB_ADDR=0x8002000
33-
maple_mini.menu.bootloader_version.bootloader20.build.ldscript=ld/bootloader_20.ld
34-
maple_mini.menu.bootloader_version.bootloader20.upload.ram.maximum_size=20480
35-
maple_mini.menu.bootloader_version.bootloader20.upload.flash.maximum_size=122880
36-
maple_mini.menu.bootloader_version.bootloader20.upload.maximum_size=122880
37-
maple_mini.menu.bootloader_version.bootloader20.upload.altID=2
9+
mapleMini.name=LeafLabs Maple Mini Rev 2 to Flash
10+
11+
mapleMini.build.board=MAPLE_MINI
12+
mapleMini.build.core=maple
13+
mapleMini.build.cpu_flags=-DMCU_STM32F103CB -DSERIAL_USB
14+
mapleMini.build.variant=maple_mini
15+
mapleMini.upload.usbID=1EAF:0003
16+
17+
mapleMini.upload.tool=maple_upload
18+
mapleMini.upload.protocol=maple_dfu
19+
mapleMini.upload.use_1200bps_touch=false
20+
mapleMini.upload.file_type=bin
21+
mapleMini.upload.auto_reset=true
22+
23+
mapleMini.menu.bootloader_version.original = Original (17k RAM,108k Flash)
24+
mapleMini.menu.bootloader_version.original.build.vect=VECT_TAB_ADDR=0x8005000
25+
mapleMini.menu.bootloader_version.original.build.ldscript=ld/flash.ld
26+
mapleMini.menu.bootloader_version.original.upload.ram.maximum_size=17408
27+
mapleMini.menu.bootloader_version.original.upload.flash.maximum_size=110592
28+
mapleMini.menu.bootloader_version.original.upload.maximum_size=110592
29+
mapleMini.menu.bootloader_version.original.upload.altID=1
30+
31+
mapleMini.menu.bootloader_version.bootloader20 = Bootloader 2.0 (20k RAM,120k Flash)
32+
mapleMini.menu.bootloader_version.bootloader20.build.vect=VECT_TAB_ADDR=0x8002000
33+
mapleMini.menu.bootloader_version.bootloader20.build.ldscript=ld/bootloader_20.ld
34+
mapleMini.menu.bootloader_version.bootloader20.upload.ram.maximum_size=20480
35+
mapleMini.menu.bootloader_version.bootloader20.upload.flash.maximum_size=122880
36+
mapleMini.menu.bootloader_version.bootloader20.upload.maximum_size=122880
37+
mapleMini.menu.bootloader_version.bootloader20.upload.altID=2
3838

3939
##############################################################
4040
maple.name=LeafLabs Maple Rev 3+ to Flash
@@ -146,7 +146,7 @@ nucleo_f103rb.build.vect=VECT_TAB_ADDR=0x8000000
146146

147147
###################### Generic STM32F103C ########################################
148148

149-
genericSTM32F103C.name= Generic STM32F103C series
149+
genericSTM32F103C.name=Generic STM32F103C series
150150
genericSTM32F103C.build.variant=generic_stm32f103c
151151
genericSTM32F103C.build.vect=VECT_TAB_ADDR=0x8000000
152152
genericSTM32F103C.build.core=maple
@@ -173,6 +173,16 @@ genericSTM32F103C.menu.device_variant.STM32F103C8.upload.ram.maximum_size=20480
173173
genericSTM32F103C.menu.device_variant.STM32F103C8.upload.flash.maximum_size=65536
174174

175175
#---------------------------- UPLOAD METHODS ---------------------------
176+
177+
genericSTM32F103C.menu.upload_method.DFUUploadMethod=STM32duino bootloader
178+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
179+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
180+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
181+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
182+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld
183+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
184+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.altID=2
185+
176186
genericSTM32F103C.menu.upload_method.serialMethod=Serial
177187
genericSTM32F103C.menu.upload_method.serialMethod.upload.protocol=maple_serial
178188
genericSTM32F103C.menu.upload_method.serialMethod.upload.tool=serial_upload
@@ -189,20 +199,10 @@ genericSTM32F103C.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
189199
genericSTM32F103C.menu.upload_method.BMPMethod.upload.tool=bmp_upload
190200
genericSTM32F103C.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
191201

192-
genericSTM32F103C.menu.upload_method.DFUUploadMethod=Maple DFU
193-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
194-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
195-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
196-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
197-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld
198-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
199-
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.altID=2
200-
201-
202202

203203
########################### Generic STM32F103R ###########################
204204

205-
genericSTM32F103R.name= Generic STM32F103R series
205+
genericSTM32F103R.name=Generic STM32F103R series
206206
genericSTM32F103R.build.variant=generic_stm32f103r
207207
genericSTM32F103R.build.vect=VECT_TAB_ADDR=0x8000000
208208
genericSTM32F103R.build.core=maple
@@ -235,6 +235,16 @@ genericSTM32F103R.menu.device_variant.STM32F103RE.build.ldscript=ld/stm32f103re.
235235

236236

237237
#---------------------------- UPLOAD METHODS ---------------------------
238+
239+
genericSTM32F103R.menu.upload_method.DFUUploadMethod=STM32duino bootloader
240+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
241+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
242+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
243+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
244+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103re-bootloader.ld
245+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
246+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.altID=2
247+
238248
genericSTM32F103R.menu.upload_method.serialMethod=Serial
239249
genericSTM32F103R.menu.upload_method.serialMethod.upload.protocol=maple_serial
240250
genericSTM32F103R.menu.upload_method.serialMethod.upload.tool=serial_upload
@@ -250,19 +260,9 @@ genericSTM32F103R.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
250260
genericSTM32F103R.menu.upload_method.BMPMethod.upload.tool=bmp_upload
251261
genericSTM32F103R.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
252262

253-
genericSTM32F103R.menu.upload_method.DFUUploadMethod=Maple DFU
254-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
255-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
256-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
257-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
258-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103re-bootloader.ld
259-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
260-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.altID=2
261-
262263

263264
########################### Generic STM32F103V ###########################
264265

265-
266266
genericSTM32F103V.name=Generic STM32F103V series
267267
genericSTM32F103V.build.variant=generic_stm32f103v
268268
genericSTM32F103V.build.vect=VECT_TAB_ADDR=0x8000000
@@ -300,11 +300,20 @@ genericSTM32F103V.menu.device_variant.STM32F103VE.upload.flash.maximum_size=5242
300300
genericSTM32F103V.menu.device_variant.STM32F103VE.build.ldscript=ld/stm32f103ve.ld
301301

302302
#---------------------------- UPLOAD METHODS ---------------------------
303+
304+
genericSTM32F103V.menu.upload_method.DFUUploadMethod=STM32duino bootloader
305+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
306+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
307+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
308+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
309+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103veDFU.ld
310+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
311+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.altID=2
312+
303313
genericSTM32F103V.menu.upload_method.serialMethod=Serial
304314
genericSTM32F103V.menu.upload_method.serialMethod.upload.protocol=maple_serial
305315
genericSTM32F103V.menu.upload_method.serialMethod.upload.tool=serial_upload
306316

307-
308317
genericSTM32F103V.menu.upload_method.STLinkMethod=STLink
309318
genericSTM32F103V.menu.upload_method.STLinkMethod.upload.protocol=STLink
310319
genericSTM32F103V.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
@@ -315,20 +324,9 @@ genericSTM32F103V.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
315324
genericSTM32F103V.menu.upload_method.BMPMethod.upload.tool=bmp_upload
316325
genericSTM32F103V.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
317326

318-
genericSTM32F103V.menu.upload_method.DFUUploadMethod=Maple DFU
319-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
320-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
321-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
322-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
323-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103veDFU.ld
324-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
325-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.altID=2
326-
327-
328327

329328
########################### Generic STM32F103Z ###########################
330329

331-
332330
genericSTM32F103Z.name=Generic STM32F103Z series
333331
genericSTM32F103Z.build.variant=generic_stm32f103z
334332
genericSTM32F103Z.build.vect=VECT_TAB_ADDR=0x8000000
@@ -360,6 +358,16 @@ genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.flash.maximum_size=5242
360358
genericSTM32F103Z.menu.device_variant.STM32F103ZE.build.ldscript=ld/stm32f103ze.ld
361359

362360
#---------------------------- UPLOAD METHODS ---------------------------
361+
362+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod=STM32duino bootloader
363+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
364+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
365+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
366+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
367+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103z_dfu.ld
368+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
369+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.altID=2
370+
363371
genericSTM32F103Z.menu.upload_method.serialMethod=Serial
364372
genericSTM32F103Z.menu.upload_method.serialMethod.upload.protocol=maple_serial
365373
genericSTM32F103Z.menu.upload_method.serialMethod.upload.tool=serial_upload
@@ -373,12 +381,3 @@ genericSTM32F103Z.menu.upload_method.BMPMethod=BMP (Black Magic Probe)
373381
genericSTM32F103Z.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
374382
genericSTM32F103Z.menu.upload_method.BMPMethod.upload.tool=bmp_upload
375383
genericSTM32F103Z.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
376-
377-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod=Maple DFU
378-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
379-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
380-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
381-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
382-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103z_dfu.ld
383-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
384-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.altID=2

STM32F1/cores/maple/HardwareSerial.cpp

Lines changed: 51 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -37,54 +37,58 @@
3737
#include <libmaple/timer.h>
3838
#include <libmaple/usart.h>
3939

40-
#define DEFINE_HWSERIAL(name, n) \
41-
HardwareSerial name(USART##n, \
42-
BOARD_USART##n##_TX_PIN, \
43-
BOARD_USART##n##_RX_PIN)
44-
45-
#define DEFINE_HWSERIAL_UART(name, n) \
46-
HardwareSerial name(UART##n, \
47-
BOARD_USART##n##_TX_PIN, \
48-
BOARD_USART##n##_RX_PIN)
49-
50-
#ifdef SERIAL_USB
51-
#if BOARD_HAVE_USART1
52-
DEFINE_HWSERIAL(Serial1, 1);
53-
#endif
54-
#if BOARD_HAVE_USART2
55-
DEFINE_HWSERIAL(Serial2, 2);
56-
#endif
57-
#if BOARD_HAVE_USART3
58-
DEFINE_HWSERIAL(Serial3, 3);
59-
#endif
60-
#if BOARD_HAVE_UART4
61-
DEFINE_HWSERIAL_UART(Serial4, 4);
62-
#endif
63-
#if BOARD_HAVE_UART5
64-
DEFINE_HWSERIAL_UART(Serial5, 5);
65-
#endif
66-
#if BOARD_HAVE_USART6
67-
DEFINE_HWSERIAL_UART(Serial6, 6);
68-
#endif
69-
#else
70-
#if BOARD_HAVE_USART1
71-
DEFINE_HWSERIAL(Serial, 1);
72-
#endif
73-
#if BOARD_HAVE_USART2
74-
DEFINE_HWSERIAL(Serial1, 2);
75-
#endif
76-
#if BOARD_HAVE_USART3
77-
DEFINE_HWSERIAL(Serial2, 3);
78-
#endif
79-
#if BOARD_HAVE_UART4
80-
DEFINE_HWSERIAL_UART(Serial3, 4);
81-
#endif
82-
#if BOARD_HAVE_UART5
83-
DEFINE_HWSERIAL_UART(Serial4, 5);
84-
#endif
85-
#if BOARD_HAVE_USART6
86-
DEFINE_HWSERIAL_UART(Serial5, 6);
40+
#if 0
41+
42+
#define DEFINE_HWSERIAL(name, n) \
43+
HardwareSerial name(USART##n, \
44+
BOARD_USART##n##_TX_PIN, \
45+
BOARD_USART##n##_RX_PIN)
46+
47+
#define DEFINE_HWSERIAL_UART(name, n) \
48+
HardwareSerial name(UART##n, \
49+
BOARD_USART##n##_TX_PIN, \
50+
BOARD_USART##n##_RX_PIN)
51+
52+
#ifdef SERIAL_USB
53+
#if BOARD_HAVE_USART1
54+
DEFINE_HWSERIAL(Serial1, 1);
55+
#endif
56+
#if BOARD_HAVE_USART2
57+
DEFINE_HWSERIAL(Serial2, 2);
58+
#endif
59+
#if BOARD_HAVE_USART3
60+
DEFINE_HWSERIAL(Serial3, 3);
61+
#endif
62+
#if BOARD_HAVE_UART4
63+
DEFINE_HWSERIAL_UART(Serial4, 4);
64+
#endif
65+
#if BOARD_HAVE_UART5
66+
DEFINE_HWSERIAL_UART(Serial5, 5);
67+
#endif
68+
#if BOARD_HAVE_USART6
69+
DEFINE_HWSERIAL_UART(Serial6, 6);
70+
#endif
71+
#else
72+
#if BOARD_HAVE_USART1
73+
DEFINE_HWSERIAL(Serial, 1);
74+
#endif
75+
#if BOARD_HAVE_USART2
76+
DEFINE_HWSERIAL(Serial1, 2);
77+
#endif
78+
#if BOARD_HAVE_USART3
79+
DEFINE_HWSERIAL(Serial2, 3);
80+
#endif
81+
#if BOARD_HAVE_UART4
82+
DEFINE_HWSERIAL_UART(Serial3, 4);
83+
#endif
84+
#if BOARD_HAVE_UART5
85+
DEFINE_HWSERIAL_UART(Serial4, 5);
86+
#endif
87+
#if BOARD_HAVE_USART6
88+
DEFINE_HWSERIAL_UART(Serial5, 6);
89+
#endif
8790
#endif
91+
8892
#endif
8993
HardwareSerial::HardwareSerial(usart_dev *usart_device,
9094
uint8 tx_pin,

0 commit comments

Comments
 (0)