summaryrefslogtreecommitdiffstats
path: root/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl')
-rwxr-xr-xrecipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl29
1 files changed, 29 insertions, 0 deletions
diff --git a/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl b/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl
new file mode 100755
index 00000000..aca956bd
--- /dev/null
+++ b/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl
@@ -0,0 +1,29 @@
1puts $argv
2set i_file [lindex $argv 0]
3set o_file [lindex $argv 1]
4set num_b [lindex $argv 2]
5puts ""
6
7set fileid_i [open $i_file "r"]
8set fileid_o [open $o_file "w+"]
9fconfigure $fileid_i -translation {binary binary}
10fconfigure $fileid_o -translation {binary binary}
11
12set old_bin [read $fileid_i]
13set new_bin {}
14for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} {
15 for {set j $num_b} {$j>0} {incr j -1} {
16 append new_bin [string index $old_bin [expr $i+($j-1)]]
17 }
18}
19
20for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} {
21 set binValue [string range $old_bin [expr $i+0] [expr $i+($num_b-1)]]
22 binary scan $binValue H[expr $num_b*2] hexValue
23
24 set binValue [string range $new_bin [expr $i+0] [expr $i+($num_b-1)]]
25 binary scan $binValue H[expr $num_b*2] hexValue
26}
27
28puts -nonewline $fileid_o $new_bin
29close $fileid_o