|
@@ -43,17 +43,20 @@ class Stk500v2(ispBase.IspBase):
|
|
|
|
|
|
self.serial.flushInput()
|
|
|
self.serial.flushOutput()
|
|
|
- if self.sendMessage([0x10, 0xc8, 0x64, 0x19, 0x20, 0x00, 0x53, 0x03, 0xac, 0x53, 0x00, 0x00]) != [0x10, 0x00]:
|
|
|
- self.close()
|
|
|
- raise ispBase.IspError("Failed to enter programming mode")
|
|
|
+ try:
|
|
|
+ if self.sendMessage([0x10, 0xc8, 0x64, 0x19, 0x20, 0x00, 0x53, 0x03, 0xac, 0x53, 0x00, 0x00]) != [0x10, 0x00]:
|
|
|
+ raise ispBase.IspError("Failed to enter programming mode")
|
|
|
|
|
|
- self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00])
|
|
|
- if self.sendMessage([0xEE])[1] == 0x00:
|
|
|
- self._has_checksum = True
|
|
|
- else:
|
|
|
- self._has_checksum = False
|
|
|
+ self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00])
|
|
|
+ if self.sendMessage([0xEE])[1] == 0x00:
|
|
|
+ self._has_checksum = True
|
|
|
+ else:
|
|
|
+ self._has_checksum = False
|
|
|
+ except ispBase.IspError:
|
|
|
+ self.close()
|
|
|
+ raise
|
|
|
self.serial.timeout = 5
|
|
|
-
|
|
|
+
|
|
|
def close(self):
|
|
|
if self.serial is not None:
|
|
|
self.serial.close()
|