From: Dobrica Pavlinusic Date: Tue, 21 Jun 2016 16:34:38 +0000 (+0200) Subject: display pin descriptions for cpld X-Git-Url: http://git.rot13.org/?p=x300-pci;a=commitdiff_plain;h=3c30bca16bf80936be0f969abc97e3a5ae81a34b display pin descriptions for cpld --- diff --git a/openocd-jtag-boundary-scan.pl b/openocd-jtag-boundary-scan.pl index 36f7d3f..f4e4059 100755 --- a/openocd-jtag-boundary-scan.pl +++ b/openocd-jtag-boundary-scan.pl @@ -73,11 +73,26 @@ warn "# pin2io = ",dump( $pin2io ); #store \$pin2io, $bsdl_file . '.pin2io.storable'; store \$pin2io, $entity . '.pin2io.storable'; +my $pin_desc; +foreach my $pin_file ( glob "pins/$entity*.tsv" ) { + open(my $fh, '<', $pin_file); + while(<$fh>) { + chomp; + my ($pin,$desc, $bcm) = split(/\t+/,$_,3); + $pin_desc->{$pin} = $desc; + gpio::add_bcm_desc( $bcm => $desc ); + } + close($fh); + warn "# $pin_file ",dump($pin_desc); +} + +=for remove my @sort = sort { my $aa = $a; $aa =~ s/\D+//g; my $bb = $b; $bb =~ s/\D+//g; $aa <=> $bb } keys %$io2bit; warn "# sort = ",dump(@sort); +=cut sub bits { my $bits = shift; @@ -102,12 +117,25 @@ sub print_io { my $pin = ($#$pin2io/4) * $j + $i + 1; # columns my $io = $pin2io->[$pin]; my $o = $io2bit->{$io}->[0]; + 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, bits($b), bits($b ne $l ? $l : '') + + my $desc = $pin_desc->{$pin} || ''; + my $bits = bits($b); + if ( $b ne $l ) { + my @b = split(//, $bits); + my @l = split(//, bits($l)); + $bits = ''; + foreach ( 0 .. $#b ) { + $bits .= $b[$_] eq $l[$_] ? $b[$_] : "\e[33;7;1m$b[$_]\e[0m"; + } + } + + printf "%-3d %-3d %-5s %3s %-8s | ", $pin, $o, $io, $bits, $desc; } else { - printf "%-3d ... %-5s %3s %3s | ", $pin, $io, '', ''; + printf "%-3d ... %-5s %3s %-8s | ", $pin, $io, '', ''; } } print "\n"; @@ -138,6 +166,8 @@ sub bin2hex { #my $cmd; + + my $BSR; # first sample