From: Chunrong Guo Date: Wed, 4 Feb 2015 07:18:11 +0000 (+0800) Subject: change-file-endianess: add recipe X-Git-Tag: 2.1~665 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=d00eecab000e179647d9503e0813139f0c97bf5f;p=meta-freescale.git change-file-endianess: add recipe provides the tcl script for endian swap Signed-off-by: Chunrong Guo Signed-off-by: Otavio Salvador --- diff --git a/meta-fsl-arm/recipes-bsp/change-file-endianess/change-file-endianess.bb b/meta-fsl-arm/recipes-bsp/change-file-endianess/change-file-endianess.bb new file mode 100644 index 00000000..2ad8c588 --- /dev/null +++ b/meta-fsl-arm/recipes-bsp/change-file-endianess/change-file-endianess.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "provides the tcl script for endian swap" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + + +SRC_URI = "file://byte_swap.tcl" + +RDEPENDS += "tcl-native" + +inherit native + +S = "${WORKDIR}" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install () { + install -d ${D}/${bindir} + install -m 755 ${WORKDIR}/byte_swap.tcl ${D}/${bindir} +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-fsl-arm/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl b/meta-fsl-arm/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl new file mode 100755 index 00000000..aca956bd --- /dev/null +++ b/meta-fsl-arm/recipes-bsp/change-file-endianess/change-file-endianess/byte_swap.tcl @@ -0,0 +1,29 @@ +puts $argv +set i_file [lindex $argv 0] +set o_file [lindex $argv 1] +set num_b [lindex $argv 2] +puts "" + +set fileid_i [open $i_file "r"] +set fileid_o [open $o_file "w+"] +fconfigure $fileid_i -translation {binary binary} +fconfigure $fileid_o -translation {binary binary} + +set old_bin [read $fileid_i] +set new_bin {} +for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} { + for {set j $num_b} {$j>0} {incr j -1} { + append new_bin [string index $old_bin [expr $i+($j-1)]] + } +} + +for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} { + set binValue [string range $old_bin [expr $i+0] [expr $i+($num_b-1)]] + binary scan $binValue H[expr $num_b*2] hexValue + + set binValue [string range $new_bin [expr $i+0] [expr $i+($num_b-1)]] + binary scan $binValue H[expr $num_b*2] hexValue +} + +puts -nonewline $fileid_o $new_bin +close $fileid_o