From 592cd379275e0c0ffbe736d2f79cbcabeb3d4adb Mon Sep 17 00:00:00 2001
From: Andrea Enrici <andrea.enrici@nokia.com>
Date: Thu, 16 Apr 2015 10:26:44 +0000
Subject: [PATCH] corrected code generation for compilation. part II

---
 .../ctranslator/AdaifOperationMEC.java        | 62 ++++++++---------
 src/tmltranslator/ctranslator/Buffer.java     |  6 +-
 .../ctranslator/CpuOperationMEC.java          |  4 +-
 src/tmltranslator/ctranslator/CwaMEC.java     | 52 +++++++--------
 src/tmltranslator/ctranslator/CwlMEC.java     | 66 +++++++++----------
 src/tmltranslator/ctranslator/CwmMEC.java     | 58 ++++++++--------
 src/tmltranslator/ctranslator/CwpMEC.java     | 58 ++++++++--------
 src/tmltranslator/ctranslator/FepBuffer.java  |  2 +-
 src/tmltranslator/ctranslator/FftMEC.java     | 60 ++++++++---------
 .../ctranslator/InterleaverBuffer.java        | 22 +++----
 .../ctranslator/IntlOperationMEC.java         | 30 +++++----
 .../ctranslator/MappOperationMEC.java         | 30 ++++-----
 .../ctranslator/MapperBuffer.java             |  6 +-
 src/tmltranslator/ctranslator/SumMEC.java     | 32 ++++-----
 .../ctranslator/TMLCCodeGeneration.java       | 20 ++++--
 15 files changed, 258 insertions(+), 250 deletions(-)

