xref: /utopia/UTPA2-700.0.x/modules/vdec_v1/hal/manhattan/hvd/tools/fwHVD_bin2hex.pl (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1#
2# bin2hex.pl by Chami.com
3# http://www.chami.com/tips/
4#
5# Modify by Mark Chiang
6
7# number of characters per line
8$chars_per_line = 16;
9
10# -------------------------------------
11
12# language id
13#
14# 0 = Perl (default)
15# 1 = C / C++
16# 2 = Pascal / Delphi
17#
18$lang  = $ARGV[1];
19
20$rem_begin  = "begin binary data:";
21$rem_end    = "end binary data.";
22
23# initialize for Perl strings
24# by default
25$_var       = "# $rem_begin\n".
26              "\$bin_data = # %d\n";
27$_begin     = "\"";
28$_end       = "\";\n";
29$_break     = "\".\n\"";
30$_format    = "\\x%02X";
31$_separator = "";
32$_comment   = "# $rem_end ".
33              "size = %d bytes";
34
35
36# C / C++
37if(1 == $lang)
38{
39  $_var       = "/* $rem_begin */\n".
40                #"const char prompt_".$ARGV[0]."[] = ".
41                "#ifndef _FW_HVD_BIN_H_\n".
42                "#define _FW_HVD_BIN_H_\n".
43                "MS_U8 u8HVD_FW_Binary[] = ".
44                "/* %d */\n";
45  $_begin     = "{";
46  $_end       = "};\n";
47  $_break     = "\n";
48  $_format    = "0x%02X";
49  $_separator = ",";
50  $_comment   = "/* $rem_end ".
51                "size = %d bytes */\n".
52                "#endif\n";
53}
54elsif(2 == $lang)
55{
56  $_var       = "{ $rem_begin }\n".
57                "const bin_data : ".
58                "array [1..%d] of ".
59                "byte = \n";
60  $_begin     = "(";
61  $_end       = ");\n";
62  $_break     = "\n";
63  $_format    = "\$%02X";
64  $_separator = ",";
65  $_comment   = "{ $rem_end ".
66                "size = %d bytes }";
67}
68
69if(open(F, "<".$ARGV[0]))
70{
71  binmode(F);
72
73  $s = '';
74  $i = 0;
75  $count = 0;
76  $first = 1;
77  #$s .= $_begin;
78  while(!eof(F))
79  {
80    if($i >= $chars_per_line)
81    {
82      $s .= $_break;
83      $i = 0;
84    }
85    if(!$first)
86    {
87      $s .= $_separator;
88    }
89    $s .= sprintf(
90            $_format, ord(getc(F)));
91    ++$i;
92    ++$count;
93    $first = 0;
94  }
95  #$s .= $_end;
96  #$s .= sprintf $_comment, $count;
97  $s .= "\n\n";
98
99  #$s = "\n".sprintf($_var, $count).$s;
100
101  print $s;
102
103  close( F );
104}
105else
106{
107  print
108    "bin2hex.pl by Chami.com\n".
109    "\n".
110    "usage:\n".
111    "  perl bin2hex.pl ".
112    " \n".
113    "\n".
114    "   : path to the ".
115    "binary file\n".
116    "   : 0 = Perl, ".
117    "1 = C/C++/Java, ".
118    "2 = Pascal/Delphi\n".
119    "\n";
120}
121
122