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

📄 gen_intram.pl

📁 MMI层OBJ不能完全编译
💻 PL
字号:
#!/usr/bin/perl


if ($#ARGV == -1)
  {
  die "\nSyntax is gen_intram <C file (with extension)>\n\n";
  }

$#ARGV == 0 or die "Incorrect number of parameters";

$c_input_file = @ARGV[0];

# -------------------------------------------------------------------------------
# Remove .c extension and create the new filename for the processed file

@file_name = split /\.c/, $c_input_file;
$c_output_file = join ('', @file_name, "_intram.c");

print "Output file: $c_output_file\n";

# -------------------------------------------------------------------------------
# Generates the C file for internal RAM

open input_stream, $c_input_file
  or die "\n\n Input C file $C_input_file cannot be opened: $!\n";

open(output_stream,'>'.$c_output_file)
  or die "\n\nCan't open output file $C_output_file: $!";		

printf output_stream "/* ----- WARNING - File automatically generated - Do not modify it ----- */\n\n\n\n\n";

$d_internal_found = 0;

# Search for data
while(<input_stream>)
  {
  chomp $_;

  # Search for start comment
  if ( / *#pragma .*DUPLICATE_FOR_INTERNAL_RAM_START/ )
    {
    # DEBUG
    #print "Found begin of string\n";
    $d_internal_found = 1;

    if (/ *#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_START/)
      {
        printf output_stream "#if (GSM_IDLE_RAM != 0)\n";
        # check if GSM IDLE FEATURE
      }

    if (/ *#pragma GSM_IDLE2_DUPLICATE_FOR_INTERNAL_RAM_START/)
      {
        printf output_stream "#if (GSM_IDLE_RAM == 2)\n";
        # check if GSM IDLE FEATURE
      }

    # Found begin internal RAM code, then output up to the end string
    while(<input_stream>)
      {
      chomp $_;
      if ( / *#pragma .*DUPLICATE_FOR_INTERNAL_RAM_END/ )
        {
        # Found end of the internal RAM code, then search for another one
        # DEBUG
        #print "Found end of string\n";

        if (/ *#pragma GSM_IDLE_DUPLICATE_FOR_INTERNAL_RAM_END/)
          {
            printf output_stream "#endif\n";
            # check if GSM IDLE FEATURE         
          }
        last;
        }
      else
        {
        printf output_stream "%s\n", $_;
        # DEBUG
        #print "Copied lines - $_\n";
        }
      }

    }
  }

close input_stream;
close output_stream;

⌨️ 快捷键说明

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