OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [arch/] [armnommu/] [lib/] [extractinfo.perl] - Diff between revs 1765 and 1782

Only display areas with differences | Details | Blame | View Log

Rev 1765 Rev 1782
#!/usr/bin/perl
#!/usr/bin/perl
$OBJDUMP=$ARGV[0];
$OBJDUMP=$ARGV[0];
sub swapdata {
sub swapdata {
        local ($num) = @_;
        local ($num) = @_;
        return substr($num, 6, 2).substr($num, 4, 2).substr ($num, 2, 2).substr ($num, 0, 2);
        return substr($num, 6, 2).substr($num, 4, 2).substr ($num, 2, 2).substr ($num, 0, 2);
}
}
open (DATA, $OBJDUMP.' --full-contents --section=.data getconsdata.o | grep \'^ 00\' |') ||
open (DATA, $OBJDUMP.' --full-contents --section=.data getconsdata.o | grep \'^ 00\' |') ||
        die ('Cant objdump!');
        die ('Cant objdump!');
#print "phase 1\n";
#print "phase 1\n";
while () {
while () {
        ($addr, $data0, $data1, $data2, $data3) = split (' ');
        ($addr, $data0, $data1, $data2, $data3) = split (' ');
#    print "$addr, $data0, $data1, $data2, $data3\n";
#    print "$addr, $data0, $data1, $data2, $data3\n";
        $dat[hex($addr)] = hex(&swapdata($data0));
        $dat[hex($addr)] = hex(&swapdata($data0));
        $dat[hex($addr)+4] = hex(&swapdata($data1));
        $dat[hex($addr)+4] = hex(&swapdata($data1));
        $dat[hex($addr)+8] = hex(&swapdata($data2));
        $dat[hex($addr)+8] = hex(&swapdata($data2));
        $dat[hex($addr)+12] = hex(&swapdata($data3));
        $dat[hex($addr)+12] = hex(&swapdata($data3));
}
}
close (DATA);
close (DATA);
# print "phase 2\n";
# print "phase 2\n";
open (DATA, $OBJDUMP.' --syms getconsdata.o | grep \' O .data\' |') ||
open (DATA, $OBJDUMP.' --syms getconsdata.o | grep \' O .data\' |') ||
        die ('Cant objdump!');
        die ('Cant objdump!');
while () {
while () {
        ($addr, $flag1, $flag2, $sect, $size, $name) = split (' ');
        ($addr, $flag1, $flag2, $sect, $size, $name) = split (' ');
#       print "$addr, $flag1, $flag2, $sect, $size, $name\n";
#       print "$addr, $flag1, $flag2, $sect, $size, $name\n";
        $nam[hex($addr)] = $name;
        $nam[hex($addr)] = $name;
}
}
close (DATA);
close (DATA);
# print "phase 3\n";
# print "phase 3\n";
print "/*\n * *** THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT! ***\n */\n";
print "/*\n * *** THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT! ***\n */\n";
for ($i = 0; $i < hex($addr)+12; $i ++) {
for ($i = 0; $i < hex($addr)+12; $i ++) {
        print "unsigned long $nam[$i] = $dat[$i];\n" if $dat[$i];
        print "unsigned long $nam[$i] = $dat[$i];\n" if $dat[$i];
        print "#define __HAS_$nam[$i]\n" if $dat[$i];
        print "#define __HAS_$nam[$i]\n" if $dat[$i];
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.