diff --git a/src/tmltranslator/ctranslator/AdaifOperationMEC.java b/src/tmltranslator/ctranslator/AdaifOperationMEC.java
index d7a467f14b..6c408ee3a7 100644
--- a/src/tmltranslator/ctranslator/AdaifOperationMEC.java
+++ b/src/tmltranslator/ctranslator/AdaifOperationMEC.java
@@ -57,38 +57,38 @@ public class AdaifOperationMEC extends OperationMEC	{
 		exec_code = "adaif_do(&" + ctxName + ");" + CR;
 	
 		init_code =
-			"void init_" + ctxName + "( void )\t{" + CR + TAB +
+			"void init_" + ctxName.split("_ctx")[0] + "( void )\t{" + CR + TAB +
 			"adaif_ctx_init(&" + ctxName + ", (uintptr_t) adaif_mss );" + CR + TAB +
-			"adaif_set_tdd(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_st(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldt0(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldr0(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldt1(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldr1(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldt2(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldr2(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldt3(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_ldr3(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startt0(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopt0(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startr0(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopr0(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startt1(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopt1(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startr1(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopr1(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startt2(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopt2(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startr2(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopr2(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startt3(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopt3(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_startr3(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_stopr3(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_op(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_src(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_dst(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
-			"adaif_set_data(&" + ctxName + ", (uint64_t) /*USER TO DO: VALUE*/);" + CR + TAB +
+			"adaif_set_tdd(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_st(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldt0(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldr0(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldt1(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldr1(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldt2(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldr2(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldt3(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_ldr3(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startt0(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopt0(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startr0(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopr0(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startt1(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopt1(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startr1(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopr1(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startt2(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopt2(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startr2(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopr2(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startt3(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopt3(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_startr3(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_stopr3(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_op(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_src(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_dst(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"adaif_set_data(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"}" + CR;
 		cleanup_code = TAB + "adaif_ctx_cleanup( /*USER TODO*/ );";
 		context = "ADAIF_CONTEXT";
diff --git a/src/tmltranslator/ctranslator/Buffer.java b/src/tmltranslator/ctranslator/Buffer.java
index ab341e5a36..5943449e98 100755
--- a/src/tmltranslator/ctranslator/Buffer.java
+++ b/src/tmltranslator/ctranslator/Buffer.java
@@ -71,15 +71,15 @@ public class Buffer	{
 	public static String SP = " ";
 	public static String SC = ";";
 
-	protected static String USER_TO_DO = "/*USER TO DO */";
+	protected static String USER_TO_DO = "/* USER TODO: VALUE */";
 	protected String code = "VOID";
 	protected String name = "";
 	protected String type = "";
 	protected TMLTask task;
 	protected TMLPort port;
 	protected TMLCPLibArtifact artifact;
-	protected String baseAddress = "/* USER TO DO */";
-	protected String endAddress = "/* USER TO DO*/";
+	protected String baseAddress = "/* USER TODO: VALUE */";
+	protected String endAddress = "/* USER TODO: VALUE */";
 	protected ArrayList<String> bufferParameters;
 	
 	private String Context = "";
diff --git a/src/tmltranslator/ctranslator/CpuOperationMEC.java b/src/tmltranslator/ctranslator/CpuOperationMEC.java
index 9cc94a0ff1..ccfa6d051c 100644
--- a/src/tmltranslator/ctranslator/CpuOperationMEC.java
+++ b/src/tmltranslator/ctranslator/CpuOperationMEC.java
@@ -56,8 +56,8 @@ public class CpuOperationMEC extends OperationMEC	{
 		name = "CpuOperationMEC";
 		exec_code = TAB + CR + TAB + "/* USER TO DO */" + CR;
 		
-		init_code =	"/***** INIT " + ctxName + " *******/" + CR +
-								"void init_" + ctxName + "(void){" + CR + TAB + "/* USER TO DO */" + CR + "}";
+		init_code =	"/***** INIT " + ctxName.split("_ctx")[0] + " *******/" + CR +
+								"void init_" + ctxName.split("_ctx")[0] + "(void){" + CR + TAB + "/* USER TO DO */" + CR + "}";
 		cleanup_code = "/* USER TO DO */";
 		context = "EMBB_CONTEXT";
 	}
diff --git a/src/tmltranslator/ctranslator/CwaMEC.java b/src/tmltranslator/ctranslator/CwaMEC.java
index 642610e409..1f9869bf77 100644
--- a/src/tmltranslator/ctranslator/CwaMEC.java
+++ b/src/tmltranslator/ctranslator/CwaMEC.java
@@ -57,49 +57,49 @@ public class CwaMEC extends FepOperationMEC	{
 		exec_code = TAB + "/*firm instruction*/" + CR + TAB +
 			"fep_set_l(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ inSignalName + "].pBuff)->num_samples);" + CR + TAB +
 			"fep_set_qx(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ inSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bx(&"+ _ctxName + ", sig["+ inSignalName + "].roff + ((FEP_BUFFER_TYPE*)sig["+ inSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bx(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ inSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tx(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ inSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"fep_set_qy(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ ID1 + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_by(&"+ _ctxName + ", sig["+ ID1 + "].roff + ((FEP_BUFFER_TYPE*)sig["+ ID1 + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_by(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ ID1 + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_ty(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ ID1 + "].pBuff)->data_type);" + CR + TAB +
 			"fep_set_qz(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bz(&"+ _ctxName + ", sig["+ outSignalName + "].woff + ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bz(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"/*start execution*/" + CR + TAB +
 			"fep_do(&"+ _ctxName + ");" + CR;
 		
-		init_code ="/***** INIT "+ _ctxName + " *******/" + CR +
-			"void init_"+ _ctxName + "(void){" + CR + TAB +
+		init_code ="/***** INIT "+ _ctxName.split("_ctx")[0] + " *******/" + CR +
+			"void init_"+ _ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
 			"fep_ctx_init(&"+ _ctxName + ", (uintptr_t) fep_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
 			"fep_set_op(&"+ _ctxName + ", FEP_OP_CWA );" + CR + TAB +
 			"// X vector configuration => Zk=Y[Xi]" + CR + TAB +
-			"fep_set_wx(&"+ _ctxName + ",  (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_sx(&"+ _ctxName + ",  (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_nx(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_mx(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_px(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_dx(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_vrx(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_vix(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
+			"fep_set_wx(&"+ _ctxName + ",  (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sx(&"+ _ctxName + ",  (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nx(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mx(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_px(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dx(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vrx(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vix(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Y vector configuration" + CR + TAB +
-			"fep_set_wy(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_sy(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_ny(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_my(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_py(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_dy(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_vry(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_viy(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
+			"fep_set_wy(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sy(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ny(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_my(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_py(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dy(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vry(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_viy(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Z vector addressing configuration" + CR + TAB +
 			"fep_set_qz(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->bank);" + CR + TAB +
 			"fep_set_bz(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&"+ _ctxName + ", ((FEP_BUFFER_TYPE*)sig["+ outSignalName + "].pBuff)->data_type);" + CR + TAB +
-			"fep_set_wz(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_ri(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_sz(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_nz(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
-			"fep_set_mz(&"+ _ctxName + ", (uint64_t) /*USER TODO: VALUE*/);" + CR + TAB +
+			"fep_set_wz(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ri(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sz(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nz(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mz(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Operation configuration" + CR + TAB +
 			"fep_set_sma(&"+ _ctxName + ", (uint64_t) /* USER TODO: VALUE*/);" + CR + TAB +
 			"}" + CR;
diff --git a/src/tmltranslator/ctranslator/CwlMEC.java b/src/tmltranslator/ctranslator/CwlMEC.java
index d807395fc9..8a72180968 100755
--- a/src/tmltranslator/ctranslator/CwlMEC.java
+++ b/src/tmltranslator/ctranslator/CwlMEC.java
@@ -57,55 +57,55 @@ public class CwlMEC extends FepOperationMEC	{
 		exec_code = TAB + "/*firm instruction*/" + CR + TAB +
 			"fep_set_l(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->num_samples);" + CR + TAB +
 			"fep_set_qx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bx(&" + _ctxName + ", sig[" + inSignalName + "].roff + ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bz(&" + _ctxName + ", sig[" + outSignalName + "].woff + ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"/*start execution*/" + CR + TAB +
 			"fep_do(&" + _ctxName + ");" + CR;
 	
-		init_code ="/***** INIT " + _ctxName + " *******/" + CR +
-			"void init_" + _ctxName + "(void){" + CR + TAB +
+		init_code ="/***** INIT " + _ctxName.split("_ctx")[0] + " *******/" + CR +
+			"void init_" + _ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
 			"fep_ctx_init(&" + _ctxName + ", (uintptr_t) fep_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
 			"fep_set_op(&" + _ctxName + ", FEP_OP_CWL );" + CR + TAB +
 			"// X vector configuration => Zk=Y[Xi]" + CR + TAB +
-			"fep_set_wx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_nx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_mx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_px(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vix(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_wx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_px(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vix(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Y vector configuration" + CR + TAB +
-			"fep_set_by(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_qy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_my(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ny(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_py(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_wy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ty(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vry(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_by(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_qy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_my(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ny(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_py(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_wy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ty(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vry(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Z vector addressing configuration" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
 			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
-			"fep_set_wz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_nz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_mz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_wz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Operation configuration" + CR + TAB +
-			"fep_set_li(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ls(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ll(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_r(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ri(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ml(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sma(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_li(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ls(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ll(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_r(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ri(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ml(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"}" + CR;
 		cleanup_code = "fep_ctx_cleanup(&" + _ctxName + "_ctx);";
 	}
diff --git a/src/tmltranslator/ctranslator/CwmMEC.java b/src/tmltranslator/ctranslator/CwmMEC.java
index df8802b549..ca5a9b4365 100755
--- a/src/tmltranslator/ctranslator/CwmMEC.java
+++ b/src/tmltranslator/ctranslator/CwmMEC.java
@@ -57,51 +57,51 @@ public class CwmMEC extends FepOperationMEC	{
 		exec_code = TAB + "/*firm instruction*/" + CR +
 			"fep_set_l(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->num_samples);" + CR +
 			"fep_set_qx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->bank);" + CR +
-			"fep_set_bx(&" + _ctxName + ", sig[" + inSignalName + "].roff + ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR +
+			"fep_set_bx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR +
 			"fep_set_tx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->data_type);" + CR +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR +
-			"fep_set_bz(&" + _ctxName + ", sig[" + outSignalName + "].woff + ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR +
+			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR +
 			"/*start execution*/" + CR +
 			"fep_do(&" + _ctxName + ");" + CR;
 	
-		init_code ="/***** INIT " + _ctxName + " *******/" + CR +
-			"void init_" + _ctxName + "(void){" + CR + TAB +
+		init_code ="/***** INIT " + _ctxName.split("_ctx")[0] + " *******/" + CR +
+			"void init_" + _ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
 			"fep_ctx_init(&" + _ctxName + ", (uintptr_t) fep_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
 			"fep_set_op(&" + _ctxName + ",FEP_OP_CWM );" + CR + TAB +
 			"// X vector configuration => Zk=Y[Xi]" + CR + TAB +
-			"fep_set_r(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_wx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_nx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_mx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_px(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vix(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_r(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_wx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_px(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vix(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Y vector configuration" + CR + TAB +
-			"fep_set_by(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_qy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_my(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ny(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_py(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_wy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ty(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vry(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_by(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_qy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_my(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ny(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_py(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_wy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ty(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vry(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Z vector addressing configuration" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
 			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
-			"fep_set_wz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ri(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_nz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_mz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_wz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ri(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Operation configuration" + CR + TAB +
-			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: value*/);" + CR +
+			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE*/);" + CR +
 			"}" + CR;
 		cleanup_code = "fep_ctx_cleanup(&" + _ctxName + "_ctx);";
 	}
diff --git a/src/tmltranslator/ctranslator/CwpMEC.java b/src/tmltranslator/ctranslator/CwpMEC.java
index 3e2e0da36f..14147a0c6a 100755
--- a/src/tmltranslator/ctranslator/CwpMEC.java
+++ b/src/tmltranslator/ctranslator/CwpMEC.java
@@ -57,51 +57,51 @@ public class CwpMEC extends FepOperationMEC	{
 		exec_code = TAB + "/*firm instruction*/" + CR + TAB +
 			"fep_set_l(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->num_samples);" + CR + TAB +
 			"fep_set_qx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bx(&" + _ctxName + ", sig[" + inSignalName + "].roff + ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bz(&" + _ctxName + ", sig[" + outSignalName + "].woff + ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"/*start execution*/" + CR + TAB +
 			"fep_do(&" + _ctxName + ");" + CR;
 	
-		init_code ="/***** INIT " + _ctxName + " *******/" + CR +
-			"void init_" + _ctxName + "(void){" + CR + TAB +
+		init_code ="/***** INIT " + _ctxName.split("_ctx")[0] + " *******/" + CR +
+			"void init_" + _ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
 			"fep_ctx_init(&" + _ctxName + ", (uintptr_t) fep_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
 			"fep_set_op(&" + _ctxName + ",FEP_OP_CWP );" + CR + TAB +
 			"// X vector configuration => Zk=Y[Xi]" + CR + TAB +
-			"fep_set_wx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_nx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_mx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_px(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vix(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_wx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_px(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vix(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Y vector configuration" + CR + TAB +
-			"fep_set_by(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_qy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_my(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ny(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_py(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_wy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ty(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vry(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_by(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_qy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_my(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ny(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_py(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_wy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ty(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vry(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Z vector addressing configuration" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
 			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
-			"fep_set_wz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_nz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_mz(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_wz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Operation configuration" + CR + TAB +
-			"fep_set_r(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ri(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sma(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_r(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ri(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"}" + CR;
 		cleanup_code = "fep_ctx_cleanup(&" + _ctxName + "_ctx);";
 	}
diff --git a/src/tmltranslator/ctranslator/FepBuffer.java b/src/tmltranslator/ctranslator/FepBuffer.java
index 31e82e6eca..0c17b41e52 100755
--- a/src/tmltranslator/ctranslator/FepBuffer.java
+++ b/src/tmltranslator/ctranslator/FepBuffer.java
@@ -64,7 +64,7 @@ public class FepBuffer extends Buffer	{
 	protected static final String numSamplesType = "uint8_t";
 	
 	protected String baseAddressValue = USER_TO_DO;
-	protected static final String baseAddressType = "uint32_t*";
+	protected static final String baseAddressType = "uint64_t";
 	
 	protected String bankValue = USER_TO_DO;
 	protected static final String bankType = "uint8_t";
diff --git a/src/tmltranslator/ctranslator/FftMEC.java b/src/tmltranslator/ctranslator/FftMEC.java
index ca7e78fa1a..6d517ee9a2 100644
--- a/src/tmltranslator/ctranslator/FftMEC.java
+++ b/src/tmltranslator/ctranslator/FftMEC.java
@@ -56,51 +56,51 @@ public class FftMEC extends FepOperationMEC	{
 		exec_code = TAB + "/*firm instruction*/" + CR +
 			"fep_set_l(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->num_samples);" + CR + TAB +
 			"fep_set_qx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bx(&" + _ctxName + ", sig[" + inSignalName + "].roff + ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tx(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + inSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
-			"fep_set_bz(&" + _ctxName + ", sig[" + outSignalName + "].woff + ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
+			"fep_set_bz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
 			"/*start execution*/" + CR + TAB +
 			"fep_do(&" + _ctxName + ");" + CR;
 		
-		init_code ="/***** INIT " + _ctxName + " *******/" + CR +
-			"void init_" + _ctxName + "(void){" + CR + TAB +
-			"fep_ctx_init(&" + _ctxName + ", (uintptr_t) fep_mss );" + CR + TAB +
+		init_code ="/***** INIT " + _ctxName.split("_ctx")[0] + " *******/" + CR +
+			"void init_" + _ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
+			"fep_ctx_init(&" + _ctxName.split("_ctx")[0] + ", (uintptr_t) fep_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
 			"fep_set_op(&" + _ctxName + ", FEP_OP_FFT );" + CR + TAB +
-			"fep_set_r(&" + _ctxName + ", (uint64_t)/*USER TODO*/);" + CR + TAB +
+			"fep_set_r(&" + _ctxName + ", (uint64_t)/* USER TODO: VALUE */);" + CR + TAB +
 			"// X vector configuration => Zk=Y[Xi]" + CR + TAB +
-			"fep_set_wx(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_sx(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_nx(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_mx(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_px(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_dx(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_vix(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
+			"fep_set_wx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_px(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vix(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Y vector configuration" + CR + TAB +
-			"fep_set_by(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_qy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_my(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ny(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_sy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_py(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_wy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_ty(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_vry(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
-			"fep_set_dy(&" + _ctxName + ", (uint64_t) /*USER TODO: value*/);" + CR + TAB +
+			"fep_set_by(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_qy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_my(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ny(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_py(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_wy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ty(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vry(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dy(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Z vector addressing configuration" + CR + TAB +
 			"fep_set_qz(&" + _ctxName + ", (uint64_t) ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
 			"fep_set_bz(&" + _ctxName + ", (uint64_t) ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"fep_set_tz(&" + _ctxName + ", (uint64_t) ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->data_type);" + CR + TAB +
-			"fep_set_wz(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_ri(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_sz(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_nz(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
-			"fep_set_mz(&" + _ctxName + ", (uint64_t) /*USER TODO*/);" + CR + TAB +
+			"fep_set_wz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_ri(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mz(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Operation configuration" + CR + TAB +
-			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: value*/);" + CR + TAB +
+			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE*/);" + CR + TAB +
 			"}" + CR;
 		cleanup_code = "fep_ctx_cleanup(&" + _ctxName + "_ctx);";
 	}
