diff --git a/src/tmltranslator/ctranslator/BaseBuffer.java b/src/tmltranslator/ctranslator/BaseBuffer.java
index f4533f2d38e0323ff882cc61f7c958ff38d3dafb..d4660b382ef95ed57302b1cd9a831c38386ee5f0 100755
--- a/src/tmltranslator/ctranslator/BaseBuffer.java
+++ b/src/tmltranslator/ctranslator/BaseBuffer.java
@@ -56,12 +56,6 @@ public class BaseBuffer extends Buffer	{
 	protected int base_address_value;
 	private String Context = "embb_mapper_context";
 
-	/*public BaseBuffer( String _name, String _type, int _base_address_value )	{
-		name = _name;
-		base_address_value = _base_address_value;
-		base_address = _type + SP + POINTER + "base_address" + SP + "=" + SP + base_address_value + SC;
-	}*/
-
 	public String getContext()	{
 		return Context;
 	}
@@ -73,14 +67,19 @@ public class BaseBuffer extends Buffer	{
 
 	@Override public String getInitCode()	{
 		StringBuffer s = new StringBuffer();
-		s.append( TAB + name + ".baseAddress = " + baseAddress + SC + CR );
+		s.append( TAB + name + ".base_address = /* USER TO DO */;" + CR );
 		return s.toString();
 	}
 	
 	public String toString()	{
 
 		StringBuffer s = new StringBuffer( super.toString() );
-		s.append( TAB2 + "baseAddress = " + baseAddress + SC + CR );
+		if( bufferParameters != null )	{
+			s.append( TAB2 + "base_address = " + bufferParameters.get(1) + SC + CR );
+		}
+		else	{
+			s.append( TAB2 + "base_address = /* USER TO DO */;" + CR );
+		}
 		return s.toString();
 	}
 }	//End of class
diff --git a/src/tmltranslator/ctranslator/Buffer.java b/src/tmltranslator/ctranslator/Buffer.java
index b25bf237b9b59e3cf3f4a1c032eaa84d73cb554e..cfed6b846ba09508de1bb86f4aedf8be6dac9339 100755
--- a/src/tmltranslator/ctranslator/Buffer.java
+++ b/src/tmltranslator/ctranslator/Buffer.java
@@ -75,7 +75,7 @@ public class Buffer	{
 	protected TMLCPLibArtifact artifact;
 	protected String baseAddress = "/* USER TO DO */";
 	protected String endAddress = "/* USER TO DO*/";
-	protected ArrayList<String> mappingParameters;
+	protected ArrayList<String> bufferParameters;
 	
 	private String Context = "";
 
@@ -146,6 +146,6 @@ public class Buffer	{
 	}
 
 	public void addMappingParameters( ArrayList<String> params )	{
-		mappingParameters = params;
+		bufferParameters = params;
 	}
 }	//End of class
diff --git a/src/tmltranslator/ctranslator/FepBuffer.java b/src/tmltranslator/ctranslator/FepBuffer.java
index ad05ad0e3218855b66d858e336d70a3864b5f27b..3cdd12b2ab950f66ca996a11d39bd8e66747adfc 100755
--- a/src/tmltranslator/ctranslator/FepBuffer.java
+++ b/src/tmltranslator/ctranslator/FepBuffer.java
@@ -76,21 +76,30 @@ public class FepBuffer extends BaseBuffer	{
 	}
 
 	@Override public String getInitCode()	{
+
 		StringBuffer s = new StringBuffer();
-		s.append( TAB + name + ".length = /* USER TO DO */;" + CR );
-		s.append( TAB + name + ".baseAddress = " + baseAddress + SC + CR );
-		s.append( TAB + name + ".bank = /* USER TO DO */;" + CR );
-		s.append( TAB + name + ".dataType = /* USER TO DO */;" + CR );
+		if( bufferParameters != null )	{
+			s.append( TAB + name + ".num_samples = " + bufferParameters.get(1) + SC + CR );
+			s.append( TAB + name + ".base_address = " + bufferParameters.get(2) + SC + CR );
+			s.append( TAB + name + ".bank = " + bufferParameters.get(3) + SC + CR );
+			s.append( TAB + name + ".data_type = " + bufferParameters.get(4) + SC + CR );		
+		}
+		else	{
+			s.append( TAB + name + ".num_samples = /* USER TO DO */;" + CR );
+			s.append( TAB + name + ".base_address = /* USER TO DO */;" + CR );
+			s.append( TAB + name + ".bank = /* USER TO DO */;" + CR );
+			s.append( TAB + name + ".data_type = /* USER TO DO */;" + CR );
+		}
 		return s.toString();
 	}
 
 	public String toString()	{
 
 		StringBuffer s = new StringBuffer( super.toString() );
-		s.append( TAB2 + "length = /* USER TO DO */;" + CR );
-		s.append( TAB2 + "baseAddress = " + baseAddress + SC + CR );
+		s.append( TAB2 + "num_samples = /* USER TO DO */;" + CR );
+		s.append( TAB2 + "base_address = /* USER TO DO */;" + CR );
 		s.append( TAB2 + "bank = /* USER TO DO */;" + CR );
-		s.append( TAB2 + "dataType = /* USER TO DO */;" + CR );
+		s.append( TAB2 + "data_type = /* USER TO DO */;" + CR );
 		return s.toString();
 	}
 }	//End of class
