#include #include #define SIZE 0xe0000 #define MAGIC 0xaabbbbaa int main (void) { int data; uint32_t checksum = 0; uint32_t cnt = 0; while ((data = fgetc (stdin)) != EOF) { checksum ^= ((uint32_t) data) << ((cnt % sizeof checksum) * 8); cnt++; } checksum ^= MAGIC; if (cnt != SIZE) fprintf (stderr, "WARNING: Firmware size incorrect! Should be exactly %d bytes.\n", SIZE); else fprintf (stdout, "Checksum: 0x%x\nFile Size: %d bytes\n", checksum, cnt); return 0; }