From dcc6b6ad9bffdc610876e6a9b14a26818c0dd2ec Mon Sep 17 00:00:00 2001 From: Liam Staskawicz Date: Mon, 29 Dec 2014 17:31:13 -0800 Subject: [PATCH] cmdEraseMemory(): fix incorrect crc calculation --- stm32loader.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/stm32loader.py b/stm32loader.py index 95adc05..b7494bf 100755 --- a/stm32loader.py +++ b/stm32loader.py @@ -217,10 +217,14 @@ def cmdEraseMemory(self, sectors = None): self.sp.write(chr(0x00)) else: # Sectors erase - self.sp.write(chr((len(sectors)-1) & 0xFF)) - crc = 0xFF + crc = 0x0 + + sec_len = (len(sectors)-1) & 0xff + crc ^= sec_len + self.sp.write(chr(sec_len)) + for c in sectors: - crc = crc ^ c + crc ^= c self.sp.write(chr(c)) self.sp.write(chr(crc)) self._wait_for_ask("0x43 erasing failed")