added ISR transformer
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/OSTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/OSTransformer.xtend
index c184cd7..1599b37 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/OSTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/OSTransformer.xtend
@@ -83,7 +83,7 @@
 			
 			/*-Building cache for TaskScheduler <---> and SchedulerAssociation's */
 
-			cacheModel.buildTaskSchedulerAndSchedulerAssociationMap(amltMappingModel)
+			cacheModel.buildSchedulerAndSchedulerAssociationMap(amltMappingModel)
 
 			/*-Building cache for TaskScheduler <---> and TaskAllocation's */
 			
@@ -159,7 +159,7 @@
 					var AmltCacheModel amltCacheModel = customObjsStore.getInstance(AmltCacheModel)
 					
 					//TODO: Clarify this .. why to get SchedulerAllocation again when ISRAllocation is already present
-					var amltSchedulerAllocation = amltCacheModel.taskScheduler_SchedulerAllocationMap.get(
+					var amltSchedulerAllocation = amltCacheModel.scheduler_SchedulerAllocationMap.get(
 						amltInterruptController)
 					
 					if (amltSchedulerAllocation != null) {
@@ -314,7 +314,7 @@
 		}
 		/* ============ building Inchron CpuCore elements and associating to the Scheduler object ======================== */
 
-		var amltSchedulerAllocation = amltCacheModel.getTaskScheduler_SchedulerAllocationMap.get(amltTaskScheduler)
+		var amltSchedulerAllocation = amltCacheModel.getScheduler_SchedulerAllocationMap.get(amltTaskScheduler)
 
 		if (amltSchedulerAllocation != null) {
 
@@ -336,7 +336,7 @@
 		// get the appropriate SchedulerAssociation to identify on which Core this scheduler is mapped
 		var AmltCacheModel cacheModel = customObjsStore.getInstance(AmltCacheModel)
 
-		var amltChildSchedulerAllocation = cacheModel.getTaskScheduler_SchedulerAllocationMap.get(amltChildScheduler)
+		var amltChildSchedulerAllocation = cacheModel.getScheduler_SchedulerAllocationMap.get(amltChildScheduler)
 
 		if (amltChildSchedulerAllocation != null) {
 
@@ -420,7 +420,7 @@
 		
 		/* ============ building Inchron CpuCore elements and associating to the Scheduler object ======================== */
 
-		var amltChildSchedulerAllocation = amltCacheModel.getTaskScheduler_SchedulerAllocationMap.get(amltTaskScheduler)
+		var amltChildSchedulerAllocation = amltCacheModel.getScheduler_SchedulerAllocationMap.get(amltTaskScheduler)
 
 		if (amltChildSchedulerAllocation != null) {
 
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/mapping/MappingTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/mapping/MappingTransformer.xtend
index ff9a735..69f6287 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/mapping/MappingTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/mapping/MappingTransformer.xtend
@@ -48,7 +48,7 @@
 			 		
 			 		//TODO: Migration rule -> considering responsibility from the first TaskScheduler of this OS
 			 		
-			 		var amltSchedulerAllocation=cacheModel.taskScheduler_SchedulerAllocationMap.get(amlRootTaskSchedulers.get(0))
+			 		var amltSchedulerAllocation=cacheModel.scheduler_SchedulerAllocationMap.get(amlRootTaskSchedulers.get(0))
 			 		
 			 		amltSchedulerAllocation.responsibility.forEach[amltProcessingUnit|{
 			 			inchronRootIsrScheduler.cpuCores.add(cacheModel.getInchronCpuCore(amltProcessingUnit.name))
@@ -60,12 +60,14 @@
 			 		
 			 		inchronRootIsrScheduler.name=amltOS.interruptControllers.get(0).name
 			 		
-			 		var amltSchedulerAllocation=cacheModel.taskScheduler_SchedulerAllocationMap.get( amltOS.interruptControllers.get(0))
+			 		var amltSchedulerAllocation=cacheModel.scheduler_SchedulerAllocationMap.get( amltOS.interruptControllers.get(0))
 			 		
 			 		amltSchedulerAllocation.responsibility.forEach[amltProcessingUnit|{
 			 			inchronRootIsrScheduler.cpuCores.add(cacheModel.getInchronCpuCore(amltProcessingUnit.name))
 			 		}]
 			 		
+			 		cacheModel.addInchronScheduler_amltSchedulerMap(inchronRootIsrScheduler,amltOS.interruptControllers.get(0))
+			 		
 			 		}else{
 			 		//todo: validation rule
 			 	}
@@ -87,7 +89,7 @@
 						 		
 						 		parentISRScheduler.schedulables.add(inchronScheduler)
 						 		
-						 		var amltSchedulerAllocation=cacheModel.taskScheduler_SchedulerAllocationMap.get(amltTaskScheduler)
+						 		var amltSchedulerAllocation=cacheModel.scheduler_SchedulerAllocationMap.get(amltTaskScheduler)
 						 		
 						 		amltSchedulerAllocation.responsibility.forEach[amltProcessingUnit|{
 						 			inchronScheduler.cpuCores.add(cacheModel.getInchronCpuCore(amltProcessingUnit.name))
@@ -99,7 +101,7 @@
 						 			createInchronScheduler(amltChildTaskScheduler,inchronScheduler,cacheModel )
 						 		}
 						 		
-						 		cacheModel.addInchronScheduler_amltTaskSchedulerMap(inchronScheduler,amltTaskScheduler)
+						 		cacheModel.addInchronScheduler_amltSchedulerMap(inchronScheduler,amltTaskScheduler)
 		}
 		
 			/**
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ISRTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ISRTransformer.xtend
new file mode 100644
index 0000000..01e07a2
--- /dev/null
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/ISRTransformer.xtend
@@ -0,0 +1,14 @@
+package templates.m2m.sw
+
+import org.eclipse.app4mc.amalthea.model.ISR
+import templates.AbstractAmaltheaInchronTransformer
+
+class ISRTransformer extends AbstractAmaltheaInchronTransformer{
+	
+	public def create inchronModelFactory.createProcess createProcess(ISR  amltISR ){
+		
+		it.name=amltISR.name
+		
+		it.isr = true
+	}
+}
\ No newline at end of file
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/SWTransformer.xtend b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/SWTransformer.xtend
index 0775db0..2e8c8fe 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/SWTransformer.xtend
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/m2m/sw/SWTransformer.xtend
@@ -5,12 +5,15 @@
 import org.eclipse.app4mc.amalthea.model.SWModel
 import templates.AbstractAmaltheaInchronTransformer
 import templates.utils.AmltCacheModel
+import org.eclipse.app4mc.amalthea.model.TaskScheduler
+import org.eclipse.app4mc.amalthea.model.InterruptController
 
 class SWTransformer extends AbstractAmaltheaInchronTransformer {
 	
 	var AmltCacheModel cacheModel
 	
 	@Inject TaskTransformer taskTransformer
+	@Inject ISRTransformer isrTransformer
 	
 	public def transformSWModel(SWModel amltSwModel, Model inchronModel) {
 	
@@ -18,14 +21,16 @@
 		
 	  cacheModel=customObjsStore.getInstance(AmltCacheModel)
 	
-	  val inchronScheduler_amltTaskSchedulerMap=cacheModel.getAmltTaskSchedulerFromInchronSchedulerMap()
+	  val inchronScheduler_amltSchedulerMap=cacheModel.getInchronScheduler_amltSchedulerMap()
 	  
-	  inchronScheduler_amltTaskSchedulerMap.keySet.forEach[inchronScheduler|
+	  inchronScheduler_amltSchedulerMap.keySet.forEach[inchronScheduler|
 	  	{
-	  	var amltTaskScheduler=inchronScheduler_amltTaskSchedulerMap.get(inchronScheduler)
+	  	var amltScheduler=inchronScheduler_amltSchedulerMap.get(inchronScheduler)
 	  	
-	  	if(amltTaskScheduler !=null){
-	  		amltTaskScheduler.taskAllocations.forEach[amltTaskAllocation|{
+	  	if(amltScheduler !=null){
+	  		
+	  		if(amltScheduler instanceof TaskScheduler){
+	  			amltScheduler.taskAllocations.forEach[amltTaskAllocation|{
 	  			
 	  			var amltTask=amltTaskAllocation.task
 	  			
@@ -33,6 +38,14 @@
 	  			
 	  			inchronScheduler.schedulables.add(inchronProcess)
 	  		}]
+	  		}else if(amltScheduler instanceof InterruptController){
+	  			
+	  			amltScheduler.isrAllocations.forEach[amltISRAllocation|{
+	  				var amltISR=amltISRAllocation.isr
+	  				var inchronProcess=isrTransformer.createProcess(amltISR)
+	  				inchronScheduler.schedulables.add(inchronProcess)
+	  			}]
+	  		} 
 	  	}
 	  	}
 	  ]
diff --git a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/utils/AmltCacheModel.java b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/utils/AmltCacheModel.java
index 13ac05e..a7fa108 100644
--- a/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/utils/AmltCacheModel.java
+++ b/eclipse-tools/model-transformation/examples/amlt2inchron/org.eclipse.app4mc.transform.to.inchron.m2m/src/templates/utils/AmltCacheModel.java
@@ -50,13 +50,13 @@
 
 	private  Map<String,RtosConfig> inchronRtosConfigMap = new HashMap<>();
 
-	private  Map<com.inchron.realtime.root.model.Scheduler, TaskScheduler> inchronScheduler_amltTaskSchedulerMap = new HashMap<>();
+	private  Map<com.inchron.realtime.root.model.Scheduler, Scheduler> inchronScheduler_amltSchedulerMap = new HashMap<>();
 	
 	
 
 	private  Map<HwStructure, GenericSystem> mappingAmltMicroController_GenericSystem = new HashMap<>();
 			
-	private Map<Scheduler, SchedulerAllocation> taskScheduler_schedulerAllocationMap=new HashMap<Scheduler, SchedulerAllocation>();
+	private Map<Scheduler, SchedulerAllocation> scheduler_schedulerAllocationMap=new HashMap<Scheduler, SchedulerAllocation>();
 
 	private Map<Task, List<TaskAllocation>> tasks_TaskAllocationMap=new HashMap<Task, List<TaskAllocation>>();
 
@@ -142,7 +142,7 @@
 	}
 	
 	public Map<Scheduler, SchedulerAllocation> getTaskScheduler_schedulerAllocationMap() {
-		return taskScheduler_schedulerAllocationMap;
+		return scheduler_schedulerAllocationMap;
 	}
 
 
@@ -163,13 +163,13 @@
 		for (SchedulerAllocation schedulerAllocation : schedulerAllocations) {
 			
 			
-			taskScheduler_schedulerAllocationMap.put(schedulerAllocation.getScheduler(), schedulerAllocation);
+			scheduler_schedulerAllocationMap.put(schedulerAllocation.getScheduler(), schedulerAllocation);
 		}
 		
 	}
 	
 	
-	public void buildTaskSchedulerAndSchedulerAssociationMap(MappingModel mappingModel){
+	public void buildSchedulerAndSchedulerAssociationMap(MappingModel mappingModel){
 		
 		EList<SchedulerAllocation> schedulerAllocations = mappingModel.getSchedulerAllocation();
 		
@@ -178,7 +178,7 @@
 			
 			Scheduler scheduler = schedulerAllocation.getScheduler();
 			if(scheduler instanceof TaskScheduler){
-				taskScheduler_schedulerAllocationMap.put(scheduler, schedulerAllocation);
+				scheduler_schedulerAllocationMap.put(scheduler, schedulerAllocation);
 				
 			}else if(scheduler instanceof InterruptController){
 //				isr_schedulerAllocationMap.put(((InterruptController)scheduler).getISR, schedulerAllocation);
@@ -187,8 +187,8 @@
 		
 	}
 
-	public Map<Scheduler, SchedulerAllocation> getTaskScheduler_SchedulerAllocationMap() {
-		return taskScheduler_schedulerAllocationMap;
+	public Map<Scheduler, SchedulerAllocation> getScheduler_SchedulerAllocationMap() {
+		return scheduler_schedulerAllocationMap;
 	}
 
 	public Map<TaskScheduler, List<TaskAllocation>> getTaskScheduler_TaskAllocationMap() {
@@ -258,16 +258,16 @@
 	}
 	
 	
-	public void addInchronScheduler_amltTaskSchedulerMap( com.inchron.realtime.root.model.Scheduler inchronScheduler, TaskScheduler amltScheduler ) {
-		 inchronScheduler_amltTaskSchedulerMap.put(inchronScheduler, amltScheduler);
+	public void addInchronScheduler_amltSchedulerMap( com.inchron.realtime.root.model.Scheduler inchronScheduler, Scheduler amltScheduler ) {
+		 inchronScheduler_amltSchedulerMap.put(inchronScheduler, amltScheduler);
 	}
 	
-	public TaskScheduler getAmltTaskSchedulerFromInchronScheduler(com.inchron.realtime.root.model.Scheduler inchronScheduler) {
-		return inchronScheduler_amltTaskSchedulerMap.get(inchronScheduler);
+	public Scheduler getAmltSchedulerFromInchronScheduler(com.inchron.realtime.root.model.Scheduler inchronScheduler) {
+		return inchronScheduler_amltSchedulerMap.get(inchronScheduler);
 	}
 	
-	public Map<com.inchron.realtime.root.model.Scheduler, TaskScheduler>  getAmltTaskSchedulerFromInchronSchedulerMap() {
-		return inchronScheduler_amltTaskSchedulerMap ;
+	public Map<com.inchron.realtime.root.model.Scheduler, Scheduler>  getInchronScheduler_amltSchedulerMap() {
+		return inchronScheduler_amltSchedulerMap ;
 	}