@@ -160,18 +160,6 @@ def __fetch_fs_size(target, source, env):
160
160
return (target , source )
161
161
162
162
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
-
175
163
env = DefaultEnvironment ()
176
164
platform = env .PioPlatform ()
177
165
board = env .BoardConfig ()
@@ -181,21 +169,6 @@ def merge_binaries(source, target, env, for_signature):
181
169
if mcu == "esp32c3" :
182
170
toolchain_arch = "riscv32-esp"
183
171
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
-
199
172
if "INTEGRATION_EXTRA_DATA" not in env :
200
173
env ["INTEGRATION_EXTRA_DATA" ] = {}
201
174
@@ -291,10 +264,6 @@ def merge_binaries(source, target, env, for_signature):
291
264
source_factory = env .Dir ,
292
265
suffix = ".bin" ,
293
266
),
294
- MergeBin = Builder (
295
- generator = merge_binaries ,
296
- suffix = ".bin" ,
297
- ),
298
267
)
299
268
)
300
269
@@ -306,7 +275,6 @@ def merge_binaries(source, target, env, for_signature):
306
275
#
307
276
308
277
target_elf = None
309
- target_firm_merged = None
310
278
if "nobuild" in COMMAND_LINE_TARGETS :
311
279
target_elf = join ("$BUILD_DIR" , "${PROGNAME}.elf" )
312
280
if set (["uploadfs" , "uploadfsota" ]) & set (COMMAND_LINE_TARGETS ):
@@ -325,14 +293,6 @@ def merge_binaries(source, target, env, for_signature):
325
293
else :
326
294
target_firm = env .ElfToBin (
327
295
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 )
336
296
env .Depends (target_firm , "checkprogsize" )
337
297
338
298
env .AddPlatformTarget ("buildfs" , target_firm , target_firm , "Build Filesystem Image" )
@@ -408,8 +368,8 @@ def merge_binaries(source, target, env, for_signature):
408
368
"--chip" , mcu ,
409
369
"--port" , '"$UPLOAD_PORT"' ,
410
370
"--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") ,
413
373
"write_flash" , "-z" ,
414
374
"--flash_mode" , "${__get_board_flash_mode(__env__)}" ,
415
375
"--flash_freq" , "${__get_board_f_flash(__env__)}" ,
@@ -470,10 +430,6 @@ def merge_binaries(source, target, env, for_signature):
470
430
471
431
472
432
elif 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
477
433
openocd_args = ["-d%d" % (2 if int (ARGUMENTS .get ("PIOVERBOSE" , 0 )) else 1 )]
478
434
openocd_args .extend (
479
435
debug_tools .get (upload_protocol ).get ("server" ).get ("arguments" , []))
@@ -487,13 +443,12 @@ def merge_binaries(source, target, env, for_signature):
487
443
"$FS_START"
488
444
if "uploadfs" in COMMAND_LINE_TARGETS
489
445
else board .get (
490
- "upload.offset_address" ,
491
- "0x0" if firmware_merge_required else "$ESP32_APP_OFFSET"
446
+ "upload.offset_address" , "$ESP32_APP_OFFSET"
492
447
)
493
448
),
494
449
]
495
450
)
496
- if "uploadfs" not in COMMAND_LINE_TARGETS and not firmware_merge_required :
451
+ if "uploadfs" not in COMMAND_LINE_TARGETS :
497
452
for image in env .get ("FLASH_EXTRA_IMAGES" , []):
498
453
openocd_args .extend (
499
454
[
@@ -551,13 +506,6 @@ def merge_binaries(source, target, env, for_signature):
551
506
print ("Warning! '-Wl,-T' option for specifying linker scripts is deprecated. "
552
507
"Please use 'board_build.ldscript' option in your 'platformio.ini' file." )
553
508
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
-
561
509
#
562
510
# Default targets
563
511
#
0 commit comments