diff --git a/src/tmltranslator/ctranslator/MMBuffer.java b/src/tmltranslator/ctranslator/MMBuffer.java
index 8878b64fe77d957c5dd77116c368a5d86e51c178..f4cda87d1bb991a3726d9c149d34c553bbd1af94 100644
--- a/src/tmltranslator/ctranslator/MMBuffer.java
+++ b/src/tmltranslator/ctranslator/MMBuffer.java
@@ -78,15 +78,21 @@ public class MMBuffer extends BaseBuffer	{
 	@Override public String getInitCode()	{
 		StringBuffer s = new StringBuffer();
 		s.append( TAB + name + ".num_samples = /* USER TO DO */;" + CR );
-		s.append( TAB + name + ".baseAddress = " + baseAddress + SC + CR );
+		s.append( TAB + name + ".base_address = /* USER TO DO */;" + CR );
 		return s.toString();
 	}
 
 	public String toString()	{
 
 		StringBuffer s = new StringBuffer( super.toString() );
-		s.append( TAB2 + "num_samples = /* USER TO DO */;" + CR );
-		s.append( TAB2 + "baseAddress = " + baseAddress + SC + CR );
+		if( bufferParameters != null )	{
+			s.append( TAB2 + "num_samples = " + bufferParameters.get(1) + SC + CR );
+			s.append( TAB2 + "base_address = " + bufferParameters.get(2) + SC + CR );
+		}
+		else	{
+			s.append( TAB2 + "num_samples = /* USER TO DO */" + SC + CR );
+			s.append( TAB2 + "base_address = /* USER TO DO */" + SC + CR );
+		}
 		return s.toString();
 	}	
 }	//End of class
