Skip to content
Snippets Groups Projects
Commit 422c2568 authored by Sebastian Reiser's avatar Sebastian Reiser
Browse files

updated to Amalthea 0.9.7

parent 20d6aa5d
No related branches found
Tags APP4MC_0.9.7
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<commonElements/>
<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">
<commonElements />
<swModel>
<tasks name="taskA" stimuli="periodic_10us?type=PeriodicStimulus" multipleTaskActivationLimit="0">
<callGraph>
<items xsi:type="am:RunnableCall" runnable="runnableA?type=Runnable"/>
</callGraph>
<activityGraph>
<items xsi:type="am:RunnableCall" runnable="runnableA?type=Runnable" />
</activityGraph>
</tasks>
<tasks name="taskB" stimuli="periodic_10us?type=PeriodicStimulus" multipleTaskActivationLimit="0">
<callGraph>
<items xsi:type="am:RunnableCall" runnable="runnableB?type=Runnable"/>
</callGraph>
<activityGraph>
<items xsi:type="am:RunnableCall" runnable="runnableB?type=Runnable" />
</activityGraph>
</tasks>
<runnables name="runnableA" callback="false" service="false">
<callGraph>
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="20"/>
<default xsi:type="am:DiscreteValueConstant" value="20" />
</items>
<items xsi:type="am:RunnableCall" runnable="runnableA2?type=Runnable"/>
<items xsi:type="am:RunnableCall" runnable="runnableA2?type=Runnable" />
<items xsi:type="am:ChannelSend" data="ChannelA?type=Channel" elements="1">
<transmissionPolicy chunkProcessingTicks="0" transmitRatio="1.0"/>
<transmissionPolicy chunkProcessingTicks="0" transmitRatio="1.0" />
</items>
</callGraph>
</activityGraph>
</runnables>
<runnables name="runnableA2" callback="false" service="false">
<callGraph>
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="10"/>
<default xsi:type="am:DiscreteValueConstant" value="10" />
</items>
</callGraph>
</activityGraph>
</runnables>
<runnables name="runnableB" callback="false" service="false">
<callGraph>
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="5"/>
<default xsi:type="am:DiscreteValueConstant" value="5" />
</items>
</callGraph>
</activityGraph>
</runnables>
<labels name="" constant="false" bVolatile="false"/>
<labels name="" constant="false" bVolatile="false" />
<channels name="ChannelA" defaultElements="0" maxElements="0">
<size value="2" unit="B"/>
<size value="2" unit="B" />
</channels>
</swModel>
<hwModel>
<definitions xsi:type="am:ProcessingUnitDefinition" name="processingUnitDefinitionA" puType="CPU" features="featureCategoryA/hwFeatureA?type=HwFeature"/>
<definitions xsi:type="am:ProcessingUnitDefinition" name="processingUnitDefinitionA" puType="CPU" features="featureCategoryA/hwFeatureA?type=HwFeature" />
<definitions xsi:type="am:MemoryDefinition" name="MemDef" memoryType="SRAM">
<size value="512" unit="kB"/>
<accessLatency xsi:type="am:DiscreteValueConstant" value="1"/>
<size value="512" unit="kB" />
<accessLatency xsi:type="am:DiscreteValueConstant" value="1" />
</definitions>
<featureCategories name="featureCategoryA" description="" featureType="performance">
<features name="hwFeatureA" value="2.0"/>
<features name="hwFeatureB" value="3.0"/>
<features name="hwFeatureA" value="2.0" />
<features name="hwFeatureB" value="3.0" />
</featureCategories>
<structures name="ECU1" structureType="System">
<structures name="uC1" structureType="Microcontroller">
<modules xsi:type="am:ProcessingUnit" name="Core1ECU1" frequencyDomain="clock?type=FrequencyDomain" definition="processingUnitDefinitionA?type=ProcessingUnitDefinition">
<ports name="Port1" bitWidth="32" priority="0" portType="initiator" portInterface="custom"/>
<ports name="Port1" bitWidth="32" priority="0" portType="initiator" portInterface="custom" />
<accessElements name="AC_MainMem" destination="MainMemECU1?type=Memory">
<readLatency xsi:type="am:DiscreteValueConstant" value="5"/>
<writeLatency xsi:type="am:DiscreteValueConstant" value="7"/>
<readLatency xsi:type="am:DiscreteValueConstant" value="5" />
<writeLatency xsi:type="am:DiscreteValueConstant" value="7" />
</accessElements>
</modules>
<modules xsi:type="am:Memory" name="MainMemECU1" frequencyDomain="clock?type=FrequencyDomain" definition="MemDef?type=MemoryDefinition">
<ports name="MemPort" bitWidth="32" priority="0" portType="responder" portInterface="custom"/>
<ports name="MemPort" bitWidth="32" priority="0" portType="responder" portInterface="custom" />
</modules>
</structures>
</structures>
<domains xsi:type="am:FrequencyDomain" name="clock" clockGating="false">
<defaultValue value="200.0" unit="MHz"/>
<defaultValue value="200.0" unit="MHz" />
</domains>
</hwModel>
<osModel>
<operatingSystems name="OS1">
<taskSchedulers name="scheduler1"/>
<taskSchedulers name="scheduler1" />
</operatingSystems>
</osModel>
<stimuliModel>
<stimuli xsi:type="am:EventStimulus" name="" triggeringEvents="no-name?type=ChannelEvent"/>
<stimuli xsi:type="am:EventStimulus" name="" triggeringEvents="no-name?type=ChannelEvent" />
<stimuli xsi:type="am:PeriodicStimulus" name="periodic_10us">
<recurrence value="10" unit="us"/>
<recurrence value="10" unit="us" />
</stimuli>
</stimuliModel>
<eventModel>
<events xsi:type="am:ChannelEvent" name="" eventType="send"/>
<events xsi:type="am:ChannelEvent" name="" eventType="send" />
</eventModel>
<mappingModel>
<schedulerAllocation scheduler="scheduler1?type=TaskScheduler" responsibility="Core1ECU1?type=ProcessingUnit" executingPU="Core1ECU1?type=ProcessingUnit"/>
<taskAllocation task="taskA?type=Task" scheduler="scheduler1?type=TaskScheduler" affinity="Core1ECU1?type=ProcessingUnit"/>
<taskAllocation task="taskB?type=Task" scheduler="scheduler1?type=TaskScheduler" affinity="Core1ECU1?type=ProcessingUnit"/>
<memoryMapping abstractElement="ChannelA?type=Channel" memory="MainMemECU1?type=Memory" memoryPositionAddress="0x45"/>
<schedulerAllocation scheduler="scheduler1?type=TaskScheduler" responsibility="Core1ECU1?type=ProcessingUnit" executingPU="Core1ECU1?type=ProcessingUnit" />
<taskAllocation task="taskA?type=Task" scheduler="scheduler1?type=TaskScheduler" affinity="Core1ECU1?type=ProcessingUnit" />
<taskAllocation task="taskB?type=Task" scheduler="scheduler1?type=TaskScheduler" affinity="Core1ECU1?type=ProcessingUnit" />
<memoryMapping abstractElement="ChannelA?type=Channel" memory="MainMemECU1?type=Memory" memoryPositionAddress="0x45" />
</mappingModel>
</am:Amalthea>
......@@ -119,8 +119,7 @@ class AmaltheaTransformer extends Model2TextRootTransformer {
interconnectECU1->bindConnection(core2interconnect, "inInterconnect");
interconnectECU1->bindConnection(interconnect2mem, "outInterconnect");
get_MainMemECU1()->bindConnection(interconnect2mem, "inMem");
get_MainMemECU1()->bindConnection(interconnect2mem, "inMem");
/* HW_access_elems */
HwAccessElement mainMemC1Access;
......
......@@ -16,7 +16,7 @@
package transformersSwModel
import com.google.inject.Inject
import org.eclipse.app4mc.amalthea.model.CallGraphItem
import org.eclipse.app4mc.amalthea.model.ActivityGraphItem
import org.eclipse.app4mc.amalthea.model.ChannelAccess
import org.eclipse.app4mc.amalthea.model.ChannelReceive
import org.eclipse.app4mc.amalthea.model.ChannelSend
......@@ -25,7 +25,7 @@ import org.eclipse.app4mc.amalthea.model.Ticks
import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
import transformers.TranslationUnit
class CallGraphItemTransformer extends AbstractTransformer {
class ActivityGraphItemTransformer extends AbstractTransformer {
@Inject
ModeSwitchTransformer modeSwitchTransformer
@Inject
......@@ -35,7 +35,7 @@ class CallGraphItemTransformer extends AbstractTransformer {
@Inject
ChannelAccessTransformer channelAccessTransformer
dispatch def TranslationUnit transform(CallGraphItem callGraphItem) {
dispatch def TranslationUnit transform(ActivityGraphItem activityGraphItem) {
return new TranslationUnit()
}
......
......@@ -30,7 +30,7 @@ class RunnableTransformer extends AbstractTransformer {
@Inject
FileHandler fileHandler
@Inject
CallGraphItemTransformer callGraphItemTransformer
ActivityGraphItemTransformer callGraphItemTransformer
def getModuleName(Runnable runnable) {
return SWModelTransformer.getModulePath() + "/runnables/" + runnable.name
......@@ -52,7 +52,7 @@ class RunnableTransformer extends AbstractTransformer {
val runnableItemIncludes = new LinkedHashSet<String>
val runnableItemCalls = new LinkedList<String>
runnable?.callGraph?.items.forEach [ item |
runnable?.activityGraph?.items.forEach [ item |
val tmp = callGraphItemTransformer.transform(item)
if (!tmp.module.isNullOrEmpty && !(it.module.equals(tmp.module)))
runnableItemIncludes.add(tmp.module)
......
......@@ -30,7 +30,7 @@ class TaskTransformer extends AbstractTransformer {
@Inject
FileHandler fileHandler
@Inject
CallGraphItemTransformer callGraphItemTransformer
ActivityGraphItemTransformer callGraphItemTransformer
@Inject
StimulusTransformer stimulusTransformer
......@@ -56,7 +56,7 @@ class TaskTransformer extends AbstractTransformer {
val runnableItemCalls = new LinkedList<String>
val stimuliCalls = new LinkedList<String>
task?.callGraph?.items.forEach [ item |
task?.activityGraph?.items.forEach [ item |
val tmp = callGraphItemTransformer.transform(item)
if (!tmp.module.isNullOrEmpty && !(it.module.equals(tmp.module)))
includes.add(tmp.module)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment