13 #define myfirmware_rawfilename "./usbasploader.raw"
16 int main(int argc
, char** argv
) {
23 fprintf(myout
, "#ifndef FIRMWARE_H_5f27a7e9840141b1aa57eef07c1d939f\n");
24 fprintf(myout
, "#define FIRMWARE_H_5f27a7e9840141b1aa57eef07c1d939f 1\n");
26 fprintf(myout
, "#include <stdint.h>\n");
27 fprintf(myout
, "#include <avr/io.h>\n");
28 fprintf(myout
, "#include \"../firmware/spminterface.h\"\n");
30 fprintf(myout
, "//firmware generator generated\n");
32 fd
=open(myfirmware_rawfilename
, O_RDONLY
);
35 fprintf(myout
, "#define SIZEOF_new_firmware %llu\n",(long long unsigned int)fwstat
.st_size
);
36 fprintf(myout
, "const uint16_t firmware[SIZEOF_new_firmware>>1] PROGMEM = {");
40 while (read(fd
, &b
, 2) == 2) {
42 fprintf(myout
,"0x%04x, ", (unsigned int)b
);
43 if ((c
% 20) == 0) fprintf(myout
,"\n");
45 if ((c
% 20) != 0) fprintf(myout
,"\n");
46 fprintf(myout
, "};\n");
47 fprintf(myout
, "const uint8_t *new_firmware = (void*)&firmware;\n");
52 fprintf(stderr
, "error opening %s\n", myfirmware_rawfilename
);
54 fprintf(myout
, "#define SIZEOF_new_firmware 0\n");
55 fprintf(myout
, "const uint16_t firmware[SIZEOF_new_firmware>>1] PROGMEM = {};\n");
56 fprintf(myout
, "const uint8_t *new_firmware = (void*)&firmware;\n");
60 fprintf(myout
, "#endif\n");