| #!/usr/bin/perl -w | 
 | open IN,"<$ARGV[0]"; | 
 |  | 
 | print <<EOF | 
 | #include "../../defs.h" | 
 | #include "../../stub.c" | 
 | EOF | 
 | ; | 
 |  | 
 | my $header=<IN>; | 
 | my @l=split "->",$header; | 
 | my @ins=sort split " ",$l[0]; | 
 | my @outs=sort split " ",$l[1]; | 
 | my %map=(); | 
 |  | 
 | my $reg=0; | 
 | my @io=(); | 
 | print " printf(\"Initializing the Inputs of the cell:\\n\");\n"; | 
 | foreach(@ins) | 
 | { | 
 |   print "  reg_mprj_io_$reg = GPIO_MODE_MGMT_STD_OUTPUT; // $_\n"; | 
 |   $io[$reg>>5]|=1<<($reg&31); | 
 |   $reg++; | 
 | } | 
 | print " printf(\"Initializing the Outputs of the cell:\\n\");\n"; | 
 | foreach(@outs) | 
 | { | 
 |   $map{$_}=$reg++; | 
 |  | 
 |   print "  reg_mprj_io_$reg = GPIO_MODE_USER_STD_OUTPUT; // $_\n"; | 
 | } | 
 |  | 
 | print "  reg_mprj_xfer=1;\n"; | 
 | print "  while (reg_mprj_xfer == 1);\n"; | 
 |  | 
 | foreach(0 .. 3) | 
 | { | 
 |   print "reg_la".$_."_ena=".sprintf("0x%08X",$io[$_]).";\n" if(defined($io[$_])); | 
 | } | 
 |  | 
 | my $counter=0; | 
 | print " printf(\"Starting the tests:\\n\");\n"; | 
 |  | 
 | while(<IN>) | 
 | { | 
 |   last if(m/^function:/); | 
 |   @l=split " ",$_; | 
 |   my $if=0; | 
 |   foreach(@l) | 
 |   { | 
 |     if(m/(\w+)=(\d)/) | 
 |     { | 
 |       print "  assert(reg_la".$map{$1}."_data==$2); //$1\n"; | 
 |     } | 
 |     else | 
 |     { | 
 |       print "  reg_la".$if."_data=$_; //$ins[$if]\n"; | 
 |     } | 
 |     $if++; | 
 |   } | 
 |   print "  printf(\"Test $counter successful\\n\");\n\n"; | 
 |  | 
 |   $counter++; | 
 | } |