From 973fa0268ee32c69890f0f38bc0fa2028cfbb59d Mon Sep 17 00:00:00 2001 From: rogerclarkmelbourne Date: Tue, 19 May 2015 21:44:10 +1000 Subject: [PATCH] Added Black Magic Probe upload support for C series boards, Note Windows BAT file has not been tested yet --- STM32F1/boards.txt | 17 +++++++++++------ STM32F1/platform.txt | 17 ++++++++++++++--- tools/win/bmp_upload.bat | 11 +++++++++++ 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 tools/win/bmp_upload.bat diff --git a/STM32F1/boards.txt b/STM32F1/boards.txt index f3473ee..43e4519 100644 --- a/STM32F1/boards.txt +++ b/STM32F1/boards.txt @@ -187,18 +187,18 @@ genericSTM32F103C.upload.auto_reset=true genericSTM32F103C.menu.device_variant.STM32F103CB=STM32F103CB (20k RAM. 128k Flash) genericSTM32F103C.menu.device_variant.STM32F103CB.build.cpu_flags=-DMCU_STM32F103CB genericSTM32F103C.menu.device_variant.STM32F103CB.build.ldscript=ld/jtag.ld -genericSTM32F103C.menu.device_variant.STM32F103CB.upload.maximum_size=128000 -genericSTM32F103C.menu.device_variant.STM32F103CB.upload.ram.maximum_size=20000 -genericSTM32F103C.menu.device_variant.STM32F103CB.upload.flash.maximum_size=128000 +genericSTM32F103C.menu.device_variant.STM32F103CB.upload.maximum_size=131072 +genericSTM32F103C.menu.device_variant.STM32F103CB.upload.ram.maximum_size=20480 +genericSTM32F103C.menu.device_variant.STM32F103CB.upload.flash.maximum_size=131072 ## STM32F103C8 ------------------------- genericSTM32F103C.menu.device_variant.STM32F103C8=STM32F103C8 (20k RAM. 64k Flash) genericSTM32F103C.menu.device_variant.STM32F103C8.build.cpu_flags=-DMCU_STM32F103C8 genericSTM32F103C.menu.device_variant.STM32F103C8.build.ldscript=ld/jtag_c8.ld -genericSTM32F103C.menu.device_variant.STM32F103C8.upload.maximum_size=64000 -genericSTM32F103C.menu.device_variant.STM32F103C8.upload.ram.maximum_size=20000 -genericSTM32F103C.menu.device_variant.STM32F103C8.upload.flash.maximum_size=64000 +genericSTM32F103C.menu.device_variant.STM32F103C8.upload.maximum_size=65536 +genericSTM32F103C.menu.device_variant.STM32F103C8.upload.ram.maximum_size=20480 +genericSTM32F103C.menu.device_variant.STM32F103C8.upload.flash.maximum_size=65536 #---------------------------- UPLOAD METHODS --------------------------- genericSTM32F103C.menu.upload_method.serialMethod=Serial @@ -212,6 +212,11 @@ genericSTM32F103C.menu.upload_method.STLinkMethod.upload.tool=stlink_upload genericSTM32F103C.menu.upload_method.STLinkMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 +genericSTM32F103C.menu.upload_method.BMPMethod=BMP (Black Magic Probe) +genericSTM32F103C.menu.upload_method.BMPMethod.upload.protocol=gdb_bmp +genericSTM32F103C.menu.upload_method.BMPMethod.upload.tool=bmp_upload +genericSTM32F103C.menu.upload_method.BMPMethod.build.upload_flags=-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG + ########################### Generic STM32F103R ########################### genericSTM32F103R.name= Generic STM32F103R series diff --git a/STM32F1/platform.txt b/STM32F1/platform.txt index ae5e1c4..db9acc5 100644 --- a/STM32F1/platform.txt +++ b/STM32F1/platform.txt @@ -3,8 +3,8 @@ # For more info: # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification -name=STM32 Boards -version=0.1.0 +name=STM32 Boards (stm32duino) +version=0.1.1 # compiler variables # ---------------------- @@ -132,7 +132,7 @@ tools.serial_upload.path.macosx={runtime.hardware.path}/tools/macosx tools.serial_upload.path.linux={runtime.hardware.path}/tools/linux tools.serial_upload.upload.params.verbose=-d -tools.serial_upload.upload.params.quiet= +tools.serial_upload.upload.params.quiet=n tools.serial_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin" @@ -157,3 +157,14 @@ tools.stlink_upload.upload.params.verbose=-d tools.stlink_upload.upload.params.quiet= tools.stlink_upload.upload.pattern="{path}/{cmd}" {serial.port.file} {upload.altID} {upload.usbID} "{build.path}/{build.project_name}.bin" +# blackmagic probe upload +tools.bmp_upload.cmd=arm-none-eabi-gdb +tools.bmp_upload.cmd.windows=bmp_upload.bat +tools.bmp_upload.path={runtime.tools.arm-none-eabi-gcc.path}/bin/ +tools.bmp_upload.path.windows={runtime.hardware.path}/tools/win + +tools.bmp_upload.upload.speed=230400 +tools.bmp_upload.upload.params.verbose= +tools.bmp_upload.upload.params.quiet=-q --batch-silent +tools.bmp_upload.upload.pattern="{path}{cmd}" -b {upload.speed} {upload.verbose} -ex "set debug remote 0" -ex "set target-async off" -ex "set remotetimeout 60" -ex "set confirm off" -ex "set height 0" -ex "target extended-remote {serial.port}" -ex "monitor swdp_scan" -ex "attach 1" -ex "x/wx 0x8000004" -ex "monitor erase_mass" -ex "echo 0x8000004 expect 0xffffffff after erase\n" -ex "x/wx 0x8000004" -ex "file {build.path}/{build.project_name}.elf" -ex "load" -ex "x/i *0x8000004" -ex "kill" -ex "tbreak main" -ex "run" -ex "detach" -ex "echo \n\n\n{build.project_name}.elf uploaded!\n" -ex "quit" +tools.bmp_upload.upload.pattern.windows="{path}/{cmd}" {runtime.tools.arm-none-eabi-gcc.path}/bin/ {upload.speed} {upload.verbose} "target extended-remote {serial.port}" "{build.path}/{build.project_name}.elf" diff --git a/tools/win/bmp_upload.bat b/tools/win/bmp_upload.bat new file mode 100644 index 0000000..47cb445 --- /dev/null +++ b/tools/win/bmp_upload.bat @@ -0,0 +1,11 @@ +rem: @echo off +rem: Note %~dp0 get path of this batch file +rem: Need to change drive if My Documents is on a drive other than C: +set driverLetter=%~dp0 +set driverLetter=%driverLetter:~0,2% +%driverLetter% +cd %~dp0 +rem: the two line below are needed to fix path issues with incorrect slashes before the bin file name +set str=%4 +set str=%str:/=\% +%1arm-none-eabi-gdb.exe -b %2 -ex "set debug remote 0" -ex "set target-async off" -ex "set remotetimeout 60" -ex "set confirm off" -ex "set height 0" -ex %3 -ex "monitor swdp_scan" -ex "attach 1" -ex "x/wx 0x8000004" -ex "monitor erase_mass" -ex "echo 0x8000004 expect 0xffffffff after erase\n" -ex "x/wx 0x8000004" -ex "file %str%" -ex "load" -ex "x/i *0x8000004" -ex "kill" -ex "tbreak main" -ex "run" -ex "detach" -ex "echo \n\n\n%6 uploaded!\n" -ex "quit"