startup.tcl (former commands.tcl) is now embedded into OpenOCD executable.
[openocd.git] / src / file2c.tcl
1 #!/bin/bash
2 # restart using a Tcl shell \
3 exec sh -c 'for tclshell in tclsh tclsh83 cygtclsh80 ; do \
4 ( echo | $tclshell ) 2> /dev/null && exec $tclshell "`( cygpath -w \"$0\" ) 2> /dev/null || echo $0`" "$@" ; \
5 done ; \
6 echo "file2c.tcl: cannot find Tcl shell" ; exit 1' "$0" "$@"
7
8 #===============================================================================
9 #
10 # file2c.tcl
11 #
12 # Convert a file into a header that can be #included from C.
13 #
14 #===============================================================================
15 #####ECOSGPLCOPYRIGHTBEGIN####
16 ## -------------------------------------------
17 ## This file is part of eCos, the Embedded Configurable Operating System.
18 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
19 ##
20 ## eCos is free software; you can redistribute it and/or modify it under
21 ## the terms of the GNU General Public License as published by the Free
22 ## Software Foundation; either version 2 or (at your option) any later version.
23 ##
24 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
25 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
26 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
27 ## for more details.
28 ##
29 ## You should have received a copy of the GNU General Public License along
30 ## with eCos; if not, write to the Free Software Foundation, Inc.,
31 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
32 ##
33 ## As a special exception, if other files instantiate templates or use macros
34 ## or inline functions from this file, or you compile this file and link it
35 ## with other works to produce a work based on this file, this file does not
36 ## by itself cause the resulting work to be covered by the GNU General Public
37 ## License. However the source code for this file must still be made available
38 ## in accordance with section (3) of the GNU General Public License.
39 ##
40 ## This exception does not invalidate any other reasons why a work based on
41 ## this file might be covered by the GNU General Public License.
42 ##
43 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
44 ## at http://sources.redhat.com/ecos/ecos-license/
45 ## -------------------------------------------
46 #####ECOSGPLCOPYRIGHTEND####
47 #===============================================================================
48 ######DESCRIPTIONBEGIN####
49 #
50 # Author(s): jlarmour,bartv
51 # Contact(s):
52 # Date: 2001-07-20
53 # Purpose:
54 # Description:
55 # Usage: file2c.tcl <file to encode> <output C header file>
56 #
57 #####DESCRIPTIONEND####
58 #===============================================================================
59
60
61
62 if { $argc != 2 } {
63 puts "Usage: file2c.tcl <file to encode> <output C file>"
64 exit 1
65 }
66 set infile [lindex $argv 0]
67 set outfile [lindex $argv 1]
68 set label [string range $outfile [expr 1+[string last / $outfile]] [expr [string last . $outfile]-1]]
69
70 set status [ catch {
71 set infilefd [open $infile "r"]
72 fconfigure $infilefd -translation binary
73 set data [read $infilefd]
74 close $infilefd
75 } message]
76
77 if { $status != 0 } {
78 error "Unable to read file $infile: $message"
79 }
80
81 set result ""
82
83 set status [ catch {
84 set outfilefd [ open $outfile "w" ]
85 } message ]
86
87 if { $status != 0 } {
88 error "Unable to create file $outfile: $message"
89 }
90
91 append result "/* This is a generated file. Do not edit. */\n\n"
92 append result "const unsigned char filedata_$label\[\] = {\n"
93
94 set datalength [ string length $data ]
95
96 set aligned_datalength [expr $datalength - ($datalength % 8)]
97
98 for { set i 0 } {$i < $aligned_datalength} {incr i 8} {
99 binary scan $data "@[set i]H16" var0
100 append result [format " 0x%2s, 0x%2s, 0x%2s, 0x%2s, 0x%2s, 0x%2s, 0x%2s, 0x%2s,\n" \
101 [string range $var0 0 1] \
102 [string range $var0 2 3] \
103 [string range $var0 4 5] \
104 [string range $var0 6 7] \
105 [string range $var0 8 9] \
106 [string range $var0 10 11] \
107 [string range $var0 12 13] \
108 [string range $var0 14 15]]
109 }
110
111 if { $aligned_datalength != $datalength } {
112 append result " "
113 for { set i $aligned_datalength } {$i < $datalength} {incr i} {
114 binary scan $data "@[set i]H2" var0
115 append result [format "0x%2s, " $var0]
116 }
117 }
118
119 # Remove either comma+newline or comma+space from the end
120 set result [string range $result 0 [expr [string length $result] - 3]]
121
122 append result "\n};"
123
124 puts $outfilefd $result
125 close $outfilefd

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)