mirror of
https://github.com/marcelstoer/nodemcu-pyflasher.git
synced 2025-07-16 07:46:31 +00:00
Upgrade to esptool 2.0.1
This commit is contained in:
parent
b26b0b20c6
commit
55d3169279
19
esptool.py
19
esptool.py
@ -1,4 +1,4 @@
|
|||||||
#!/usr/local/opt/python/bin/python2.7
|
#!/usr/bin/env python
|
||||||
#
|
#
|
||||||
# ESP8266 & ESP32 ROM Bootloader Utility
|
# ESP8266 & ESP32 ROM Bootloader Utility
|
||||||
# Copyright (C) 2014-2016 Fredrik Ahlberg, Angus Gratton, Espressif Systems (Shanghai) PTE LTD, other contributors as noted.
|
# Copyright (C) 2014-2016 Fredrik Ahlberg, Angus Gratton, Espressif Systems (Shanghai) PTE LTD, other contributors as noted.
|
||||||
@ -30,7 +30,7 @@ import base64
|
|||||||
import zlib
|
import zlib
|
||||||
import shlex
|
import shlex
|
||||||
|
|
||||||
__version__ = "2.0"
|
__version__ = "2.0.1"
|
||||||
|
|
||||||
MAX_UINT32 = 0xffffffff
|
MAX_UINT32 = 0xffffffff
|
||||||
MAX_UINT24 = 0xffffff
|
MAX_UINT24 = 0xffffff
|
||||||
@ -1265,6 +1265,13 @@ class ESP32FirmwareImage(BaseFirmwareImage):
|
|||||||
|
|
||||||
ROM_LOADER = ESP32ROM
|
ROM_LOADER = ESP32ROM
|
||||||
|
|
||||||
|
# 16 byte extended header contains WP pin number (byte), then 6 half-byte drive stength
|
||||||
|
# config fields, then 12 reserved bytes. None of this is exposed in esptool.py right now,
|
||||||
|
# but we need to set WP to 0xEE (disabled) to avoid problems when remapping SPI flash
|
||||||
|
# pins via efuse (for example on ESP32-D2WD).
|
||||||
|
EXTENDED_HEADER = [0xEE] + ([0] * 15)
|
||||||
|
EXTENDED_HEADER_STRUCT_FMT = "B" * 16
|
||||||
|
|
||||||
def __init__(self, load_file=None):
|
def __init__(self, load_file=None):
|
||||||
super(ESP32FirmwareImage, self).__init__()
|
super(ESP32FirmwareImage, self).__init__()
|
||||||
self.flash_mode = 0
|
self.flash_mode = 0
|
||||||
@ -1273,11 +1280,11 @@ class ESP32FirmwareImage(BaseFirmwareImage):
|
|||||||
|
|
||||||
if load_file is not None:
|
if load_file is not None:
|
||||||
segments = self.load_common_header(load_file, ESPLoader.ESP_IMAGE_MAGIC)
|
segments = self.load_common_header(load_file, ESPLoader.ESP_IMAGE_MAGIC)
|
||||||
additional_header = list(struct.unpack("B" * 16, load_file.read(16)))
|
additional_header = list(struct.unpack(self.EXTENDED_HEADER_STRUCT_FMT, load_file.read(16)))
|
||||||
|
|
||||||
# check these bytes are unused
|
# check these bytes are unused
|
||||||
if additional_header != [0] * 16:
|
if additional_header != self.EXTENDED_HEADER:
|
||||||
print("WARNING: ESP32 image header contains unknown flags. Possibly this image is from a newer version of esptool.py")
|
print("WARNING: ESP32 image header contains unknown flags. Possibly this image is from a different version of esptool.py")
|
||||||
|
|
||||||
for _ in range(segments):
|
for _ in range(segments):
|
||||||
self.load_segment(load_file)
|
self.load_segment(load_file)
|
||||||
@ -1301,7 +1308,7 @@ class ESP32FirmwareImage(BaseFirmwareImage):
|
|||||||
|
|
||||||
# first 4 bytes of header are read by ROM bootloader for SPI
|
# first 4 bytes of header are read by ROM bootloader for SPI
|
||||||
# config, but currently unused
|
# config, but currently unused
|
||||||
f.write(b'\x00' * 16)
|
f.write(struct.pack(self.EXTENDED_HEADER_STRUCT_FMT, *self.EXTENDED_HEADER))
|
||||||
|
|
||||||
checksum = ESPLoader.ESP_CHECKSUM_MAGIC
|
checksum = ESPLoader.ESP_CHECKSUM_MAGIC
|
||||||
last_addr = None
|
last_addr = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user