Skip to content

Commit 7e59f08

Browse files
committed
Merge pull request #2 from rogerclarkmelbourne/master
sync to Roger's
2 parents ee4efb2 + 72324b5 commit 7e59f08

8 files changed

Lines changed: 146 additions & 78 deletions

File tree

STM32F1/boards.txt

Lines changed: 74 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,17 @@ genericSTM32F103C.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp
217217
genericSTM32F103C.menu.upload_method.BMPMethod.upload.tool=bmp_upload
218218
genericSTM32F103C.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG
219219

220+
genericSTM32F103C.menu.upload_method.DFUUploadMethod=Maple DFU
221+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
222+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
223+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB
224+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
225+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.build.ldscript=ld/bootloader_20.ld
226+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
227+
genericSTM32F103C.menu.upload_method.DFUUploadMethod.upload.altID=2
228+
229+
230+
220231
########################### Generic STM32F103R ###########################
221232

222233
genericSTM32F103R.name= Generic STM32F103R series
@@ -247,51 +258,14 @@ genericSTM32F103R.menu.upload_method.STLinkMethod.upload.protocol=STLink
247258
genericSTM32F103R.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
248259
genericSTM32F103R.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
249260

250-
251-
########################### Generic STM32F103Z ###########################
252-
253-
254-
genericSTM32F103Z.name=Generic STM32F103Z series
255-
genericSTM32F103Z.build.variant=generic_stm32f103z
256-
genericSTM32F103Z.build.vect=VECT_TAB_ADDR=0x8000000
257-
genericSTM32F103Z.build.core=maple
258-
genericSTM32F103Z.build.board=GENERIC_STM32F103Z
259-
genericSTM32F103Z.upload.use_1200bps_touch=false
260-
genericSTM32F103Z.upload.file_type=bin
261-
genericSTM32F103Z.upload.auto_reset=true
262-
263-
genericSTM32F103Z.menu.device_variant.STM32F103ZC=STM32F103ZC
264-
genericSTM32F103Z.menu.device_variant.STM32F103ZC.build.cpu_flags=-DMCU_STM32F103ZC
265-
genericSTM32F103Z.menu.device_variant.STM32F103ZC.upload.maximum_size=262144
266-
genericSTM32F103Z.menu.device_variant.STM32F103ZC.upload.ram.maximum_size=492152
267-
genericSTM32F103Z.menu.device_variant.STM32F103ZC.upload.flash.maximum_size=262144
268-
genericSTM32F103Z.menu.device_variant.STM32F103ZC.build.ldscript=ld/stm32f103zc.ld
269-
270-
genericSTM32F103Z.menu.device_variant.STM32F103ZD=STM32F103ZD
271-
genericSTM32F103Z.menu.device_variant.STM32F103ZD.build.cpu_flags=-DMCU_STM32F103ZD
272-
genericSTM32F103Z.menu.device_variant.STM32F103ZD.upload.maximum_size=393216
273-
genericSTM32F103Z.menu.device_variant.STM32F103ZD.upload.ram.maximum_size=65536
274-
genericSTM32F103Z.menu.device_variant.STM32F103ZD.upload.flash.maximum_size=393216
275-
genericSTM32F103Z.menu.device_variant.STM32F103ZD.build.ldscript=ld/stm32f103zd.ld
276-
277-
genericSTM32F103Z.menu.device_variant.STM32F103ZE=STM32F103ZE
278-
genericSTM32F103Z.menu.device_variant.STM32F103ZE.build.cpu_flags=-DMCU_STM32F103ZE
279-
genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.maximum_size=524288
280-
genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.ram.maximum_size=65536
281-
genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.flash.maximum_size=524288
282-
genericSTM32F103Z.menu.device_variant.STM32F103ZE.build.ldscript=ld/stm32f103ze.ld
283-
284-
#---------------------------- UPLOAD METHODS ---------------------------
285-
genericSTM32F103Z.menu.upload_method.serialMethod=Serial
286-
genericSTM32F103Z.menu.upload_method.serialMethod.upload.protocol=maple_serial
287-
genericSTM32F103Z.menu.upload_method.serialMethod.upload.tool=serial_upload
288-
289-
genericSTM32F103Z.menu.upload_method.STLinkMethod=STLink
290-
genericSTM32F103Z.menu.upload_method.STLinkMethod.upload.protocol=STLink
291-
genericSTM32F103Z.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
292-
genericSTM32F103Z.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB
293-
294-
261+
genericSTM32F103R.menu.upload_method.DFUUploadMethod=Maple DFU
262+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
263+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
264+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB
265+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
266+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103re-bootloader.ld
267+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
268+
genericSTM32F103R.menu.upload_method.DFUUploadMethod.upload.altID=2
295269

296270

