mirror of
https://github.com/espressif/esptool.git
synced 2025-10-19 02:43:00 +08:00
fix(bin_image): add check for ELF file segment when saving RAM segments
Closes https://github.com/espressif/esptool/issues/994
This commit is contained in:

committed by
Radim Karniš

parent
4d0c7d9de1
commit
6e8632d3ef
@@ -706,7 +706,10 @@ class ESP32FirmwareImage(BaseFirmwareImage):
|
|||||||
# So bootdesc will be at the very top of the binary at 0x20 offset
|
# So bootdesc will be at the very top of the binary at 0x20 offset
|
||||||
# (in the first segment).
|
# (in the first segment).
|
||||||
for segment in ram_segments:
|
for segment in ram_segments:
|
||||||
if segment.name == ".dram0.bootdesc":
|
if (
|
||||||
|
isinstance(segment, ELFSection)
|
||||||
|
and segment.name == ".dram0.bootdesc"
|
||||||
|
):
|
||||||
ram_segments.remove(segment)
|
ram_segments.remove(segment)
|
||||||
ram_segments.insert(0, segment)
|
ram_segments.insert(0, segment)
|
||||||
break
|
break
|
||||||
@@ -985,7 +988,7 @@ class ESP8266V3FirmwareImage(ESP32FirmwareImage):
|
|||||||
while len(flash_segments) > 0:
|
while len(flash_segments) > 0:
|
||||||
segment = flash_segments[0]
|
segment = flash_segments[0]
|
||||||
# remove 8 bytes empty data for insert segment header
|
# remove 8 bytes empty data for insert segment header
|
||||||
if segment.name == ".flash.rodata":
|
if isinstance(segment, ELFSection) and segment.name == ".flash.rodata":
|
||||||
segment.data = segment.data[8:]
|
segment.data = segment.data[8:]
|
||||||
# write the flash segment
|
# write the flash segment
|
||||||
checksum = self.save_segment(f, segment, checksum)
|
checksum = self.save_segment(f, segment, checksum)
|
||||||
|
Reference in New Issue
Block a user