diff --git a/boards.txt b/boards.txt index b5af18a0c9f..3bf574ca45a 100644 --- a/boards.txt +++ b/boards.txt @@ -17,6 +17,7 @@ menu.LoRaWanDebugLevel=LoRaWan Debug Level menu.LoopCore=Arduino Runs On menu.EventsCore=Events Run On menu.MemoryType=Memory Type +menu.EraseFlash=Erase All Flash Before Sketch Upload ############################################################## ### DO NOT PUT BOARDS ABOVE THE OFFICIAL ESPRESSIF BOARDS! ### @@ -224,6 +225,11 @@ esp32s3.menu.DebugLevel.debug.build.code_debug=4 esp32s3.menu.DebugLevel.verbose=Verbose esp32s3.menu.DebugLevel.verbose.build.code_debug=5 +esp32s3.menu.EraseFlash.none=Disabled +esp32s3.menu.EraseFlash.none.upload.erase_cmd= +esp32s3.menu.EraseFlash.all=Enabled +esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e + ############################################################## esp32c3.name=ESP32C3 Dev Module @@ -374,6 +380,11 @@ esp32c3.menu.DebugLevel.debug.build.code_debug=4 esp32c3.menu.DebugLevel.verbose=Verbose esp32c3.menu.DebugLevel.verbose.build.code_debug=5 +esp32c3.menu.EraseFlash.none=Disabled +esp32c3.menu.EraseFlash.none.upload.erase_cmd= +esp32c3.menu.EraseFlash.all=Enabled +esp32c3.menu.EraseFlash.all.upload.erase_cmd=-e + ############################################################## esp32s2.name=ESP32S2 Dev Module @@ -550,6 +561,11 @@ esp32s2.menu.DebugLevel.debug.build.code_debug=4 esp32s2.menu.DebugLevel.verbose=Verbose esp32s2.menu.DebugLevel.verbose.build.code_debug=5 +esp32s2.menu.EraseFlash.none=Disabled +esp32s2.menu.EraseFlash.none.upload.erase_cmd= +esp32s2.menu.EraseFlash.all=Enabled +esp32s2.menu.EraseFlash.all.upload.erase_cmd=-e + ############################################################## esp32.name=ESP32 Dev Module @@ -715,6 +731,11 @@ esp32.menu.DebugLevel.debug.build.code_debug=4 esp32.menu.DebugLevel.verbose=Verbose esp32.menu.DebugLevel.verbose.build.code_debug=5 +esp32.menu.EraseFlash.none=Disabled +esp32.menu.EraseFlash.none.upload.erase_cmd= +esp32.menu.EraseFlash.all=Enabled +esp32.menu.EraseFlash.all.upload.erase_cmd=-e + ############################################################## esp32da.name=ESP32-WROOM-DA Module diff --git a/docs/source/guides/tools_menu.rst b/docs/source/guides/tools_menu.rst index 432511c191e..96b3bcc3674 100644 --- a/docs/source/guides/tools_menu.rst +++ b/docs/source/guides/tools_menu.rst @@ -196,6 +196,14 @@ Events Run On This function is also used to select the core that runs the Arduino events. This is only valid if the target SoC has 2 cores. +Erase All Flash Before Sketch Upload +************************************ + +This option selects the flash memory region to be erased before uploading the new sketch. + +* **Disabled** - Upload the sketch without erasing all flash contents. (Default) +* **Enabled** - Erase all flash contents before uploading the sketch. + Port **** diff --git a/platform.txt b/platform.txt index 3537f5af7fe..93e0497bbaf 100644 --- a/platform.txt +++ b/platform.txt @@ -211,7 +211,7 @@ pluggable_monitor.required.serial=builtin:serial-monitor tools.esptool_py.upload.protocol=serial tools.esptool_py.upload.params.verbose= tools.esptool_py.upload.params.quiet= -tools.esptool_py.upload.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash -z --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size {build.flash_size} {build.bootloader_addr} "{build.path}/{build.project_name}.bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x10000 "{build.path}/{build.project_name}.bin" {upload.extra_flags} +tools.esptool_py.upload.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash {upload.erase_cmd} -z --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size {build.flash_size} {build.bootloader_addr} "{build.path}/{build.project_name}.bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x10000 "{build.path}/{build.project_name}.bin" {upload.extra_flags} tools.esptool_py.upload.pattern="{path}/{cmd}" {upload.pattern_args} tools.esptool_py.upload.pattern.linux=python3 "{path}/{cmd}" {upload.pattern_args}