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 <avr/pgmspace.h>\n");
29 fprintf(myout
, "#include \"../firmware/spminterface.h\"\n");
31 fprintf(myout
, "//firmware generator generated\n");
33 fd
=open(myfirmware_rawfilename
, O_RDONLY
);
36 fprintf(myout
, "#define SIZEOF_new_firmware %llu\n",(long long unsigned int)fwstat
.st_size
);
37 fprintf(myout
, "const uint16_t firmware[SIZEOF_new_firmware>>1] PROGMEM = {");
41 while (read(fd
, &b
, 2) == 2) {
43 fprintf(myout
,"0x%04x, ", (unsigned int)b
);
44 if ((c
% 20) == 0) fprintf(myout
,"\n");
46 if ((c
% 20) != 0) fprintf(myout
,"\n");
47 fprintf(myout
, "};\n");
48 fprintf(myout
, "const uint8_t *new_firmware = (void*)&firmware;\n");
53 fprintf(stderr
, "error opening %s\n", myfirmware_rawfilename
);
55 fprintf(myout
, "#define SIZEOF_new_firmware 0\n");
56 fprintf(myout
, "const uint16_t firmware[SIZEOF_new_firmware>>1] PROGMEM = {};\n");
57 fprintf(myout
, "const uint8_t *new_firmware = (void*)&firmware;\n");
61 fprintf(myout
, "#endif\n");