+++ /dev/null
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <stdint.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-
-#define myfirmware_rawfilename "./usbasploader.raw"
-#define myout stdout
-
-int main(int argc, char** argv) {
- int fd;
- uint16_t b;
- uint64_t c;
- struct stat fwstat;
-
- fprintf(myout, "\n");
- fprintf(myout, "#ifndef FIRMWARE_H_5f27a7e9840141b1aa57eef07c1d939f\n");
- fprintf(myout, "#define FIRMWARE_H_5f27a7e9840141b1aa57eef07c1d939f 1\n");
- fprintf(myout, "\n");
- fprintf(myout, "#include <stdint.h>\n");
- fprintf(myout, "#include <avr/io.h>\n");
- fprintf(myout, "#include <avr/pgmspace.h>\n");
- fprintf(myout, "#include \"../firmware/spminterface.h\"\n");
- fprintf(myout, "\n");
- fprintf(myout, "//firmware generator generated\n");
-
- fd=open(myfirmware_rawfilename, O_RDONLY);
- if (fd > 2) {
- fstat(fd, &fwstat);
- fprintf(myout, "#define SIZEOF_new_firmware %llu\n",(long long unsigned int)fwstat.st_size);
- fprintf(myout, "const uint16_t firmware[SIZEOF_new_firmware>>1] PROGMEM = {");
- fprintf(myout, "\n");
-
- c=0;
- while (read(fd, &b, 2) == 2) {
- c+=2;
- fprintf(myout,"0x%04x, ", (unsigned int)b);
- if ((c % 20) == 0) fprintf(myout,"\n");
- }
- if ((c % 20) != 0) fprintf(myout,"\n");
- fprintf(myout, "};\n");
- fprintf(myout, "const uint8_t *new_firmware = (void*)&firmware;\n");
- fprintf(myout, "\n");
-
- close(fd);
- } else {
- fprintf(stderr, "error opening %s\n", myfirmware_rawfilename);
-
- fprintf(myout, "#define SIZEOF_new_firmware 0\n");
- fprintf(myout, "const uint16_t firmware[SIZEOF_new_firmware>>1] PROGMEM = {};\n");
- fprintf(myout, "const uint8_t *new_firmware = (void*)&firmware;\n");
- fprintf(myout, "\n");
- }
-
- fprintf(myout, "#endif\n");
- fprintf(myout, "\n");
- return 0;
-}