diff --git a/src/tmltranslator/ctranslator/MapperBuffer.java b/src/tmltranslator/ctranslator/MapperBuffer.java
index c969b76269839b2f9c8fb5a86f16208d7f33e92c..2af9bb12b031e3f0b14886884050fb070e8c233d 100644
--- a/src/tmltranslator/ctranslator/MapperBuffer.java
+++ b/src/tmltranslator/ctranslator/MapperBuffer.java
@@ -82,8 +82,8 @@ public class MapperBuffer extends BaseBuffer	{
 
 	@Override public String getInitCode()	{
 		StringBuffer s = new StringBuffer();
-		s.append( TAB + name + ".length = /* USER TO DO */;" + CR );
-		s.append( TAB + name + ".baseAddress = " + baseAddress + SC + CR );
+		s.append( TAB + name + ".num_samples = /* USER TO DO */;" + CR );
+		s.append( TAB + name + ".base_ddress = /* USER TO DO */;" + CR );
 		s.append( TAB + name + ".num_samples = /* USER TO DO */;" + CR );
 		s.append( TAB + name + ".bits_per_symbol = /* USER TO DO */;" + CR );
 		s.append( TAB + name + ".simmetrical_value = /* USER TO DO */;" + CR );
@@ -93,11 +93,20 @@ public class MapperBuffer extends BaseBuffer	{
 	public String toString()	{
 
 		StringBuffer s = new StringBuffer( super.toString() );
-		s.append( TAB2 + "length = /* USER TO DO */;" + CR );
-		s.append( TAB2 + "baseAddress = " + baseAddress + SC + CR );
-		s.append( TAB2 + "num_samples = /* USER TO DO */;" + CR );
-		s.append( TAB2 + "bits_per_symbol = /* USER TO DO */;" + CR );
-		s.append( TAB2 + "symmetrical_value = /* USER TO DO */;" + CR );
+		if( bufferParameters != null )	{
+			s.append( TAB2 + "num_samples = " + bufferParameters.get(1) + SC + CR );
+			s.append( TAB2 + "bases_address = " + bufferParameters.get(2) + SC + CR );
+			s.append( TAB2 + "num_samples = "+ bufferParameters.get(3) + SC + CR );
+			s.append( TAB2 + "bits_per_symbol = " + bufferParameters.get(4) + SC + CR );
+			s.append( TAB2 + "symmetrical_value = " + bufferParameters.get(5) + SC + CR );
+		}
+		else	{
+			s.append( TAB2 + "num_samples = /* USER TO DO */;" + CR );
+			s.append( TAB2 + "base_address = /* USER TO DO */;" + CR );
+			s.append( TAB2 + "num_samples = /* USER TO DO */;" + CR );
+			s.append( TAB2 + "bits_per_symbol = /* USER TO DO */;" + CR );
+			s.append( TAB2 + "symmetrical_value = /* USER TO DO */;" + CR );
+		}
 		return s.toString();
 	}
 	
diff --git a/src/tmltranslator/ctranslator/TMLCCodeGeneration.java b/src/tmltranslator/ctranslator/TMLCCodeGeneration.java
index d01125c1d054be96a9e6688f1ed112c26d40f59e..144b7c610bbc5447770bb0d6db13ae9b2f305279 100755
--- a/src/tmltranslator/ctranslator/TMLCCodeGeneration.java
+++ b/src/tmltranslator/ctranslator/TMLCCodeGeneration.java
@@ -659,12 +659,12 @@ public class TMLCCodeGeneration	{
 	private String generateCodeForPrototypes()	{
 		String s = 	"/**** prototypes *****/" + CR +
 								"extern int " + applicationName + "_exec(void);" + CR +
-								"extern void buffers_init(void);" + CR +
+								"extern void init_buffers(void);" + CR +
 								"extern bool exit_rule(void);" + CR +
 								"extern void register_operations(void);" + CR +
 								"extern void register_dataTransfers(void);" + CR +
 								"extern void register_fire_rules(void);" + CR +
-								"extern void signals_init();" + CR +
+								"extern void init_signals();" + CR +
 								"extern void init_operations(void);" + CR +
 								"extern void init_CPs(void);" + CR +
 								"extern void cleanup_operations_context(void);" + CR2;
@@ -808,8 +808,8 @@ public class TMLCCodeGeneration	{
 							"register_operations();" + CR + TAB +
 							"register_dataTransfers();" + CR + TAB +
 							"register_fire_rules();" + CR + TAB +
-							"buffers_init();" + CR + TAB +
-							"signals_init();" + CR + TAB +
+							"init_buffers();" + CR + TAB +
+							"init_signals();" + CR + TAB +
 							"init_operations();" + CR + TAB +
 							"init_CPs();" + CR2 + TAB +
 							"/********* INIT PREX OPs signals ********/" + CR +
@@ -1096,8 +1096,8 @@ public class TMLCCodeGeneration	{
 									"char *src_out_dat;" + CR +
 									"char *dma1_out_dat;" + CR2 );		
 		initFileString.append( buffersAndInstructionsDeclaration( false ) + CR2 );
-		initFileString.append( CR + initializeApplication() + CR2 );
-		initFileString.append( initializeSignals() + CR );
+		generateCodeToInitializeBuffers();
+		generateCodeToInitializeSignals();
 		initFileString.append( "/**** init code ****/" + CR );
 
 		//Only for SDR operations
@@ -1246,34 +1246,32 @@ public class TMLCCodeGeneration	{
 		}
 	}
 
-	private String initializeApplication()	{
+	private void generateCodeToInitializeBuffers()	{
 
-		StringBuffer s = new StringBuffer( "void buffers_init()\t{" + CR );
+		initFileString.append( "void init_buffers()\t{" + CR );
 
 		for( Buffer buff: buffersList )	{
-			s.append( buff.getInitCode() + CR );
+			initFileString.append( buff.getInitCode() + CR );
 		}
 
-		s.append( "}" + CR );
-		return s.toString();
+		initFileString.append( "}" + CR2 );
 	}
 
-	private String initializeSignals()	{
+	private void generateCodeToInitializeSignals()	{
 
-		StringBuffer s = new StringBuffer( "void signals_init()\t{" + CR );
+		initFileString.append( "void init_signals()\t{" + CR );
 		for( Signal sig: signalsList )	{
-			s.append( TAB + "sig[" + sig.getName() + "].f = false;" + CR );
-			s.append( TAB + "sig[" + sig.getName() + "].roff = /*USER TO DO*/;" + CR );
-			s.append( TAB + "sig[" + sig.getName() + "].woff = /*USER TO DO*/;" + CR );
+			initFileString.append( TAB + "sig[" + sig.getName() + "].f = false;" + CR );
+			initFileString.append( TAB + "sig[" + sig.getName() + "].roff = /*USER TO DO*/;" + CR );
+			initFileString.append( TAB + "sig[" + sig.getName() + "].woff = /*USER TO DO*/;" + CR );
 			Buffer buff = getBufferFromSignal( sig );
 			if( buff != null )	{
-				s.append( TAB + "sig[" + sig.getName() + "].pBuff = (" + buff.getType() + "*)" + SP + buff.getName() + SC + CR2 );
+				initFileString.append( TAB + "sig[" + sig.getName() + "].pBuff = (" + buff.getType() + "*)" + SP + buff.getName() + SC + CR2 );
 			}
 			else	{
-				s.append( TAB + "sig[" + sig.getName() + "].pBuff = /* USER TO DO */" + SC + CR2 );
+				initFileString.append( TAB + "sig[" + sig.getName() + "].pBuff = /* USER TO DO */" + SC + CR2 );
 			}
 		}
-		return s.toString() + "}" + CR;
 	}
 
 	private Buffer getBufferFromSignal( Signal sig )	{