bin2h.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[])
  4. {
  5. char var_name[30] = "cfgware"
  6. FILE *fpIn = NULL, *fpOut = NULL;
  7. unsigned char buffer[5], i;
  8. if ( argc == 4 )
  9. {
  10. fpIn = fopen(argv[1], "rb");
  11. fpOut = fopen(argv[2], "wt");
  12. }
  13. else if (argc == 3)
  14. {
  15. fpIn = fopen(argv[1], "rb");
  16. fpOut = stdout;
  17. }
  18. else if ( argc == 2 )
  19. {
  20. fpIn = stdin;
  21. fpOut = stdout;
  22. }
  23. else
  24. {
  25. fprintf(stderr, "usage: %s [infile] [outfile]\n", argv[0]);
  26. return -1;
  27. }
  28. if (argc > 1)
  29. sprintf()
  30. if (fpIn == NULL) { fprintf(stderr, "Can't open '%s`: Aborting.", argv[1]); return -1; }
  31. if (fpOut == NULL) { fprintf(stderr, "Can't open '%s`: Aborting.", argv[2]); return -1; }
  32. fprintf(fpOut, "const uint8_t %s[] = {\n", var_name);
  33. i = 0;
  34. while(!feof(fpIn))
  35. {
  36. fread(buffer, 1, 1, fpIn);
  37. fprintf(fpOut, "0x%02X, ", buffer[0]);
  38. i++; if (i > 8) { fprintf(fpOut, "\n"); i = 0; }
  39. }
  40. if (i > 0)
  41. fprintf(fpOut, "\n");
  42. fprintf(fpOut, "};");
  43. fclose(fpOut); fclose(fpIn);
  44. return 0;
  45. }