#!/usr/bin/perl # endian-swap S records; we need this because the JTAG tools we're using # expect the memory image in byte-swapped format # # Jonathan Westhues, April 2004 if(@ARGV == 0) { die "usage: $0 file-to-endian-swap.s19 > out.s19\n"; } while(<>) { chomp; if(/^S0/) { next; } if(/^S7/) { print "$_\n"; next; } if(not /^S3(..)(........)(.*)(..)$/) { die "bad S record at line $.\n"; } $data = $3; $checksum = $4; print "S3$1$2"; while($data =~ m#(..)(..)(..)(..)#g) { print "$4$3$2$1"; } print "$checksum\n"; }