Skip to content

Commit e204945

Browse files
committed
esp32: fix read-flash
Signed-off-by: Benny Zlotnik <[email protected]>
1 parent 981c2f2 commit e204945

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

packages/jumpstarter-driver-esp32/jumpstarter_driver_esp32/client.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,16 @@ def read_flash(self, address: int, size: int) -> bytes:
5757
address: Flash address to read from
5858
size: Number of bytes to read
5959
"""
60+
import base64
61+
6062
if address < 0:
6163
raise ArgumentError("Flash address must be non-negative")
6264
if size <= 0:
6365
raise ArgumentError("Size must be positive")
6466

65-
return self.call("read_flash", address, size)
67+
encoded_data = self.call("read_flash", address, size)
68+
69+
return base64.b64decode(encoded_data)
6670

6771
def enter_bootloader(self) -> str:
6872
"""Enter bootloader mode"""

packages/jumpstarter-driver-esp32/jumpstarter_driver_esp32/driver.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,10 @@ def _flash_firmware():
124124
return await to_thread.run_sync(_flash_firmware)
125125

126126
@export
127-
def read_flash(self, address: int, size: int) -> bytes:
127+
def read_flash(self, address: int, size: int) -> str:
128128
"""Read flash contents from specified address"""
129+
import base64
130+
129131
address = int(address)
130132
size = int(size)
131133
if address < 0:
@@ -135,7 +137,14 @@ def read_flash(self, address: int, size: int) -> bytes:
135137

136138
esp = self._connect_esp()
137139
try:
138-
return esp.read_flash(address, size)
140+
if not esp.IS_STUB:
141+
esp = esp.run_stub()
142+
143+
data = esp.read_flash(address, size)
144+
145+
esp.hard_reset()
146+
147+
return base64.b64encode(data).decode('ascii')
139148
finally:
140149
if hasattr(esp, "_port") and esp._port:
141150
esp._port.close()

0 commit comments

Comments
 (0)