From 96cd9c7ece72630c36c1de5fef25e521d7b2f51b Mon Sep 17 00:00:00 2001 From: Daniela Genius <genius@debussy.soc.lip6.fr> Date: Mon, 15 May 2017 16:12:09 +0200 Subject: [PATCH] modification channel mappings --- .../toSoclib/TasksAndMainGenerator.java | 17 ++++++++++++----- .../toTopCell/Deployinfo.java | 19 ++++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java b/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java index 79516bf91a..a26fda217d 100755 --- a/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java +++ b/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java @@ -199,12 +199,13 @@ public class TasksAndMainGenerator { //for(AvatarRelation ar: avspec.getRelations()) { for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { //for(AvatarChannel ar: avspec.getChannels()) { - for(AvatarChannel channel: ram.getChannels()){ + //for(AvatarChannel channel: ram.getChannels()){ + for(AvatarRelation ar: avspec.getRelations()) {//DG 15.05.2017 mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel d++; - } - } + + mainFile.appendToBeforeMainCode("#define base(arg) arg" + CR2 ); @@ -215,6 +216,9 @@ public class TasksAndMainGenerator { mainFile.appendToMainCode("pthread_attr_t *attr_t = malloc(sizeof(pthread_attr_t));" +CR); mainFile.appendToMainCode("pthread_attr_init(attr_t);" + CR ); mainFile.appendToMainCode("pthread_mutex_init(&__mainMutex, NULL);" +CR2); + } + + } } public void makeSynchronousChannels() { @@ -226,7 +230,9 @@ public class TasksAndMainGenerator { for(AvatarRelation ar: avspec.getRelations()) { if (!ar.isAsynchronous()) { - ar.setId(j); j++; + //ar.setId(j); + ar.setId(i);//DG 15.05.2017 + j++; for(i=0; i<ar.nbOfSignals() ; i++) { mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); @@ -273,9 +279,10 @@ public class TasksAndMainGenerator { mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+ar.getId()+";" + CR); mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+ar.getId()+";" + CR2); + } } - } + } } public void makeAsynchronousChannels() { diff --git a/src/ddtranslatorSoclib/toTopCell/Deployinfo.java b/src/ddtranslatorSoclib/toTopCell/Deployinfo.java index 1610ec7793..e7ed91391c 100755 --- a/src/ddtranslatorSoclib/toTopCell/Deployinfo.java +++ b/src/ddtranslatorSoclib/toTopCell/Deployinfo.java @@ -73,12 +73,16 @@ package ddtranslatorSoclib.toTopCell; import ddtranslatorSoclib.*; import java.util.*; +import avatartranslator.AvatarRelation; +import avatartranslator.AvatarSpecification; public class Deployinfo { private final static String CR = "\n"; private final static String CR2 = "\n\n"; + public static AvatarSpecification avspec;//DG 15.05.2017 + /* for the moment, this is specific to PowerPC */ public static String getDeployInfo() { @@ -173,8 +177,12 @@ deployinfo = deployinfo + "#define DEPLOY_RAM" + ram.getNo_ram() + "_ADDR 0x" + deployinfo_map += "#define MAP_A\\" + CR; for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { - if (!(ram.getChannels().isEmpty())){ - for (AvatarChannel channel : ram.getChannels()) { + //if (!(ram.getChannels().isEmpty())){ + // for (AvatarChannel channel : ram.getChannels()) { + //DG 15.05.2017 + + for (AvatarRelation relation : avspec.getRelations()) { + //if (!(ram.getRelations().isEmpty())){ deployinfo_map = deployinfo_map +"\n .channel"+i+" : { \\" + CR; deployinfo_map = deployinfo_map + "*(section_channel"+i+ ")\\"+ CR; @@ -183,7 +191,9 @@ deployinfo = deployinfo + "#define DEPLOY_RAM" + ram.getNo_ram() + "_ADDR 0x" + } i=0; - for (AvatarChannel channel : ram.getChannels()) { +// for (AvatarChannel channel : ram.getChannels()) { + for (AvatarRelation relation : avspec.getRelations()) { +//DG 15.05.2017 deployinfo_map = deployinfo_map +"\n .lock"+i+" : { \\" + CR; deployinfo_map = deployinfo_map + "*(section_lock"+i+ ")\\"+ CR; // if(use_vcilocks) deployinfo_map=deployinfo_map+ "} > vci_locks\\"+ CR; @@ -191,8 +201,7 @@ deployinfo = deployinfo + "#define DEPLOY_RAM" + ram.getNo_ram() + "_ADDR 0x" + i++; } - } - } + } return deployinfo_map; } -- GitLab