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