#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;
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";
#my $cmd;
+
+
my $BSR;
# first sample