aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/px_uploader.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/Tools/px_uploader.py b/Tools/px_uploader.py
index 1a0d7bd45..dfb53980a 100755
--- a/Tools/px_uploader.py
+++ b/Tools/px_uploader.py
@@ -172,10 +172,16 @@ class uploader(object):
self.__send(uploader.CHIP_ERASE
+ uploader.EOC)
# erase is very slow, give it 10s
- old_timeout = self.port.timeout
- self.port.timeout = 10
- self.__getSync()
- self.port.timeout = old_timeout
+ deadline = time.time() + 10
+ while time.time() < deadline:
+ try:
+ self.__getSync()
+ return
+ except RuntimeError as ex:
+ # we timed out, that's OK
+ continue
+
+ raise RuntimeError("timed out waiting for erase")
# send a PROG_MULTI command to write a collection of bytes
def __program_multi(self, data):