⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utah-inliner.pl

📁 Develop Zigbee network real-time Os
💻 PL
字号:
#!/usr/bin/perl -wuse strict;my $avr_vectors="--add_entry __vector_0 --add_entry __vector_1 --add_entry __vector_2 --add_entry __vector_3 --add_entry __vector_4 --add_entry __vector_5 --add_entry __vector_6 --add_entry __vector_7 --add_entry __vector_8 --add_entry __vector_9 --add_entry __vector_10 --add_entry __vector_11 --add_entry __vector_12 --add_entry __vector_13 --add_entry __vector_14 --add_entry __vector_15 --add_entry __vector_16 --add_entry __vector_17 --add_entry __vector_18 --add_entry __vector_19 --add_entry __vector_20 --add_entry __vector_21 --add_entry __vector_22 --add_entry __vector_23 --add_entry __vector_24 --add_entry __vector_25 --add_entry __vector_26 --add_entry __vector_27 --add_entry __vector_28 --add_entry __vector_29 --add_entry __vector_30 --add_entry __vector_31 --add_entry __vector_32 --add_entry __vector_33 --add_entry __vector_34 --add_entry __vector_35";my $cc2430_vectors="--add_entry __vector_0 --add_entry __vector_1 --add_entry __vector_2 --add_entry __vector_3 --add_entry __vector_4 --add_entry __vector_5 --add_entry __vector_6 --add_entry __vector_7 --add_entry __vector_8 --add_entry __vector_9 --add_entry __vector_10 --add_entry __vector_11 --add_entry __vector_12 --add_entry __vector_13 --add_entry __vector_14 --add_entry __vector_15 --add_entry __vector_16 --add_entry __vector_17";my $msp_vectors="--add_entry sig_DACDMA_VECTOR --add_entry sig_PORT2_VECTOR --add_entry sig_USART1TX_VECTOR --add_entry sig_USART1RX_VECTOR --add_entry sig_PORT1_VECTOR --add_entry sig_TIMERA1_VECTOR --add_entry sig_TIMERA0_VECTOR --add_entry sig_ADC_VECTOR --add_entry sig_USART0TX_VECTOR --add_entry sig_USART0RX_VECTOR --add_entry sig_WDT_VECTOR --add_entry sig_COMPARATORA_VECTOR --add_entry sig_TIMERB1_VECTOR --add_entry sig_TIMERB0_VECTOR --add_entry sig_NMI_VECTOR --add_entry sig_UART0RX_VECTOR --add_entry sig_UART0TX_VECTOR";sub usage () {  print "\nusage: utah-inliner [options] filename.c\n";  print "\n";  print "Options:\n";  print "\n";  print "  --linux (default)  Use the linux executable\n";  print "  --cygwin           Use the cygwin executable\n";  print "\n";  print "  --avr (default)    Target an avr machine\n";  print "  --msp              Target an msp machine\n";  print "  --8051             Target an 8051 machine\n";  print "  --native           Target an x86 machine\n";  print "\n";  print "  --auto (default)   Inline functions marked for inlining\n";  print "  --smart            Use smart inlining heuristics\n";  print "  --clean            Cleans file up during inlining\n";  print "                     Cleaner assumes it can see the whole program\n";  print "  --shorten          Shorten temporary variable names\n";  print "\n";  print "  --nolowerconst     Do not lower constants (such as sizeof)\n";  print "  --noprintline      Do not print original locations in output\n";  print "  --help             Print this help menu\n";  print "\n";  print "Inline a single file. Result is output to filename.inlined.c\n";  print "This is a wrapper script for simplistic and easy use.\n";  print "\n";  die;}my $vectors = $avr_vectors;my $type = "avr";my $machine = "linux";my $inlining = "--inline-auto";my $clean = "";my $shorten = "";my $input;my $output = "";my $lines = "";my $fold = "";my $flag = 0;my $path = "";my $cilly_args = "";foreach my $arg (@ARGV) {  # executing machine #########################################################  if ($arg eq "--linux") {    $machine = "linux";    next;  }  if ($arg eq "--cygwin") {    $machine = "cygwin";    next;  }  # destination type ##########################################################  if ($arg eq "--msp") {    $vectors = $msp_vectors;    $type = "msp";    next;  }  if ($arg eq "--avr") {    $vectors = $avr_vectors;    $type = "avr";    next;  }  if ($arg eq "--8051") {    $vectors = $cc2430_vectors;    $type = "8051";    next;  }  if ($arg eq "--native") {    $vectors = "";    $type = "native";    next;  }  #############################################################################  if ($arg eq "--auto") {    $inlining = "--inline-auto";    next;  }  if ($arg eq "--smart") {    $inlining = "--inline-smart";    next;  }  if ($arg eq "--clean") {    $clean = "--inline-cleanup";    next;  }  if ($arg eq "--shorten") {    $shorten = "--inline-shorten";    next;  }  #############################################################################  if ($arg eq "--nolowerconst") {    $fold = "--noLowerConstants";    next;  }  if ($arg eq "--noprintline") {    $lines = "--noPrintLn";    next;  }  if ($arg =~ m/^(([^-]+.*)(\.\S))$/) {    $input = $1;    if ($output eq "") { 	$output = $2 . ".inlined.c";    }    next;  }  if ($arg =~ /--out=(.*)/) {      $output = $1;      next;  }  if ($arg =~ /--cilly-path=(.*)/) {    $path = $1;    next;  }  if ($arg eq "--help") {    usage ();  }  $cilly_args = $cilly_args . " " . $arg}usage() if (!defined($input));if (!($path =~ /.*\/$/)) {    $path = $path . "/";}#--forceRLArgEvalmy $command =  $path . "cilly.utah.${machine}.${type}.valueset.may.exe" ." ".  "${fold} ${lines} --out ${output} " . " " .  "--doinliner ${inlining} ${clean} ${shorten}" . " " .  "${vectors} $cilly_args ${input}";print "\nActual command executed: ${command}\n\n";system $command;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -