@@ -160,18 +160,6 @@ def __fetch_fs_size(target, source, env):
160160 return (target , source )
161161
162162
163- def merge_binaries (source , target , env , for_signature ):
164- return " " .join ([
165- '"$PYTHONEXE"' ,
166- join (platform .get_package_dir ("tool-esptoolpy" ) or "" , "esptool.py" ),
167- "--chip" , mcu , "merge_bin" ,
168- "-o" , "$TARGET" ,
169- "--flash_mode" , "$BOARD_FLASH_MODE" ,
170- "--flash_size" , board .get ("upload.flash_size" , "4MB" ),
171- "$ESP32_APP_OFFSET" , "$SOURCES"
172- ] + ['"%s"' % itm for img in env .get ("FLASH_EXTRA_IMAGES" , []) for itm in img ])
173-
174-
175163env = DefaultEnvironment ()
176164platform = env .PioPlatform ()
177165board = env .BoardConfig ()
@@ -181,21 +169,6 @@ def merge_binaries(source, target, env, for_signature):
181169if mcu == "esp32c3" :
182170 toolchain_arch = "riscv32-esp"
183171
184- # Arduino core v2.0.4 contains updated bootloader images that have innacurate default
185- # headers. This results in bootloops if firmware is flashed via OpenOCD (e.g. debugging
186- # or uploading via debug tools). For this reason, before uploading or debugging we need
187- # to merge binaries via esptoolpy so that the image headers will be adjusted according to
188- # --flash-size and --flash-mode arguments.
189- # Note: This behavior doesn't occur if uploading is done via esptoolpy, as esptoolpy
190- # overrides the binary image headers before flashing.
191- firmware_merge_required = bool (
192- env .get ("PIOFRAMEWORK" , []) == ["arduino" ]
193- and (
194- "debug" in env .GetBuildType ()
195- or env .subst ("$UPLOAD_PROTOCOL" ) in board .get ("debug.tools" , {})
196- )
197- )
198-
199172if "INTEGRATION_EXTRA_DATA" not in env :
200173 env ["INTEGRATION_EXTRA_DATA" ] = {}
201174
@@ -291,10 +264,6 @@ def merge_binaries(source, target, env, for_signature):
291264 source_factory = env .Dir ,
292265 suffix = ".bin" ,
293266 ),
294- MergeBin = Builder (
295- generator = merge_binaries ,
296- suffix = ".bin" ,
297- ),
298267 )
299268)
300269
@@ -306,7 +275,6 @@ def merge_binaries(source, target, env, for_signature):
306275#
307276
308277target_elf = None
309- target_firm_merged = None
310278if "nobuild" in COMMAND_LINE_TARGETS :
311279 target_elf = join ("$BUILD_DIR" , "${PROGNAME}.elf" )
312280 if set (["uploadfs" , "uploadfsota" ]) & set (COMMAND_LINE_TARGETS ):
@@ -325,14 +293,6 @@ def merge_binaries(source, target, env, for_signature):
325293 else :
326294 target_firm = env .ElfToBin (
327295 join ("$BUILD_DIR" , "${PROGNAME}" ), target_elf )
328- if firmware_merge_required :
329- # Note: Default offset address must be set to 0x0 because debugging
330- # relies on OpenOCD that requires merged firmware
331- env ["INTEGRATION_EXTRA_DATA" ].update (
332- {"application_offset" : "0x0" , "merged_firmware" : True }
333- )
334- target_firm_merged = env .MergeBin (join (
335- "$BUILD_DIR" , "${PROGNAME}_merged" ), target_firm )
336296 env .Depends (target_firm , "checkprogsize" )
337297
338298env .AddPlatformTarget ("buildfs" , target_firm , target_firm , "Build Filesystem Image" )
@@ -408,8 +368,8 @@ def merge_binaries(source, target, env, for_signature):
408368 "--chip" , mcu ,
409369 "--port" , '"$UPLOAD_PORT"' ,
410370 "--baud" , "$UPLOAD_SPEED" ,
411- "--before" , " default_reset" ,
412- "--after" , " hard_reset" ,
371+ "--before" , board . get ( "upload.before_reset" , " default_reset") ,
372+ "--after" , board . get ( "upload.after_reset" , " hard_reset") ,
413373 "write_flash" , "-z" ,
414374 "--flash_mode" , "${__get_board_flash_mode(__env__)}" ,
415375 "--flash_freq" , "${__get_board_f_flash(__env__)}" ,
@@ -470,10 +430,6 @@ def merge_binaries(source, target, env, for_signature):
470430
471431
472432elif upload_protocol in debug_tools :
473- if firmware_merge_required :
474- # Only merged firmware with proper headers will work when uploading is done via
475- # debug probes. The firmware offset address must be adjusted to 0x0 accordingly.
476- target_firm = target_firm_merged
477433 openocd_args = ["-d%d" % (2 if int (ARGUMENTS .get ("PIOVERBOSE" , 0 )) else 1 )]
478434 openocd_args .extend (
479435 debug_tools .get (upload_protocol ).get ("server" ).get ("arguments" , []))
@@ -487,13 +443,12 @@ def merge_binaries(source, target, env, for_signature):
487443 "$FS_START"
488444 if "uploadfs" in COMMAND_LINE_TARGETS
489445 else board .get (
490- "upload.offset_address" ,
491- "0x0" if firmware_merge_required else "$ESP32_APP_OFFSET"
446+ "upload.offset_address" , "$ESP32_APP_OFFSET"
492447 )
493448 ),
494449 ]
495450 )
496- if "uploadfs" not in COMMAND_LINE_TARGETS and not firmware_merge_required :
451+ if "uploadfs" not in COMMAND_LINE_TARGETS :
497452 for image in env .get ("FLASH_EXTRA_IMAGES" , []):
498453 openocd_args .extend (
499454 [
@@ -551,13 +506,6 @@ def merge_binaries(source, target, env, for_signature):
551506 print ("Warning! '-Wl,-T' option for specifying linker scripts is deprecated. "
552507 "Please use 'board_build.ldscript' option in your 'platformio.ini' file." )
553508
554- #
555- # A temporary workaround to propagate additional data to the debug configuration routine
556- #
557-
558- Import ("projenv" )
559- projenv ["INTEGRATION_EXTRA_DATA" ] = env .get ("INTEGRATION_EXTRA_DATA" )
560-
561509#
562510# Default targets
563511#
0 commit comments