Browse Source

Calculate checksum correctly in all cases

Clara Hobbs 6 years ago
parent
commit
629bdcec87
1 changed files with 1 additions and 1 deletions
  1. 1
    1
      alpaca_isp/lpc.py

+ 1
- 1
alpaca_isp/lpc.py View File

380
             # If we're writing sector 0, set the checksum
380
             # If we're writing sector 0, set the checksum
381
             if sector == 0:
381
             if sector == 0:
382
                 iv = struct.unpack('<7I', secdat[0:28])
382
                 iv = struct.unpack('<7I', secdat[0:28])
383
-                cs = struct.pack('<i', -sum(iv))
383
+                cs = struct.pack('<I', (-(sum(iv) % 2**32)) & 0xFFFFFFFF)
384
                 secdat = secdat[:28] + cs + secdat[32:]
384
                 secdat = secdat[:28] + cs + secdat[32:]
385
 
385
 
386
             # Write data to RAM
386
             # Write data to RAM

Loading…
Cancel
Save