FreeCalypso > hg > tcs211-c139
diff chipsetsw/layer1/tools/gen_intram.pl @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chipsetsw/layer1/tools/gen_intram.pl Mon Jun 01 03:24:05 2015 +0000 @@ -0,0 +1,69 @@ +#!/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; + + # 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"; + last; + } + else + { + printf output_stream "%s\n", $_; + # DEBUG + #print "Copied lines - $_\n"; + } + } + + } + } + +close input_stream; +close output_stream;