aboutsummaryrefslogtreecommitdiff
path: root/Arduino.mk
diff options
context:
space:
mode:
authorThomas Hebb <tommyhebb@gmail.com>2014-11-07 17:59:30 -0500
committerThomas Hebb <tommyhebb@gmail.com>2014-11-07 22:47:08 -0500
commit05b57c3cc3160e3c66dea7b88e707e9327b96bf4 (patch)
treec9aed8fdde4cd0be6fd88074c4ead096d23ea163 /Arduino.mk
parentfe5c2b6ce13b9b63548d7e39a75ebfb92fbd854c (diff)
Allow avrdude to erase the chip before programming during ispload
We currently pass the -D (do not erase) option to avrdude unconditionally in order to work around an Arduino Mega bootloader bug. However, this has the side-effect of breaking the ispload target for all non-XMEGA chips, since a write operation on these chips essentially ANDs the new program with the existing memory contents. If the memory is not first erased to contain only 0xff, the resulting image is garbage. This patch makes it so we pass -D when we're using the Arduino bootloader but don't pass it when we're using ISP directly.
Diffstat (limited to 'Arduino.mk')
-rw-r--r--Arduino.mk8
1 files changed, 4 insertions, 4 deletions
diff --git a/Arduino.mk b/Arduino.mk
index 0c29498..12737b3 100644
--- a/Arduino.mk
+++ b/Arduino.mk
@@ -1209,10 +1209,8 @@ endif
# Default avrdude options
# -V Do not verify
# -q - suppress progress output
-# -D - Disable auto erase for flash memory
-# (-D is needed for Mega boards. See https://github.com/sudar/Arduino-Makefile/issues/114#issuecomment-25011005)
ifndef AVRDUDE_OPTS
- AVRDUDE_OPTS = -q -V -D
+ AVRDUDE_OPTS = -q -V
endif
AVRDUDE_COM_OPTS = $(AVRDUDE_OPTS) -p $(MCU)
@@ -1220,7 +1218,9 @@ ifdef AVRDUDE_CONF
AVRDUDE_COM_OPTS += -C $(AVRDUDE_CONF)
endif
-AVRDUDE_ARD_OPTS = -c $(AVRDUDE_ARD_PROGRAMMER) -b $(AVRDUDE_ARD_BAUDRATE) -P
+# -D - Disable auto erase for flash memory
+# (-D is needed for Mega boards. See https://github.com/sudar/Arduino-Makefile/issues/114#issuecomment-25011005)
+AVRDUDE_ARD_OPTS = -D -c $(AVRDUDE_ARD_PROGRAMMER) -b $(AVRDUDE_ARD_BAUDRATE) -P
ifeq ($(CURRENT_OS), WINDOWS)
# get_monitor_port checks to see if the monitor port exists, assuming it is
# a file. In Windows, avrdude needs the port in the format 'com1' which is