diff --git a/MPSoC/mutekh/arch/soclib/ldscript.cpp b/MPSoC/mutekh/arch/soclib/ldscript.cpp index af21628dbc0b4a3af509c2f219c1a3dadf80d93d..cb874fee26a63d320682de6282996324906def6f 100644 --- a/MPSoC/mutekh/arch/soclib/ldscript.cpp +++ b/MPSoC/mutekh/arch/soclib/ldscript.cpp @@ -118,26 +118,104 @@ vci_locks (RWAL): ORIGIN = 0xC0200000, LENGTH = 0x100 #if defined(DEPLOY_RAM9_NAME) DEPLOY_RAM9_NAME (RWAL): ORIGIN = DEPLOY_RAM9_ADDR, LENGTH = DEPLOY_RAM9_SIZE #endif -#if defined(CACHED_RAM3_NAME) - CACHED_RAM3_NAME (RWAL): ORIGIN = CACHED_RAM3_ADDR, LENGTH = CACHED_RAM3_SIZE +#if defined(DEPLOY_RAM10_NAME) + DEPLOY_RAM10_NAME (RWAL): ORIGIN = DEPLOY_RAM0_ADDR, LENGTH = DEPLOY_RAM0_SIZE #endif -#if defined(CACHED_RAM4_NAME) +#if defined(CACHED_RAM10_NAME) + CACHED_RAM10_NAME (RWAL): ORIGIN = CACHED_RAM0_ADDR, LENGTH = CACHED_RAM0_SIZE +#endif +#if defined(DEPLOY_RAM11_NAME) + DEPLOY_RAM11_NAME (RWAL): ORIGIN = DEPLOY_RAM1_ADDR, LENGTH = DEPLOY_RAM1_SIZE +#endif +#if defined(CACHED_RAM11_NAME) + CACHED_RAM1_NAME (RWAL): ORIGIN = CACHED_RAM1_ADDR, LENGTH = CACHED_RAM1_SIZE +#endif +#if defined(DEPLOY_RAM12_NAME) + DEPLOY_RAM12_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE +#endif +#if defined(CACHED_RAM12_NAME) + CACHED_RAM12_NAME (RWAL): ORIGIN = CACHED_RAM2_ADDR, LENGTH = CACHED_RAM2_SIZE +#endif +#if defined(DEPLOY_RAM13_NAME) + DEPLOY_RAM13_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE +#endif +#if defined(CACHED_RAM13_NAME) + CACHED_RAM13_NAME (RWAL): ORIGIN = CACHED_RAM3_ADDR, LENGTH = CACHED_RAM3_SIZE +#endif +#if defined(DEPLOY_RAM14_NAME) + DEPLOY_RAM13_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE +#endif +#if defined(CACHED_RAM14_NAME) CACHED_RAM4_NAME (RWAL): ORIGIN = CACHED_RAM4_ADDR, LENGTH = CACHED_RAM4_SIZE #endif -#if defined(CACHED_RAM5_NAME) - CACHED_RAM5_NAME (RWAL): ORIGIN = CACHED_RAM5_ADDR, LENGTH = CACHED_RAM5_SIZE +#if defined(DEPLOY_RAM15_NAME) + DEPLOY_RAM15_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE +#endif +#if defined(CACHED_RAM15_NAME) + CACHED_RAM15_NAME (RWAL): ORIGIN = CACHED_RAM5_ADDR, LENGTH = CACHED_RAM5_SIZE +#endif +#if defined(DEPLOY_RAM16_NAME) + DEPLOY_RAM16_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE #endif -#if defined(CACHED_RAM6_NAME) - CACHED_RAM6_NAME (RWAL): ORIGIN = CACHED_RAM6_ADDR, LENGTH = CACHED_RAM6_SIZE +#if defined(CACHED_RAM16_NAME) + CACHED_RAM16_NAME (RWAL): ORIGIN = CACHED_RAM6_ADDR, LENGTH = CACHED_RAM6_SIZE #endif -#if defined(CACHED_RAM7_NAME) - CACHED_RAM7_NAME (RWAL): ORIGIN = CACHED_RAM7_ADDR, LENGTH = CACHED_RAM7_SIZE +#if defined(DEPLOY_RAM17_NAME) + DEPLOY_RAM17_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE #endif -#if defined(CACHED_RAM8_NAME) +#if defined(CACHED_RAM17_NAME) + CACHED_RAM17_NAME (RWAL): ORIGIN = CACHED_RAM7_ADDR, LENGTH = CACHED_RAM7_SIZE +#endif +#if defined(DEPLOY_RAM18_NAME) + DEPLOY_RAM18_NAME (RWAL): ORIGIN = DEPLOY_RAM0_ADDR, LENGTH = DEPLOY_RAM0_SIZE +#endif +#if defined(CACHED_RAM18_NAME) CACHED_RAM8_NAME (RWAL): ORIGIN = CACHED_RAM8_ADDR, LENGTH = CACHED_RAM8_SIZE #endif -#if defined(CACHED_RAM9_NAME) - CACHED_RAM9_NAME (RWAL): ORIGIN = CACHED_RAM9_ADDR, LENGTH = CACHED_RAM9_SIZE +#if defined(DEPLOY_RAM19_NAME) + DEPLOY_RAM19_NAME (RWAL): ORIGIN = DEPLOY_RAM0_ADDR, LENGTH = DEPLOY_RAM0_SIZE +#endif +#if defined(CACHED_RAM19_NAME) + CACHED_RAM19_NAME (RWAL): ORIGIN = CACHED_RAM9_ADDR, LENGTH = CACHED_RAM9_SIZE +#endif +#if defined(DEPLOY_RAM20_NAME) + DEPLOY_RAM20_NAME (RWAL): ORIGIN = DEPLOY_RAM0_ADDR, LENGTH = DEPLOY_RAM0_SIZE +#endif +#if defined(CACHED_RAM20_NAME) + CACHED_RAM20_NAME (RWAL): ORIGIN = CACHED_RAM0_ADDR, LENGTH = CACHED_RAM0_SIZE +#endif +#if defined(DEPLOY_RAM21_NAME) + DEPLOY_RAM21_NAME (RWAL): ORIGIN = DEPLOY_RAM1_ADDR, LENGTH = DEPLOY_RAM1_SIZE +#endif +#if defined(CACHED_RAM21_NAME) + CACHED_RAM21_NAME (RWAL): ORIGIN = CACHED_RAM1_ADDR, LENGTH = CACHED_RAM1_SIZE +#endif +#if defined(DEPLOY_RAM22_NAME) + DEPLOY_RAM22_NAME (RWAL): ORIGIN = DEPLOY_RAM2_ADDR, LENGTH = DEPLOY_RAM2_SIZE +#endif +#if defined(CACHED_RAM22_NAME) + CACHED_RAM22_NAME (RWAL): ORIGIN = CACHED_RAM2_ADDR, LENGTH = CACHED_RAM2_SIZE +#endif +#if defined(DEPLOY_RAM23_NAME) + DEPLOY_RAM23_NAME (RWAL): ORIGIN = DEPLOY_RAM3_ADDR, LENGTH = DEPLOY_RAM3_SIZE +#endif +#if defined(DEPLOY_RAM24_NAME) + DEPLOY_RAM24_NAME (RWAL): ORIGIN = DEPLOY_RAM4_ADDR, LENGTH = DEPLOY_RAM4_SIZE +#endif +#if defined(DEPLOY_RAM25_NAME) + DEPLOY_RAM25_NAME (RWAL): ORIGIN = DEPLOY_RAM5_ADDR, LENGTH = DEPLOY_RAM5_SIZE +#endif +#if defined(DEPLOY_RAM26_NAME) + DEPLOY_RAM26_NAME (RWAL): ORIGIN = DEPLOY_RAM6_ADDR, LENGTH = DEPLOY_RAM6_SIZE +#endif +#if defined(DEPLOY_RAM27_NAME) + DEPLOY_RAM27_NAME (RWAL): ORIGIN = DEPLOY_RAM7_ADDR, LENGTH = DEPLOY_RAM7_SIZE +#endif +#if defined(DEPLOY_RAM28_NAME) + DEPLOY_RAM28_NAME (RWAL): ORIGIN = DEPLOY_RAM8_ADDR, LENGTH = DEPLOY_RAM8_SIZE +#endif +#if defined(DEPLOY_RAM29_NAME) + DEPLOY_RAM29_NAME (RWAL): ORIGIN = DEPLOY_RAM9_ADDR, LENGTH = DEPLOY_RAM9_SIZE #endif //fin ajoute DG } diff --git a/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java b/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java index a26fda217d75ede732ae5593b56637e67408503b..863b8e7dc2541c4187c7d6d09097b78eb7de982b 100755 --- a/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java +++ b/src/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java @@ -201,12 +201,14 @@ public class TasksAndMainGenerator { //for(AvatarChannel ar: avspec.getChannels()) { //for(AvatarChannel channel: ram.getChannels()){ for(AvatarRelation ar: avspec.getRelations()) {//DG 15.05.2017 + + for(int i=0; i<ar.nbOfSignals() ; i++) {//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++; - - - + d++; + } + } mainFile.appendToBeforeMainCode("#define base(arg) arg" + CR2 ); mainFile.appendToBeforeMainCode("typedef struct mwmr_s mwmr_t;" + CR2); @@ -216,7 +218,7 @@ 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); - } + } } @@ -227,13 +229,19 @@ public class TasksAndMainGenerator { mainFile.appendToHCode("/* Synchronous channels */" + CR); mainFile.appendToBeforeMainCode("/* Synchronous channels */" + CR); mainFile.appendToMainCode("/* Synchronous channels */" + CR); + for(AvatarRelation ar: avspec.getRelations()) { if (!ar.isAsynchronous()) { //ar.setId(j); - ar.setId(i);//DG 15.05.2017 - j++; - for(i=0; i<ar.nbOfSignals() ; i++) { + // ar.setId(i);//DG 15.05.2017 + //j++; + //i++; + for(i=0; i<ar.nbOfSignals() ; i++) { +ar.setId(i);//DG 15.05.2017 +//i++; + ar.setId(i);//DG 15.05.2017 + mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR); @@ -280,22 +288,23 @@ public class TasksAndMainGenerator { mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+ar.getId()+";" + CR2); - } + } } } } public void makeAsynchronousChannels() { if (avspec.ASynchronousExist()){ - // Create a synchronous channel per relation/signal + // Create an asynchronous channel per relation/signal mainFile.appendToHCode("/* Asynchronous channels */" + CR); mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR); mainFile.appendToMainCode("/* Asynchronous channels */" + CR); int j=0; for(AvatarRelation ar: avspec.getRelations()) { - ar.setId(j); j++;//DG + //ar.setId(j); j++;//DG if (ar.isAsynchronous()) { for(int i=0; i<ar.nbOfSignals() ; i++) { +ar.setId(i); i++;//DG 15.05.2017 mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR); diff --git a/src/ddtranslatorSoclib/toTopCell/Deployinfo.java b/src/ddtranslatorSoclib/toTopCell/Deployinfo.java index e7ed91391c2280a28d7f7677ba9d688d09d2b0b9..3f341d044007a16825a67f4efe327c471d8648d4 100755 --- a/src/ddtranslatorSoclib/toTopCell/Deployinfo.java +++ b/src/ddtranslatorSoclib/toTopCell/Deployinfo.java @@ -179,21 +179,25 @@ deployinfo = deployinfo + "#define DEPLOY_RAM" + ram.getNo_ram() + "_ADDR 0x" + for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { //if (!(ram.getChannels().isEmpty())){ // for (AvatarChannel channel : ram.getChannels()) { - //DG 15.05.2017 - + + //DG 15.05.2017 for (AvatarRelation relation : avspec.getRelations()) { //if (!(ram.getRelations().isEmpty())){ + // + for(int i=0; i<ar.nbOfSignals() ; i++) {//DG 15.05.2017 deployinfo_map = deployinfo_map +"\n .channel"+i+" : { \\" + CR; deployinfo_map = deployinfo_map + "*(section_channel"+i+ ")\\"+ CR; deployinfo_map=deployinfo_map+ "} > uram"+ram.getNo_ram()+"\\"+ CR; i++; } + } i=0; // for (AvatarChannel channel : ram.getChannels()) { for (AvatarRelation relation : avspec.getRelations()) { //DG 15.05.2017 + for(int i=0; i<ar.nbOfSignals() ; i++) {//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; @@ -201,9 +205,10 @@ deployinfo = deployinfo + "#define DEPLOY_RAM" + ram.getNo_ram() + "_ADDR 0x" + i++; } - } + } + } return deployinfo_map; - } + } public static String getProcInfo() {