my $openocd_remote = shift @ARGV || 'picam:4444';
my $bsdl_file = $ENV{BSDL} || '_3128at100.bsd';
+$bsdl_file = '3064at44.bsd'; # XXX
my $BOUNDARY_LENGTH = 288;
my $entity;
$|=1; # flush stdout
+require 'gpio.pl';
+
open(my $bsdl, '<', $bsdl_file);
while(<$bsdl>) {
if ( m/PIN_MAP_STRING/ ) {
$aa <=> $bb } keys %$io2bit;
warn "# sort = ",dump(@sort);
+sub bits {
+ my $bits = shift;
+ return $bits; # FIXME disable for now
+ $bits =~ s/0/ /;
+ $bits =~ s/^(.)0/$1 /;
+ $bits =~ s/^1/I/;
+ $bits =~ s/^(.)1/$1./;
+ return $bits;
+}
+
my $last_bits = '';
sub print_io {
my $bits = shift;
if ( defined $o ) {
my $l = $b = substr($bits, $o, 3);
$l = substr($last_bits,$o,3) if $last_bits;
- printf "%-3d %-3d %-5s %3s %3s | ", $pin, $o, $io, $b, $b ne $l ? $l : ''
+ printf "%-3d %-3d %-5s %3s %3s | ", $pin, $o, $io, bits($b), bits($b ne $l ? $l : '')
} else {
printf "%-3d ... %-5s %3s %3s | ", $pin, $io, '', '';
}
diff_bits($BSR, $bin);
$BSR = $bin;
print_io $bin if $bin ne $last_bits;
+ gpio::pins();
last;
} else {
warn "# in ",dump($_);
$o[$i]='.';
} else {
my $pin = $bit2pin->{ $BOUNDARY_LENGTH - ($i * 3) - 3 }->[0];
- $o[$i] = " $pin:" . $o[$i] . '>' . $n[$i];
+ $o[$i] = " $pin@" . ( $i * 3 ) . ":" . $o[$i] . '>' . $n[$i];
}
}
my $diff = join('', @o);
print $sock "irscan x300.tap 0x55\n"; # SAMPLE/PRELOAD
print $sock "drscan x300.tap $BOUNDARY_LENGTH 0\n";
} else {
+ gpio::cmd( $cmd );
print $sock "irscan x300.tap 0x55\n"; # SAMPLE/PRELOAD
print $sock "drscan x300.tap $BOUNDARY_LENGTH 0\n";
}