You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CubeSatSim/libs/libmf/buildiar/genrregs.pl

33 lines
809 B

#!/usr/bin/perl
my %regs;
while (<>) {
next unless /^\s*SFRX\(\s*([A-Za-z0-9_]+)\s*,\s*(0x(?:[0-9A-Fa-f])+)\s*\)/;
my $name = $1;
my $addr = hex($2);
next if $addr < 0x4000 || $addr > 0x5fff;
#printf "%s 0x%x\n", $name, $addr;
${$regs{$addr}}{$name} = 1;
}
# foreach $addr (sort keys(%regs)) {
# printf "0x%x:\n", $addr;
# foreach $name (sort keys(%{$regs{$addr}})) {
# printf "%s 0x%x\n", $name, $addr;
# }
# }
printf "\tMODULE radioregs\n\n", $addr;
foreach $addr (sort keys(%regs)) {
foreach $name (sort keys(%{$regs{$addr}})) {
printf "\tPUBWEAK %s\n", $name;
}
printf "\n\tASEGN XDATA_AN:XDATA:ROOT,%05XH\n", $addr;
foreach $name (sort keys(%{$regs{$addr}})) {
printf "%s:\n", $name;
}
printf "\tDATA8\n\tDS 1\n\n";
}
print "\tEND\n\n";

Powered by TurnKey Linux.