diff --git a/src/tmltranslator/ctranslator/InterleaverBuffer.java b/src/tmltranslator/ctranslator/InterleaverBuffer.java
index 2a5ae32846..827af280d8 100644
--- a/src/tmltranslator/ctranslator/InterleaverBuffer.java
+++ b/src/tmltranslator/ctranslator/InterleaverBuffer.java
@@ -98,7 +98,7 @@ public class InterleaverBuffer extends Buffer	{
 
 	public static final String DECLARATION = "struct INTERLEAVER_BUFFER_TYPE {" + CR + TAB +
 																						packedBinaryInIntlType + SP + "packed_binary_input_mode" + SC + CR + TAB +
-																						widthIntlType + SP + "sample_width" + SC + CR + TAB +
+																						widthIntlType + SP + "samples_width" + SC + CR + TAB +
 																						bitInOffsetIntlType + SP + "bit_input_offset" + SC + CR + TAB +
 																						inputOffsetIntlType + SP + "input_offset" + SC + CR + TAB +
 																						//data out
@@ -123,17 +123,17 @@ public class InterleaverBuffer extends Buffer	{
 		if( bufferParameters != null )	{
 			retrieveBufferParameters();
 		}
-		s.append( TAB + name + ".packed_binary_input_mode = " + packedBinaryInIntlValue + SC + CR );
-		s.append( TAB + name + ".sample_width = " + SP + widthIntlValue + SC + CR );
-		s.append( TAB + name + ".bit_input_offset = " + SP + bitInOffsetIntlValue + SC + CR );
-		s.append( TAB + name + ".input_offset = " + SP + inputOffsetIntlValue + SC + CR );
+		s.append( TAB + name + ".packed_binary_input_mode = " + "(" + packedBinaryInIntlType + ")" + packedBinaryInIntlValue + SC + CR );
+		s.append( TAB + name + ".samples_width = " + SP + "(" + widthIntlType + ")" + widthIntlValue + SC + CR );
+		s.append( TAB + name + ".bit_input_offset = " + SP + "(" + bitInOffsetIntlType + ")" + bitInOffsetIntlValue + SC + CR );
+		s.append( TAB + name + ".input_offset = " + SP + "(" + inputOffsetIntlType + ")" + inputOffsetIntlValue + SC + CR );
 		//data out
-		s.append( TAB + name + ".packed_binary_output_mode = " + SP + packedBinaryOutIntlValue + SC + CR );
-		s.append( TAB + name + ".bit_output_offset = " + SP + bitOutOffsetIntlValue + SC + CR );
-		s.append( TAB + name + ".output_offset = " + SP + outputOffsetIntlValue + SC + CR );
+		s.append( TAB + name + ".packed_binary_output_mode = " + SP + "(" + packedBinaryOutIntlType + ")" + packedBinaryOutIntlValue + SC + CR );
+		s.append( TAB + name + ".bit_output_offset = " + SP + "(" + bitOutOffsetIntlType + ")" + bitOutOffsetIntlValue + SC + CR );
+		s.append( TAB + name + ".output_offset = " + SP + "(" + outputOffsetIntlType + ")" + outputOffsetIntlValue + SC + CR );
 		//permutation table
-		s.append( TAB + name + ".permutation_offset = " + SP + offsetPermIntlValue + SC + CR ); 
-		s.append( TAB + name + ".permutation_length = " + SP + lengthPermIntlValue + SC + CR );
+		s.append( TAB + name + ".permutation_offset = " + SP + "(" + offsetPermIntlType + ")" + offsetPermIntlValue + SC + CR ); 
+		s.append( TAB + name + ".permutation_length = " + SP + "(" + lengthPermIntlType + ")" + lengthPermIntlValue + SC + CR );
 		return s.toString();
 	}
 
@@ -141,7 +141,7 @@ public class InterleaverBuffer extends Buffer	{
 
 		StringBuffer s = new StringBuffer( super.toString() );
 		s.append( TAB2 + ".packed_binary_input_mode = " + packedBinaryInIntlValue + SC + CR );
-		s.append( TAB2 + ".sample_width = " + SP + widthIntlValue + SC + CR );
+		s.append( TAB2 + ".samples_width = " + SP + widthIntlValue + SC + CR );
 		s.append( TAB2 + ".bit_input_offset = " + SP + bitInOffsetIntlValue + SC + CR );
 		s.append( TAB2 + ".input_offset = " + SP + inputOffsetIntlValue + SC + CR );
 		//data out
diff --git a/src/tmltranslator/ctranslator/IntlOperationMEC.java b/src/tmltranslator/ctranslator/IntlOperationMEC.java
index 99bb6701b1..869907379d 100644
--- a/src/tmltranslator/ctranslator/IntlOperationMEC.java
+++ b/src/tmltranslator/ctranslator/IntlOperationMEC.java
@@ -57,21 +57,27 @@ public class IntlOperationMEC extends OperationMEC	{
 			"/*start execution*/" + CR + TAB +
 			"intl_do(&" + ctxName + ");" + CR;
 		
-		init_code ="/***** INIT " + ctxName + " *******/" + CR +
+		init_code ="/***** INIT " + ctxName.split("_ctx")[0] + " *******/" + CR +
 			"void init_" + ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
 			"intl_ctx_init(&" + ctxName + ", (uintptr_t) intl_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
-			"intl_set_lenm1( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->num_symbols), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_lba( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->lut_base_address), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_oba( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->output_base_address), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_iba( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->input_base_address), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_mult( /* USER TO DO */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_men( /* USER TO DO */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_sym( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->symmetrical_VALUE), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_bpsm1( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->num_bits_per_symbol), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_m( (((INTL_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->base_address), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_n( /* USER TO DO */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"intl_set_s( /* USER TO DO */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_sv(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_arm(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_arm(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_re(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_se(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_fe(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_pbo(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->packed_binary_output_mode));" + CR + TAB +
+			"intl_set_pbi(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->packed_binary_input_mode));" + CR + TAB +
+			"intl_set_widm1(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->samples_width));" + CR + TAB +
+			"intl_set_biof(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->bit_input_offset));" + CR + TAB +
+			"intl_set_boof(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->bit_output_offset));" + CR + TAB +
+			"intl_set_fz(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_fo(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"intl_set_iof(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->output_offset));" + CR + TAB +
+			"intl_set_oof(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->input_offset));" + CR + TAB +
+			"intl_set_pof(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->permutation_offset));" + CR + TAB +
+			"intl_set_lenm1(&" + ctxName + ", (((INTERLEAVER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->permutation_length));" + CR + TAB +
 			"}" + CR;
 		cleanup_code = "intl_ctx_cleanup(&" + ctxName + ");";
 		context = "INTL_CONTEXT";
diff --git a/src/tmltranslator/ctranslator/MappOperationMEC.java b/src/tmltranslator/ctranslator/MappOperationMEC.java
index 37615b923c..595a50df21 100644
--- a/src/tmltranslator/ctranslator/MappOperationMEC.java
+++ b/src/tmltranslator/ctranslator/MappOperationMEC.java
@@ -58,27 +58,21 @@ public class MappOperationMEC extends OperationMEC	{
 			"/*start execution*/" + CR + TAB +
 			"mapper_do(&" + ctxName + ");" + CR;
 		
-		init_code ="/***** INIT " + ctxName + " *******/" + CR +
+		init_code ="/***** INIT " + ctxName.split("_ctx")[0] + " *******/" + CR +
 			"void init_" + ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
 			"mapper_ctx_init(&" + ctxName + ", (uintptr_t) mapper_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
-			"mapper_set_sv( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_arm( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_arm( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_re( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_se( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_fe( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_pbo( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->packed_binary_output_mode), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_pbi( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->packed_binary_input_mode), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_widm1( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->samples_width), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_biof( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->bit_input_offset), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_boof( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->bit_output_offset), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_fz( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_fo( /* USER TO DO: VALUE */, (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_iof( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->output_offset), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_oof( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->input_offset), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_pof( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->permutation_offset), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
-			"mapper_set_lenm1( (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->permutation_length), (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"mapper_set_lenm1(&" + ctxName + ", (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->num_symbols));" + CR + TAB +
+			"mapper_set_lba(&" + ctxName + ", (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->lut_base_address));" + CR + TAB +
+			"mapper_set_oba(&" + ctxName + ", (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->output_base_address));" + CR + TAB +
+			"mapper_set_iba(&" + ctxName + ", (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->input_base_address));" + CR + TAB +
+			"mapper_set_mult(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"mapper_set_men(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"mapper_set_sym(&" + ctxName + ", (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->symmetrical_value));" + CR + TAB +
+			"mapper_set_bpsm1(&" + ctxName + ", (((MAPPER_BUFFER_TYPE*)sig[" + ID0 + "].pBuff)->num_bits_per_symbol));" + CR + TAB +
+			"mapper_set_m(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"mapper_set_n(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"mapper_set_s(&" + ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"}" + CR;
 		cleanup_code = "mapper_ctx_cleanup(&" + ctxName + ");";
 		context = "MAPPER_CONTEXT";
diff --git a/src/tmltranslator/ctranslator/MapperBuffer.java b/src/tmltranslator/ctranslator/MapperBuffer.java
index 9601445797..83e2678222 100644
--- a/src/tmltranslator/ctranslator/MapperBuffer.java
+++ b/src/tmltranslator/ctranslator/MapperBuffer.java
@@ -62,7 +62,7 @@ public class MapperBuffer extends Buffer	{
 
 	public static final int baseAddressDataInMappIndex = 2;
 	protected String baseAddressDataInMappValue = USER_TO_DO;
-	public static final String baseAddressDataInMappType = "uint16_t*";
+	public static final String baseAddressDataInMappType = "uint16_t";
 
 	public static final int bitsPerSymbolDataInMappIndex = 3;
 	protected String bitsPerSymbolDataInMappValue = USER_TO_DO;
@@ -76,12 +76,12 @@ public class MapperBuffer extends Buffer	{
 	//data out
 	public static final int baseAddressDataOutMappIndex = 5;
 	protected String baseAddressDataOutMappValue = USER_TO_DO;
-	public static final String baseAddressDataOutMappType = "uint16_t*";
+	public static final String baseAddressDataOutMappType = "uint16_t";
 	
 	//Look up table
 	public static final int baseAddressLUTMappIndex = 6;
 	protected String baseAddressLUTMappValue = USER_TO_DO;
-	public static final String baseAddressLUTMappType = "uint16_t*";
+	public static final String baseAddressLUTMappType = "uint16_t";
 	
 	public static final String DECLARATION = "struct MAPPER_BUFFER_TYPE {" + CR + TAB +
 																						numSamplesDataInMappType + SP + "num_symbols" + SC + CR + TAB +
diff --git a/src/tmltranslator/ctranslator/SumMEC.java b/src/tmltranslator/ctranslator/SumMEC.java
index b168bc297d..225c69a030 100644
--- a/src/tmltranslator/ctranslator/SumMEC.java
+++ b/src/tmltranslator/ctranslator/SumMEC.java
@@ -58,26 +58,26 @@ public class SumMEC extends FepOperationMEC	{
 			"fep_do(&" + _ctxName + ");" + CR;
 		
 		init_code = 
-			"void init_" + _ctxName + "(void){" + CR + TAB +
-			"fep_init(&" + _ctxName + ", (uintprt_t) fep_mss );" + CR + TAB +
+			"void init_" + _ctxName.split("_ctx")[0] + "(void){" + CR + TAB +
+			"fep_init(&" + _ctxName.split("_ctx")[0] + ", (uintprt_t) fep_mss );" + CR + TAB +
 			"// initialize context" + CR + TAB +
 			"fep_set_op(&" + _ctxName + ", FEP_OP_SUM );" + CR + TAB +
 			"// X vector configuration => Zk=Y[Xi]" + CR + TAB +
-			"fep_set_r(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_l(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_bx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_qx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_wx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_tx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_sx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_nx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_mx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_px(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_dx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
-			"fep_set_vix(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
+			"fep_set_r(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_l(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_bx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_qx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_wx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_tx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_sx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_nx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_mx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_px(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_dx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vrx(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
+			"fep_set_vix(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"// Operation configuration" + CR + TAB +
-			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: value */);" + CR + TAB +
+			"fep_set_sma(&" + _ctxName + ", (uint64_t) /* USER TODO: VALUE */);" + CR + TAB +
 			"fep_set_qs(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->bank);" + CR + TAB +
 			"fep_set_bs(&" + _ctxName + ", ((FEP_BUFFER_TYPE*)sig[" + outSignalName + "].pBuff)->base_address);" + CR + TAB +
 			"}" + CR;
diff --git a/src/tmltranslator/ctranslator/TMLCCodeGeneration.java b/src/tmltranslator/ctranslator/TMLCCodeGeneration.java
index df5121716e..fb895e6207 100755
--- a/src/tmltranslator/ctranslator/TMLCCodeGeneration.java
+++ b/src/tmltranslator/ctranslator/TMLCCodeGeneration.java
@@ -695,7 +695,11 @@ public class TMLCCodeGeneration	{
 							"#include <embb/intl.h>" + CR +
 							"#include <embb/mapper.h>" + CR +
 							"#include <embb/adaif.h>" + CR +
-							"#include <embb/memory.h>" + CR2;
+							"#include <embb/memory.h>" + CR2 +
+							"char fep_mss[0x10000];" + CR +
+							"char adaif_mss[0x10000];" + CR +
+							"char intl_mss[0x10000];" + CR +
+							"char mapper_mss[0x10000];" + CR2;
 		return s;
 	}
 
@@ -744,6 +748,7 @@ public class TMLCCodeGeneration	{
 						}
 						else	{	//for all the remaining operations
 							buffersString.append( "extern" + SP + inBuff.getType() + SP + inBuff.getName() + SC + CR );
+							buffersString.append( "extern" + SP + outBuff.getType() + SP + outBuff.getName() + SC + CR );
 							instructionsString.append( "extern" + SP + xTask.getOperationMEC().getContext() + SP + ctxName + SC + CR );
 						}
 					}
@@ -760,6 +765,7 @@ public class TMLCCodeGeneration	{
 						}
 						else	{	//for all the remaining operations
 							buffersString.append( inBuff.getType() + SP + inBuff.getName() + SC + CR );
+							buffersString.append( outBuff.getType() + SP + outBuff.getName() + SC + CR );
 							instructionsString.append( xTask.getOperationMEC().getContext() + SP + ctxName + SC + CR );
 						}
 					}
@@ -1178,6 +1184,8 @@ public class TMLCCodeGeneration	{
 				OperationMEC xTaskOperation = xTask.getOperationMEC();
 				OperationMEC fTaskOperation = fTask.getOperationMEC();
 				ctxName = op.getContextName();
+				/*TraceManager.addDev( "OPERATION: " + op.getName() );
+				TraceManager.addDev( "\t\t\tContext name: " + ctxName );*/
 				if( op.getInSignals().size() > 0 )	{
 					inSignalName = op.getInSignals().get(0).getName();
 				}
@@ -1292,7 +1300,7 @@ public class TMLCCodeGeneration	{
 			}
 		}
 		initFileString.append( "}" + CR2 );
-		initFileString.append( "void cleanup_CPs_context( void )\t{" + CR );
+		initFileString.append( "void cleanup_CPs_context( void )\t{" + CR + "/*" );
 		for( DataTransfer dt: dataTransfersList )	{
 			TMLCPLib tmlcplib = dt.getTMLCPLib();
 			CPMEC cpMEC = tmlcplib.getCPMEC();
@@ -1307,7 +1315,7 @@ public class TMLCCodeGeneration	{
 				initFileString.append( TAB + DoubleDmaMEC.Ctx_cleanup + "( &" + ctxName + " );" + CR );
 			}
 		}
-		initFileString.append( "}" + CR );
+		initFileString.append( "*/\n}" + CR );
 	}
 
 	private void generateInitRoutinesForCPs()	{
@@ -1320,17 +1328,17 @@ public class TMLCCodeGeneration	{
 			if( cpMEC instanceof CpuMemoryCopyMEC )	{
 				initFileString.append( "void init_" + name + "()\t{" + CR );
 				CpuMemoryCopyMEC mec = new CpuMemoryCopyMEC( ctxName, "", "", "", "" );
-				initFileString.append( TAB + mec.getInitCode() + "}" + CR2 );
+				initFileString.append( "//" + TAB + mec.getInitCode() + "}" + CR2 );
 			}
 			if( cpMEC instanceof SingleDmaMEC )	{
 				initFileString.append( "void init_" + name + "()\t{" + CR );
 				SingleDmaMEC mec = new SingleDmaMEC( ctxName );
-				initFileString.append( TAB + mec.getInitCode() + "}" + CR2 );
+				initFileString.append( "//" + TAB + mec.getInitCode() + "}" + CR2 );
 			}
 			if( cpMEC instanceof DoubleDmaMEC )	{
 				initFileString.append( "void init_" + name + "()\t{" + CR );
 				DoubleDmaMEC mec = new DoubleDmaMEC( ctxName );
-				initFileString.append( TAB + mec.getInitCode() + "}" + CR2 );
+				initFileString.append( "//" + TAB + mec.getInitCode() + "}" + CR2 );
 			}
 		}
 	}
-- 
GitLab