bin2h.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. printf( "argc: %d\n", argc );
  9. if ( argc == 4 )
  10. {
  11. fpIn = fopen( argv[1], "rb" );
  12. fpOut = fopen( argv[2], "wt" );
  13. sprintf( var_name, "%s", argv[3] );
  14. }
  15. else if ( argc == 3 )
  16. {
  17. fpIn = fopen( argv[1], "rb" );
  18. fpOut = fopen( argv[2], "wt" );
  19. }
  20. else if ( argc == 2 )
  21. {
  22. fpIn = fopen( argv[1], "rb" );
  23. fpOut = stdout;
  24. }
  25. else if ( argc == 1 )
  26. {
  27. fpIn = stdin;
  28. fpOut = stdout;
  29. }
  30. else
  31. {
  32. fprintf( stderr, "usage: %s [infile] [outfile] [name]\n", argv[0] );
  33. return -1;
  34. }
  35. // if (argc > 1)
  36. // sprintf()
  37. if ( fpIn == NULL )
  38. {
  39. fprintf( stderr, "Can't open '%s`: Aborting.", argv[1] );
  40. return -1;
  41. }
  42. if ( fpOut == NULL )
  43. {
  44. fprintf( stderr, "Can't open '%s`: Aborting.", argv[2] );
  45. return -1;
  46. }
  47. fprintf( fpOut, "const uint8_t %s[] = {\n", var_name );
  48. i = 0;
  49. while ( !feof( fpIn ) )
  50. {
  51. fread( buffer, 1, 1, fpIn );
  52. fprintf( fpOut, "0x%02X, ", buffer[0] );
  53. i++;
  54. if ( i > 8 )
  55. {
  56. fprintf( fpOut, "\n" );
  57. i = 0;
  58. }
  59. }
  60. if ( i > 0 )
  61. {
  62. fprintf( fpOut, "\n" );
  63. }
  64. fprintf( fpOut, "};" );
  65. fclose( fpOut ); fclose( fpIn );
  66. return 0;
  67. }