297271
########################### Generic STM32F103V ###########################
@@ -352,3 +326,58 @@ genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x
352326
genericSTM32F103V.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103veDFU.ld
353327
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
354328
genericSTM32F103V.menu.upload_method.DFUUploadMethod.upload.altID=2
329+
330+
331+
332+
########################### Generic STM32F103Z ###########################
333+
334+
335+
genericSTM32F103Z.name=Generic STM32F103Z series
336+
genericSTM32F103Z.build.variant=generic_stm32f103z
337+
genericSTM32F103Z.build.vect=VECT_TAB_ADDR=0x8000000
338+
genericSTM32F103Z.build.core=maple
339+
genericSTM32F103Z.build.board=GENERIC_STM32F103Z
340+
genericSTM32F103Z.upload.use_1200bps_touch=false
341+
genericSTM32F103Z.upload.file_type=bin
342+
genericSTM32F103Z.upload.auto_reset=true
343+
344+
genericSTM32F103Z.menu.device_variant.STM32F103ZC=STM32F103ZC
345+
genericSTM32F103Z.menu.device_variant.STM32F103ZC.build.cpu_flags=-DMCU_STM32F103ZC
346+
genericSTM32F103Z.menu.device_variant.STM32F103ZC.upload.maximum_size=262144
347+
genericSTM32F103Z.menu.device_variant.STM32F103ZC.upload.ram.maximum_size=492152
348+
genericSTM32F103Z.menu.device_variant.STM32F103ZC.upload.flash.maximum_size=262144
349+
genericSTM32F103Z.menu.device_variant.STM32F103ZC.build.ldscript=ld/stm32f103zc.ld
350+
351+
genericSTM32F103Z.menu.device_variant.STM32F103ZD=STM32F103ZD
352+
genericSTM32F103Z.menu.device_variant.STM32F103ZD.build.cpu_flags=-DMCU_STM32F103ZD
353+
genericSTM32F103Z.menu.device_variant.STM32F103ZD.upload.maximum_size=393216
354+
genericSTM32F103Z.menu.device_variant.STM32F103ZD.upload.ram.maximum_size=65536
355+
genericSTM32F103Z.menu.device_variant.STM32F103ZD.upload.flash.maximum_size=393216
356+
genericSTM32F103Z.menu.device_variant.STM32F103ZD.build.ldscript=ld/stm32f103zd.ld
357+
358+
genericSTM32F103Z.menu.device_variant.STM32F103ZE=STM32F103ZE
359+
genericSTM32F103Z.menu.device_variant.STM32F103ZE.build.cpu_flags=-DMCU_STM32F103ZE
360+
genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.maximum_size=524288
361+
genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.ram.maximum_size=65536
362+
genericSTM32F103Z.menu.device_variant.STM32F103ZE.upload.flash.maximum_size=524288
363+
genericSTM32F103Z.menu.device_variant.STM32F103ZE.build.ldscript=ld/stm32f103ze.ld
364+
365+
#---------------------------- UPLOAD METHODS ---------------------------
366+
genericSTM32F103Z.menu.upload_method.serialMethod=Serial
367+
genericSTM32F103Z.menu.upload_method.serialMethod.upload.protocol=maple_serial
368+
genericSTM32F103Z.menu.upload_method.serialMethod.upload.tool=serial_upload
369+
370+
genericSTM32F103Z.menu.upload_method.STLinkMethod=STLink
371+
genericSTM32F103Z.menu.upload_method.STLinkMethod.upload.protocol=STLink
372+
genericSTM32F103Z.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
373+
genericSTM32F103Z.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB
374+
375+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod=Maple DFU
376+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.protocol=maple_dfu
377+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.tool=maple_upload
378+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.upload_flags=-DSERIAL_USB
379+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.vect=VECT_TAB_ADDR=0x8002000
380+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.build.ldscript=ld/stm32f103z_dfu.ld
381+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.usbID=1EAF:0003
382+
genericSTM32F103Z.menu.upload_method.DFUUploadMethod.upload.altID=2
383+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* libmaple linker script for "Flash" builds.
3+
*
4+
* A Flash build puts .text (and .rodata) in Flash, and
5+
* .data/.bss/heap (of course) in SRAM, but offsets the sections by
6+
* enough space to store the Maple bootloader, which lives in low
7+
* Flash and uses low memory.
8+
*/
9+
10+
/*
11+
* This pulls in the appropriate MEMORY declaration from the right
12+
* subdirectory of stm32/mem/ (the environment must call ld with the
13+
* right include directory flags to make this happen). Boards can also
14+
* use this file to use any of libmaple's memory-related hooks (like
15+
* where the heap should live).
16+
*/
17+
MEMORY
18+
{
19+
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
20+
rom (rx) : ORIGIN = 0x08002000, LENGTH = 120K
21+
}
22+
23+
/* Provide memory region aliases for common.inc */
24+
REGION_ALIAS("REGION_TEXT", rom);
25+
REGION_ALIAS("REGION_DATA", ram);
26+
REGION_ALIAS("REGION_BSS", ram);
27+
REGION_ALIAS("REGION_RODATA", rom);
28+
29+
/* Let common.inc handle the real work. */
30+
INCLUDE common.inc

