diff options
| -rw-r--r-- | flash/extract/extract.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/flash/extract/extract.c b/flash/extract/extract.c index 31e223a..2a8a7b3 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 |