aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Arduino.mk6
-rw-r--r--arduino-mk-vars.md18
2 files changed, 23 insertions, 1 deletions
diff --git a/Arduino.mk b/Arduino.mk
index d9ed05b..515f590 100644
--- a/Arduino.mk
+++ b/Arduino.mk
@@ -1542,7 +1542,11 @@ endif
# -D - Disable auto erase for flash memory
# Note: -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 ($(AVRDUDE_AUTOERASE_FLASH), yes)
+else
+ AVRDUDE_ARD_OPTS = -D
+endif
+AVRDUDE_ARD_OPTS += -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
diff --git a/arduino-mk-vars.md b/arduino-mk-vars.md
index 3ee05d0..85fbd9f 100644
--- a/arduino-mk-vars.md
+++ b/arduino-mk-vars.md
@@ -1308,6 +1308,24 @@ AVRDUDE_CONF = /usr/share/arduino/hardware/tools/avrdude.conf
----
+### AVRDUDE_AUTOERASE_FLASH
+
+**Description:**
+
+Enable autoerase flash.
+
+By default disabled.
+
+**Example:**
+
+```Makefile
+AVRDUDE_AUTOERASE_FLASH = yes
+```
+
+**Requirement:** *Optional*
+
+----
+
### AVR_TOOLS_PATH
**Description:**