STM32F1/variants/generic_stm32f103c/wirish/boards_setup.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,14 @@ namespace wirish {
7575

7676
__weak void board_setup_usb(void) {
7777
#ifdef SERIAL_USB
78-
//Attempt to reset the USB interface - developed by Victor PV
78+
//Reset the USB interface on generic boards - developed by Victor PV
7979

8080
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_OUTPUT_PP);
8181
gpio_write_bit(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit,0);
82-
8382

84-
for(volatile unsigned int i=0;i<5000000;i++)
85-
{
86-
asm("nop");
87-
}
83+
for(volatile unsigned int i=0;i<256;i++);// Only small delay seems to be needed, and USB pins will get configured in Serial.begin
8884
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_INPUT_FLOATING);
85+
8986
Serial.begin();// Roger Clark. Changed SerialUSB to Serial for Arduino sketch compatibility
9087
#endif
9188
}

STM32F1/variants/generic_stm32f103r/ld/stm32f103re-bootloader.ld

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
*/
2222
MEMORY
2323
{
24-
ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 61K
25-
rom (rx) : ORIGIN = 0x08005000, LENGTH = 492K
24+
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 61K
25+
rom (rx) : ORIGIN = 0x08002000, LENGTH = 504K
2626
}
2727

2828

STM32F1/variants/generic_stm32f103r/wirish/boards_setup.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,13 @@ namespace wirish {
7575

7676
__weak void board_setup_usb(void) {
7777
#ifdef SERIAL_USB
78-
//Attempt to reset the USB interface - developed by Victor PV
7978

79+
//Reset the USB interface on generic boards - developed by Victor PV
8080
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_OUTPUT_PP);
8181
gpio_write_bit(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit,0);
82-
83-
84-
for(volatile unsigned int i=0;i<5000000;i++)
85-
{
86-
asm("nop");
87-
}
82+
for(volatile unsigned int i=0;i<256;i++);// Only small delay seems to be needed, and USB pins will get configured in Serial.begin
8883
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_INPUT_FLOATING);
84+
8985
Serial.begin();// Roger Clark. Changed SerialUSB to Serial for Arduino sketch compatibility
9086
#endif
9187
}

STM32F1/variants/generic_stm32f103v/wirish/boards_setup.cpp

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,11 @@ namespace wirish {
7777
#ifdef SERIAL_USB
7878

7979

80-
//Attempt to reset the USB interface - developed by Victor PV
81-
80+
//Reset the USB interface on generic boards - developed by Victor PV
8281
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_OUTPUT_PP);
8382
gpio_write_bit(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit,0);
84-
85-
86-
for(volatile unsigned int i=0;i<5000000;i++)
87-
{
88-
asm("nop");
89-
}
83+
for(volatile unsigned int i=0;i<256;i++);// Only small delay seems to be needed, and USB pins will get configured in Serial.begin
9084
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_INPUT_FLOATING);
91-
92-
9385

9486
Serial.begin();// Roger Clark. Changed SerialUSB to Serial for Arduino sketch compatibility
9587
#endif
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* libmaple linker script
3+
*
4+
* This build puts .text (and .rodata) in Flash, and
5+
* .data/.bss/heap (of course) in SRAM, but links starting at the
6+
* Flash and SRAM starting addresses (0x08000000 and 0x20000000
7+
* respectively). This will wipe out a Maple bootloader if there's one
8+
* on the board, so only use this if you know what you're doing.
9+
*
10+
* This build is perfectly usable for upload over SWD,
11+
* the system memory bootloader, etc. The name is just a historical
12+
* artifact.
13+
*/
14+
15+
16+
MEMORY
17+
{
18+
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
19+
rom (rx) : ORIGIN = 0x08002000, LENGTH = 504K
20+
}
21+
22+
/* Provide memory region aliases for common.inc */
23+
REGION_ALIAS("REGION_TEXT", rom);
24+
REGION_ALIAS("REGION_DATA", ram);
25+
REGION_ALIAS("REGION_BSS", ram);
26+
REGION_ALIAS("REGION_RODATA", rom);
27+
28+
/* Let common.inc handle the real work. */
29+
INCLUDE common.inc

STM32F1/variants/generic_stm32f103z/wirish/boards_setup.cpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,12 @@ namespace wirish {
7878

7979

8080
#ifdef SERIAL_USB
81-
//Attempt to reset the USB interface - developed by Victor PV
82-
81+
//Reset the USB interface on generic boards - developed by Victor PV
8382
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_OUTPUT_PP);
8483
gpio_write_bit(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit,0);
85-
86-
87-
for(volatile unsigned int i=0;i<5000000;i++)
88-
{
89-
asm("nop");
90-
}
84+
for(volatile unsigned int i=0;i<256;i++);// Only small delay seems to be needed, and USB pins will get configured in Serial.begin
9185
gpio_set_mode(PIN_MAP[PA12].gpio_device, PIN_MAP[PA12].gpio_bit, GPIO_INPUT_FLOATING);
86+
9287
Serial.begin();// Roger Clark. Changed SerialUSB to Serial for Arduino sketch compatibility
9388
#endif
9489
}

0 commit comments

Comments
 (0)