diff --git a/src/main/java/tmltranslator/TMLMapping.java b/src/main/java/tmltranslator/TMLMapping.java index b9cd197396a5c6f48dfd4952615591bd9daea467..3f6da73d9a34131bc6938f3e6dd81e7dfe71ccb5 100755 --- a/src/main/java/tmltranslator/TMLMapping.java +++ b/src/main/java/tmltranslator/TMLMapping.java @@ -581,16 +581,33 @@ public class TMLMapping<E> { } public int getNbOfMemoriesOfChannel(TMLChannel _ch) { + int n = 0; int cpt = 0; for (TMLElement elt : mappedcommelts) { if (elt == _ch) { HwCommunicationNode node = oncommnodes.get(cpt); if (node instanceof HwMemory) { - cpt++; + n++; } } + cpt++; } - return cpt; + return n; + } + + public String getStringOfMemoriesOfChannel(TMLChannel _ch) { + String ret = ""; + int cpt = 0; + for (TMLElement elt : mappedcommelts) { + if (elt == _ch) { + HwCommunicationNode node = oncommnodes.get(cpt); + if (node instanceof HwMemory) { + ret += node.getName() + " ; "; + } + } + cpt ++; + } + return ret; } public TMLElement getCommunicationElementByName(String _name) { diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java index 14c761a3cb90de4641d63250f5fe1954da0586a9..4a24879478ea583620a2a3eb8d313fd0dadfd392 100755 --- a/src/main/java/tmltranslator/TMLSyntaxChecking.java +++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java @@ -792,7 +792,8 @@ public class TMLSyntaxChecking { int n = mapping.getNbOfMemoriesOfChannel(ch); if (n > 1) { // Too many memories - addError(null, null, TOO_MANY_MEMORIES + ": " + ch.getName(), TMLError.ERROR_STRUCTURE); + String s = mapping.getStringOfMemoriesOfChannel(ch); + addError(null, null, TOO_MANY_MEMORIES + ": " + ch.getName() + " mapped in " + s, TMLError.ERROR_STRUCTURE); } } } diff --git a/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java b/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java index 720ad5ac6fa7cd5f25a636d30415b6c99ddfca8f..a209cc411021199ba315cd0b32dd19dad8bd5488 100644 --- a/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java +++ b/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java @@ -123,8 +123,8 @@ public class MappedSystemCTask { long sizeh = new File(path + reference + DOTH).length(); long sizecpp = new File(path + reference + DOTCPP).length(); - TraceManager.addDev("Computing length of " + path + reference + DOTH + ": " + sizeh); - TraceManager.addDev("Computing length of " + path + reference + DOTCPP + ": " + sizeh); + //TraceManager.addDev("Computing length of " + path + reference + DOTH + ": " + sizeh); + //TraceManager.addDev("Computing length of " + path + reference + DOTCPP + ": " + sizeh); if (sizeh == getHCode().length()) { diff --git a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java index 9052b9aa9e0b8e90d15d33245ac8644aa09df104..990cadb5f7d071123389afba48ebea8cc4637d3c 100644 --- a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java +++ b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java @@ -830,6 +830,16 @@ public class TranslatedRouter<E> { tmlmap.addCommToHwCommNode(newChannel, mem); } + HwBus bus = tmlmap.getTMLArchitecture().getHwBusByName(myHwExecutionNode.getName() + "__bus"); + if (bus != null) { + //tmlmap.addCommToHwCommNode(newChannel, bus); + /*if (mem != null) { + HwLink link = new HwLink(myHwExecutionNode.getName() + "__linkFromMemOri"); + tmlmap.getTMLArchitecture().addHwLink(link); + link.setNodes(bus, mem); + }*/ + } + // Must now modify the source app TMLAttribute pktlen = new TMLAttribute("pktlen", "pktlen", new TMLType(TMLType.NATURAL), "0"); t.addAttributeIfApplicable(pktlen); @@ -946,6 +956,16 @@ public class TranslatedRouter<E> { tmlmap.addCommToHwCommNode(newChannel, mem); } + HwBus bus = tmlmap.getTMLArchitecture().getHwBusByName(myHwExecutionNode.getName() + "__bus"); + if (bus != null) { + tmlmap.addCommToHwCommNode(newChannel, bus); + /*if (mem != null) { + HwLink link = new HwLink(myHwExecutionNode.getName() + "__linkFromMemDest"); + tmlmap.getTMLArchitecture().addHwLink(link); + link.setNodes(bus, mem); + }*/ + } + // Must now modify the source app TMLAttribute pktlen = new TMLAttribute("pktlen", "pktlen", new TMLType(TMLType.NATURAL), "0"); t.addAttributeIfApplicable(pktlen); @@ -1003,7 +1023,7 @@ public class TranslatedRouter<E> { public void postProcessing() { TraceManager.addDev("Post processing of " + myHwExecutionNode.getName()); - TMLArchitecture arch = tmlmap.getTMLArchitecture(); + /*TMLArchitecture arch = tmlmap.getTMLArchitecture(); // Split multicores in mono cores if (myHwExecutionNode instanceof HwCPU) { @@ -1031,7 +1051,7 @@ public class TranslatedRouter<E> { } } - } + }*/ }