From 6fff7b23b3d86b68c93851ebf85dabec2f52c716 Mon Sep 17 00:00:00 2001
From: Thibaut VIARD <thibaut.viard@atmel.com>
Date: Fri, 16 May 2014 18:53:59 +0200
Subject: [PATCH]  Updating board files for openocd flash programming

---
 boards.txt                                            |  6 +++++-
 platform.txt                                          |  8 +++++---
 .../arduino_zero/openocd_scripts/arduino_zero.cfg     | 11 +++++++++++
 3 files changed, 21 insertions(+), 4 deletions(-)
 create mode 100644 variants/arduino_zero/openocd_scripts/arduino_zero.cfg

diff --git a/boards.txt b/boards.txt
index d7600b87..2b79e2d3 100644
--- a/boards.txt
+++ b/boards.txt
@@ -15,6 +15,7 @@ arduino_zero_dbg.build.board=SAM_ZERO
 arduino_zero_dbg.build.core=arduino
 arduino_zero_dbg.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
 arduino_zero_dbg.build.ldscript=linker_scripts/gcc/flash.ld
+arduino_zero_dbg.build.openocdscript=openocd_scripts/arduino_zero.cfg
 arduino_zero_dbg.build.variant=arduino_zero
 arduino_zero_dbg.build.variant_system_lib=
 arduino_zero_dbg.build.vid=0x03eb
@@ -36,6 +37,7 @@ arduino_zero.build.board=SAM_ZERO
 arduino_zero.build.core=arduino
 arduino_zero.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
 arduino_zero.build.ldscript=linker_scripts/gcc/flash.ld
+arduino_zero.build.openocdscript=openocd_scripts/arduino_zero.cfg
 arduino_zero.build.variant=arduino_zero
 arduino_zero.build.variant_system_lib=
 arduino_zero.build.vid=0x2341
@@ -57,6 +59,7 @@ arduino_zero_bl_dbg.build.board=SAM_ZERO
 arduino_zero_bl_dbg.build.core=arduino
 arduino_zero_bl_dbg.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
 arduino_zero_bl_dbg.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
+arduino_zero_bl.build.openocdscript=openocd_scripts/arduino_zero.cfg
 arduino_zero_bl_dbg.build.variant=arduino_zero
 arduino_zero_bl_dbg.build.variant_system_lib=
 arduino_zero_bl_dbg.build.vid=0x03eb
@@ -78,7 +81,8 @@ arduino_zero_bl.build.board=SAM_ZERO
 arduino_zero_bl.build.core=arduino
 arduino_zero_bl.build.extra_flags=-D__SAMD21G18A__ -mthumb {build.usb_flags}
 arduino_zero_bl.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
-arduino_zero_bl.build.variant=arduino_zero_bl
+arduino_zero_bl.build.openocdscript=openocd_scripts/arduino_zero.cfg
+arduino_zero_bl.build.variant=arduino_zero
 arduino_zero_bl.build.variant_system_lib=
 arduino_zero_bl.build.vid=0x2341
 arduino_zero_bl.build.pid=0x004d
diff --git a/platform.txt b/platform.txt
index ec2a9e0a..d6e38a80 100644
--- a/platform.txt
+++ b/platform.txt
@@ -55,7 +55,6 @@ recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -m
 recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"
 
 ## Combine gc-sections, archives, and objects
-#recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -lm -lgcc -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group
 recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" --specs=nano.specs "-L{build.path}" -Wl,--start-group -lm -lgcc -Wl,--end-group -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group {object_files} "{build.path}/{archive_file}" -Wl,--end-group
 
 ## Create eeprom
@@ -73,10 +72,13 @@ recipe.size.regex=\.text\s+([0-9]+).*
 # -------------------
 
 tools.openocd.cmd=bin/openocd
-tools.openocd.cmd.windows=openocd.exe
+tools.openocd.cmd.windows=bin/openocd-0.8.0.exe
 tools.openocd.path={runtime.ide.path}/hardware/tools/openocd-0.8.0
 
 tools.openocd.upload.params.verbose=
 tools.openocd.upload.params.quiet=
-tools.openocd.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f board/atmel_samd21_xplained_pro.cfg -c "program {build.path}/{build.project_name}.elf verify reset"
+#tools.openocd.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f board/atmel_samd21_xplained_pro.cfg -c "program {build.path}/{build.project_name}.elf verify reset"
+tools.openocd.upload.pattern="{path}/{cmd}" {upload.verbose} -s "{path}/share/openocd/scripts/" -f {build.variant.path}/{build.variant}/{build.openocdscript} -c "program {build.path}/{build.project_name}.elf verify reset"
+#tools.openocd.upload.pattern.windows="{path}/{cmd}" {upload.verbose} -s "{path}/scripts/" -f board/atmel_samd21_xplained_pro.cfg -c "program {build.path}/{build.project_name}.elf verify reset"
+tools.openocd.upload.pattern.windows="{path}/{cmd}" -s "{path}/scripts/" -f "../../../arduino/samd/variants/{build.variant}/{build.openocdscript}" -c "program {build.path}/{build.project_name}.elf verify reset"
 
diff --git a/variants/arduino_zero/openocd_scripts/arduino_zero.cfg b/variants/arduino_zero/openocd_scripts/arduino_zero.cfg
new file mode 100644
index 00000000..d114849e
--- /dev/null
+++ b/variants/arduino_zero/openocd_scripts/arduino_zero.cfg
@@ -0,0 +1,11 @@
+#
+# Arduino Zero.
+#
+
+source [find interface/cmsis-dap.cfg]
+
+# chip name
+set CHIPNAME at91samd21g18
+set ENDIAN little
+
+source [find target/at91samdXX.cfg]
-- 
GitLab