summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flash/extract/extract.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/flash/extract/extract.c b/flash/extract/extract.c
index 31e223a546..2a8a7b3ec7 100644
--- a/flash/extract/extract.c
+++ b/flash/extract/extract.c
@@ -113,7 +113,12 @@ int main(int argc, char* argv[])
// generate checksum
for (i=0; i<uiSize; i++)
- usChecksum += aImage[uiStart + i];
+ {
+ UINT8 byte;
+ byte = aImage[uiStart + i];
+ byte = ~((byte >> 1) | ((byte << 7) & 0x80)); /* poor man's ROR */
+ usChecksum += byte;
+ }
// make header
Write32(aHeader + 2, usChecksum); // checksum in 5th and 6th byte