Skip to content

Commit ff0244a

Browse files
committed
Merge remote-tracking branch 'refs/remotes/rogerclarkmelbourne/master' into generic_f4
2 parents 7985f25 + e3753df commit ff0244a

187 files changed

Lines changed: 3812 additions & 12287 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.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Use of these files is at your own risk.
99

1010

1111
##Summary:
12-
This repo contains, the "Hardware" files to support STM32 based boards on Arduino version 1.6.4 and 1.6.5, and 1.6.9 including [LeafLabs Maple, and Maple mini](http://www.leaflabs.com/about-maple/), and other generic STM32F103 boards
12+
This repo contains, the "Hardware" files to support STM32 based boards on Arduino version 1.6.13 or 1.6.12 (some older versions may also work) including [LeafLabs Maple, and Maple mini](http://www.leaflabs.com/about-maple/), and other generic STM32F103 boards
1313

1414
***PRIMARY SUPPORT FORUM: http://www.stm32duino.com/***
1515

STM32F1/boards.txt

Lines changed: 111 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ mapleMini.menu.bootloader_version.bootloader20.upload.flash.maximum_size=122880
3838
mapleMini.menu.bootloader_version.bootloader20.upload.maximum_size=122880
3939
mapleMini.menu.bootloader_version.bootloader20.upload.altID=2
4040

41+
#-- CPU Clock frequency
42+
mapleMini.menu.cpu_speed.speed_72mhz=72Mhz (Normal)
43+
mapleMini.menu.cpu_speed.speed_72mhz.build.f_cpu=72000000L
44+
45+
mapleMini.menu.cpu_speed.speed_48mhz=48Mhz (Slow - with USB)
46+
mapleMini.menu.cpu_speed.speed_48mhz.build.f_cpu=48000000L
47+
48+
4149
##############################################################
4250
maple.name=Maple (Rev 3)
4351

@@ -199,7 +207,7 @@ genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.altID=2
199207
genericSTM32F103C.menu.upload_method.serialMethod=Serial
200208
genericSTM32F103C.menu.upload_method.serialMethod.upload.protocol=maple_serial
201209
genericSTM32F103C.menu.upload_method.serialMethod.upload.tool=serial_upload
202-
210+
genericSTM32F103C.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
203211

204212
genericSTM32F103C.menu.upload_method.STLinkMethod=STLink
205213
genericSTM32F103C.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -217,6 +225,13 @@ genericSTM32F103C.menu.upload_method.jlinkMethod.upload.protocol=jlink
217225
genericSTM32F103C.menu.upload_method.jlinkMethod.upload.tool=jlink_upload
218226
genericSTM32F103C.menu.upload_method.jlinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER
219227

228+
#-- CPU Clock frequency
229+
genericSTM32F103C.menu.cpu_speed.speed_72mhz=72Mhz (Normal)
230+
genericSTM32F103C.menu.cpu_speed.speed_72mhz.build.f_cpu=72000000L
231+
232+
genericSTM32F103C.menu.cpu_speed.speed_48mhz=48Mhz (Slow - with USB)
233+
genericSTM32F103C.menu.cpu_speed.speed_48mhz.build.f_cpu=48000000L
234+
220235
########################### Generic STM32F103R ###########################
221236

222237
genericSTM32F103R.name=Generic STM32F103R series
@@ -267,7 +282,7 @@ genericSTM32F103R.menu.device_variant.STM32F103RE.build.ldscript=ld/stm32f103re.
267282
genericSTM32F103R.menu.upload_method.DFUUploadMethod=STM32duino bootloader
268283
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
269284
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
270-
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
285+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
271286
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
272287
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader.ld
273288
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
@@ -276,6 +291,7 @@ genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.altID=2
276291
genericSTM32F103R.menu.upload_method.serialMethod=Serial
277292
genericSTM32F103R.menu.upload_method.serialMethod.upload.protocol=maple_serial
278293
genericSTM32F103R.menu.upload_method.serialMethod.upload.tool=serial_upload
294+
genericSTM32F103R.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
279295

280296
genericSTM32F103R.menu.upload_method.STLinkMethod=STLink
281297
genericSTM32F103R.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -321,7 +337,7 @@ genericSTM32F103T.menu.device_variant.STM32F103TB.upload.flash.maximum_size=1310
321337
genericSTM32F103T.menu.upload_method.DFUUploadMethod=STM32duino bootloader
322338
genericSTM32F103T.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
323339
genericSTM32F103T.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
324-
genericSTM32F103T.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
340+
genericSTM32F103T.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
325341
genericSTM32F103T.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
326342
genericSTM32F103T.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld
327343
genericSTM32F103T.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
@@ -330,6 +346,7 @@ genericSTM32F103T.menu.upload_method.DFUUploadMethod.upload.altID=2
330346
genericSTM32F103T.menu.upload_method.serialMethod=Serial
331347
genericSTM32F103T.menu.upload_method.serialMethod.upload.protocol=maple_serial
332348
genericSTM32F103T.menu.upload_method.serialMethod.upload.tool=serial_upload
349+
genericSTM32F103T.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
333350

334351
genericSTM32F103T.menu.upload_method.STLinkMethod=STLink
335352
genericSTM32F103T.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -383,7 +400,7 @@ genericSTM32F103V.menu.device_variant.STM32F103VE.build.ldscript=ld/stm32f103ve.
383400
genericSTM32F103V.menu.upload_method.DFUUploadMethod=STM32duino bootloader
384401
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
385402
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
386-
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
403+
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
387404
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
388405
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103veDFU.ld
389406
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
@@ -392,6 +409,7 @@ genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.altID=2
392409
genericSTM32F103V.menu.upload_method.serialMethod=Serial
393410
genericSTM32F103V.menu.upload_method.serialMethod.upload.protocol=maple_serial
394411
genericSTM32F103V.menu.upload_method.serialMethod.upload.tool=serial_upload
412+
genericSTM32F103V.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
395413

396414
genericSTM32F103V.menu.upload_method.STLinkMethod=STLink
397415
genericSTM32F103V.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -442,7 +460,7 @@ genericSTM32F103Z.menu.device_variant.STM32F103ZE.build.ldscript=ld/stm32f103ze.
442460
genericSTM32F103Z.menu.upload_method.DFUUploadMethod=STM32duino bootloader
443461
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
444462
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
445-
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
463+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
446464
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
447465
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103z_dfu.ld
448466
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
@@ -451,6 +469,7 @@ genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.altID=2
451469
genericSTM32F103Z.menu.upload_method.serialMethod=Serial
452470
genericSTM32F103Z.menu.upload_method.serialMethod.upload.protocol=maple_serial
453471
genericSTM32F103Z.menu.upload_method.serialMethod.upload.tool=serial_upload
472+
genericSTM32F103Z.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
454473

455474
genericSTM32F103Z.menu.upload_method.STLinkMethod=STLink
456475
genericSTM32F103Z.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -462,6 +481,60 @@ genericSTM32F103Z.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
462481
genericSTM32F103Z.menu.upload_method.BMPMethod.upload.tool=bmp_upload
463482
genericSTM32F103Z.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
464483

484+
###################### HYTiny STM32F103T ########################################
485+
486+
hytiny-stm32f103t.name=HYTiny STM32F103TB
487+
hytiny-stm32f103t.vid.0=0x1EAF
488+
hytiny-stm32f103t.pid.0=0x0004
489+
hytiny-stm32f103t.build.variant=hytiny_stm32f103t
490+
hytiny-stm32f103t.build.vect=VECT_TAB_ADDR=0x8000000
491+
hytiny-stm32f103t.build.core=maple
492+
hytiny-stm32f103t.build.board=HYTINY_STM32F103T
493+
hytiny-stm32f103t.upload.use_1200bps_touch=false
494+
hytiny-stm32f103t.upload.file_type=bin
495+
hytiny-stm32f103t.upload.auto_reset=true
496+
497+
498+
hytiny-stm32f103t.build.cpu_flags=-DMCU_STM32F103CB
499+
hytiny-stm32f103t.build.ldscript=ld/jtag.ld
500+
hytiny-stm32f103t.upload.maximum_size=131072
501+
hytiny-stm32f103t.upload.ram.maximum_size=20480
502+
hytiny-stm32f103t.upload.flash.maximum_size=131072
503+
504+
505+
#---------------------------- UPLOAD METHODS ---------------------------
506+
507+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod=STM32duino bootloader
508+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
509+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
510+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB
511+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
512+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld
513+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
514+
hytiny-stm32f103t.menu.upload_method.DFUUploadMethod.upload.altID=2
515+
516+
hytiny-stm32f103t.menu.upload_method.serialMethod=Serial
517+
hytiny-stm32f103t.menu.upload_method.serialMethod.upload.protocol=maple_serial
518+
hytiny-stm32f103t.menu.upload_method.serialMethod.upload.tool=serial_upload
519+
hytiny-stm32f103t.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
520+
521+
hytiny-stm32f103t.menu.upload_method.STLinkMethod=STLink
522+
hytiny-stm32f103t.menu.upload_method.STLinkMethod.upload.protocol=STLink
523+
hytiny-stm32f103t.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
524+
hytiny-stm32f103t.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER
525+
526+
hytiny-stm32f103t.menu.upload_method.BMPMethod=BMP (Black Magic Probe)
527+
hytiny-stm32f103t.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
528+
hytiny-stm32f103t.menu.upload_method.BMPMethod.upload.tool=bmp_upload
529+
hytiny-stm32f103t.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
530+
531+
532+
hytiny-stm32f103t.menu.upload_method.jlinkMethod=JLink
533+
hytiny-stm32f103t.menu.upload_method.jlinkMethod.upload.protocol=jlink
534+
hytiny-stm32f103t.menu.upload_method.jlinkMethod.upload.tool=jlink_upload
535+
hytiny-stm32f103t.menu.upload_method.jlinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER
536+
537+
465538
###################### Generic GD32F103C ########################################
466539

467540
genericGD32F103C.name=Generic GD32F103C series
@@ -496,7 +569,7 @@ genericGD32F103C.menu.upload_method.DFUUploadMethod=GD32duino bootloader
496569

497570
genericGD32F103C.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
498571
genericGD32F103C.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
499-
genericGD32F103C.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
572+
genericGD32F103C.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB -DGENERIC_BOOTLOADER
500573
genericGD32F103C.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
501574
genericGD32F103C.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld
502575
genericGD32F103C.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
@@ -505,7 +578,7 @@ genericGD32F103C.menu.upload_method.DFUUploadMethod.upload.altID=2
505578
genericGD32F103C.menu.upload_method.serialMethod=Serial
506579
genericGD32F103C.menu.upload_method.serialMethod.upload.protocol=maple_serial
507580
genericGD32F103C.menu.upload_method.serialMethod.upload.tool=serial_upload
508-
581+
genericGD32F103C.menu.upload_method.serialMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
509582

510583
genericGD32F103C.menu.upload_method.STLinkMethod=STLink
511584
genericGD32F103C.menu.upload_method.STLinkMethod.upload.protocol=STLink
@@ -526,3 +599,34 @@ genericGD32F103C.menu.cpu_speed.speed_96mhz.build.f_cpu=96000000L
526599

527600
genericGD32F103C.menu.cpu_speed.speed_72mhz=72Mhz (compatibility)
528601
genericGD32F103C.menu.cpu_speed.speed_72mhz.build.f_cpu=72000000L
602+
603+
########################### STM32VLD to FLASH ###########################
604+
605+
STM32VLD.name=STM32VLD to FLASH
606+
#STM32VLD.vid.0=0x1EAF
607+
#STM32VLD.pid.0=0x0004
608+
609+
STM32VLD.build.vect=VECT_TAB_ADDR=0x8000000
610+
STM32VLD.build.core=maple
611+
STM32VLD.build.board=STM32VLD
612+
STM32VLD.build.variant=STM32VLD
613+
STM32VLD.build.ldscript=ld/jtag.ld
614+
615+
STM32VLD.build.family=cortex-m3
616+
STM32VLD.build.f_cpu=24000000L
617+
STM32VLD.upload.use_1200bps_touch=false
618+
STM32VLD.upload.file_type=bin
619+
STM32VLD.upload.auto_reset=true
620+
STM32VLD.upload.params.quiet=no
621+
622+
STM32VLD.build.cpu_flags=-DMCU_STM32F100RB
623+
##---------------------------- UPLOAD METHODS ---------------------------
624+
625+
626+
STM32VLD.menu.upload_method.STLinkMethod=STLink
627+
STM32VLD.menu.upload_method.STLinkMethod.upload.protocol=STLink
628+
STM32VLD.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
629+
STM32VLD.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
630+
631+
632+
################################################################################

STM32F1/cores/maple/IPAddress.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,48 @@ IPAddress::IPAddress(const uint8_t *address)
4444
memcpy(_address.bytes, address, sizeof(_address.bytes));
4545
}
4646

47+
bool IPAddress::fromString(const char *address)
48+
{
49+
// TODO: add support for "a", "a.b", "a.b.c" formats
50+
51+
uint16_t acc = 0; // Accumulator
52+
uint8_t dots = 0;
53+
54+
while (*address)
55+
{
56+
char c = *address++;
57+
if (c >= '0' && c <= '9')
58+
{
59+
acc = acc * 10 + (c - '0');
60+
if (acc > 255) {
61+
// Value out of [0..255] range
62+
return false;
63+
}
64+
}
65+
else if (c == '.')
66+
{
67+
if (dots == 3) {
68+
// Too much dots (there must be 3 dots)
69+
return false;
70+
}
71+
_address.bytes[dots++] = acc;
72+
acc = 0;
73+
}
74+
else
75+
{
76+
// Invalid char
77+
return false;
78+
}
79+
}
80+
81+
if (dots != 3) {
82+
// Too few dots (there must be 3 dots)
83+
return false;
84+
}
85+
_address.bytes[3] = acc;
86+
return true;
87+
}
88+
4789
IPAddress& IPAddress::operator=(const uint8_t *address)
4890
{
4991
memcpy(_address.bytes, address, sizeof(_address.bytes));

STM32F1/cores/maple/IPAddress.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ class IPAddress : public Printable {
4646
IPAddress(uint32_t address);
4747
IPAddress(const uint8_t *address);
4848

49+
bool fromString(const char *address);
50+
bool fromString(const String &address) { return fromString(address.c_str()); }
51+
4952
// Overloaded cast operator to allow IPAddress objects to be used where a pointer
5053
// to a four-byte uint8_t array is expected
5154
operator uint32_t() const { return _address.dword; };

STM32F1/cores/maple/Print.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,16 @@ size_t Print::print(double n, int digits) {
124124
return printFloat(n, digits);
125125
}
126126

127+
size_t Print::print(const __FlashStringHelper *ifsh)
128+
{
129+
return print(reinterpret_cast<const char *>(ifsh));
130+
}
131+
132+
size_t Print::print(const Printable& x)
133+
{
134+
return x.printTo(*this);
135+
}
136+
127137
size_t Print::println(void)
128138
{
129139
size_t n = print('\r');
@@ -198,6 +208,20 @@ size_t Print::println(double n, int digits) {
198208
return s;
199209
}
200210

211+
size_t Print::println(const __FlashStringHelper *ifsh)
212+
{
213+
size_t n = print(ifsh);
214+
n += println();
215+
return n;
216+
}
217+
218+
size_t Print::println(const Printable& x)
219+
{
220+
size_t n = print(x);
221+
n += println();
222+
return n;
223+
}
224+
201225
#ifdef SUPPORTS_PRINTF
202226
#include <stdio.h>
203227
#include <stdarg.h>

STM32F1/cores/maple/Print.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
#include <libmaple/libmaple_types.h>
2727
#include "WString.h"
28+
#include "Printable.h"
2829

2930
enum {
3031
BYTE = 0,
@@ -51,6 +52,8 @@ class Print {
5152
size_t print(long long, int=DEC);
5253
size_t print(unsigned long long, int=DEC);
5354
size_t print(double, int=2);
55+
size_t print(const __FlashStringHelper *);
56+
size_t print(const Printable&);
5457
size_t println(void);
5558
size_t println(const String &s);
5659
size_t println(char);
@@ -63,6 +66,8 @@ class Print {
6366
size_t println(long long, int=DEC);
6467
size_t println(unsigned long long, int=DEC);
6568
size_t println(double, int=2);
69+
size_t println(const __FlashStringHelper *);
70+
size_t println(const Printable&);
6671
#ifdef SUPPORTS_PRINTF
6772
// Roger Clark. Work in progress to add printf support
6873
int printf(const char * format, ...);

0 commit comments

Comments
 (0)