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 ) {