blob: 6b8052896ec4cfe4aee8aa22d555735ad15cd6ae [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:am="http://app4mc.eclipse.org/amalthea/1.2.0">
<swModel>
<tasks xmi:id="Task_5MS?type=Task" name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
<activityGraph>
<items xsi:type="am:RunnableCall" runnable="runnable_dispatch?type=Runnable"/>
</activityGraph>
</tasks>
<runnables xmi:id="runnable_dispatch?type=Runnable" name="runnable_dispatch" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="100"/>
</items>
<items xsi:type="am:ModeSwitch">
<entries name="case_A">
<items xsi:type="am:RunnableCall" runnable="runnable_a?type=Runnable"/>
<condition>
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="A" relation="EQUAL"/>
</condition>
</entries>
<entries name="case_B_or_C">
<items xsi:type="am:ModeSwitch">
<entries name="case_b">
<items xsi:type="am:RunnableCall" runnable="runnable_b?type=Runnable"/>
<condition>
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="B" relation="EQUAL"/>
</condition>
</entries>
<entries name="case_c">
<items xsi:type="am:RunnableCall" runnable="runnable_c?type=Runnable"/>
<condition>
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="C" relation="EQUAL"/>
</condition>
</entries>
<defaultEntry>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="2000"/>
</items>
<items xsi:type="am:ModeLabelAccess" data="modelabel1?type=ModeLabel" access="set" value="ERROR" step="1"/>
</defaultEntry>
</items>
<condition>
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="B" relation="EQUAL"/>
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="C" relation="EQUAL"/>
</condition>
</entries>
<entries name="case_D_and_D">
<items xsi:type="am:RunnableCall" runnable="runnable_d_and_d?type=Runnable"/>
<condition>
<entries xsi:type="am:ModeConditionConjunction">
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="D" relation="EQUAL"/>
<entries xsi:type="am:ModeValueCondition" label="modelabel2?type=ModeLabel" value="D" relation="EQUAL"/>
</entries>
</condition>
</entries>
<entries name="case_D_and_notD">
<items xsi:type="am:RunnableCall" runnable="runnable_d_and_not_d?type=Runnable"/>
<condition>
<entries xsi:type="am:ModeConditionConjunction">
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="D" relation="EQUAL"/>
<entries xsi:type="am:ModeValueCondition" label="modelabel2?type=ModeLabel" value="D" relation="NOT_EQUAL"/>
</entries>
</condition>
</entries>
<entries name="case_Done">
<items xsi:type="am:RunnableCall" runnable="runnable_done?type=Runnable"/>
<condition>
<entries xsi:type="am:ModeConditionConjunction">
<entries xsi:type="am:ModeValueCondition" label="modelabel1?type=ModeLabel" value="DONE" relation="EQUAL"/>
<entries xsi:type="am:ModeValueCondition" label="modelabel2?type=ModeLabel" value="DONE" relation="EQUAL"/>
</entries>
</condition>
</entries>
<defaultEntry>
<items xsi:type="am:RunnableCall" runnable="runnable_error?type=Runnable"/>
</defaultEntry>
</items>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_a?type=Runnable" name="runnable_a" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Group" name="group_a" ordered="true">
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="500000"/>
</items>
<items xsi:type="am:ModeLabelAccess" data="modelabel1?type=ModeLabel" access="set" value="B" step="1"/>
</items>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_b?type=Runnable" name="runnable_b" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="500000"/>
</items>
<items xsi:type="am:ModeLabelAccess" data="modelabel1?type=ModeLabel" access="set" value="C" step="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_c?type=Runnable" name="runnable_c" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="500000"/>
</items>
<items xsi:type="am:ModeLabelAccess" data="modelabel1?type=ModeLabel" access="set" value="D" step="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_d_and_d?type=Runnable" name="runnable_d_and_d" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="500000"/>
</items>
<items xsi:type="am:ModeLabelAccess" data="modelabel2?type=ModeLabel" access="set" value="DONE" step="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_d_and_not_d?type=Runnable" name="runnable_d_and_not_d" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="500000"/>
</items>
<items xsi:type="am:ModeLabelAccess" data="modelabel1?type=ModeLabel" access="set" value="DONE" step="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_done?type=Runnable" name="runnable_done" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="900000"/>
</items>
</activityGraph>
</runnables>
<runnables xmi:id="runnable_error?type=Runnable" name="runnable_error" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="900000"/>
</items>
</activityGraph>
</runnables>
<modes xsi:type="am:EnumMode" xmi:id="enumMode?type=EnumMode" name="enumMode">
<literals xmi:id="enumMode/A?type=ModeLiteral" name="A"/>
<literals xmi:id="enumMode/B?type=ModeLiteral" name="B"/>
<literals xmi:id="enumMode/C?type=ModeLiteral" name="C"/>
<literals xmi:id="enumMode/D?type=ModeLiteral" name="D"/>
<literals xmi:id="enumMode/DONE?type=ModeLiteral" name="DONE"/>
<literals xmi:id="enumMode/ERROR?type=ModeLiteral" name="ERROR"/>
</modes>
<modeLabels xmi:id="modelabel1?type=ModeLabel" name="modelabel1" mode="enumMode?type=EnumMode" initialValue="A">
<size value="100" unit="kbit"/>
</modeLabels>
<modeLabels xmi:id="modelabel2?type=ModeLabel" name="modelabel2" mode="enumMode?type=EnumMode" initialValue="D"/>
</swModel>
<hwModel>
<definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="DefaultCore?type=ProcessingUnitDefinition" name="DefaultCore" puType="CPU"/>
<definitions xsi:type="am:MemoryDefinition" xmi:id="DefaultMemory?type=MemoryDefinition" name="DefaultMemory">
<size value="4" unit="MB"/>
<accessLatency xsi:type="am:DiscreteValueConstant" value="2"/>
<dataRate value="1" unit="GiBPerSecond"/>
</definitions>
<structures xmi:id="Democar?type=HwStructure" name="Democar" structureType="System">
<structures xmi:id="ECU_1?type=HwStructure" name="ECU_1" structureType="ECU">
<structures xmi:id="Microcontroller_1?type=HwStructure" name="Microcontroller_1" structureType="Microcontroller">
<modules xsi:type="am:Memory" xmi:id="Mem_1?type=Memory" name="Mem_1" frequencyDomain="FrequencyDomain_1?type=FrequencyDomain" definition="DefaultMemory?type=MemoryDefinition">
<ports xmi:id="Mem_1/portMem_1?type=HwPort" name="portMem_1" bitWidth="32" priority="0" portType="responder" portInterface="custom"/>
</modules>
<modules xsi:type="am:ProcessingUnit" xmi:id="Core_1?type=ProcessingUnit" name="Core_1" frequencyDomain="FrequencyDomain_1?type=FrequencyDomain" definition="DefaultCore?type=ProcessingUnitDefinition">
<ports xmi:id="Core_1/portCore_1?type=HwPort" name="portCore_1" bitWidth="32" priority="0" portType="initiator" portInterface="custom"/>
<accessElements name="memAccess" destination="Mem_1?type=Memory">
<accessPath name="accessPath_Core1_Mem1" pathElements="Microcontroller_1/con1?type=HwConnection" startAddress="0x0" endAddress="0x0" memOffset="0x0"/>
<readLatency xsi:type="am:DiscreteValueConstant" value="2"/>
<writeLatency xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="3" upperBound="23" average="5.0" pRemainPromille="1.0"/>
<dataRate value="1" unit="GiBPerSecond"/>
</accessElements>
</modules>
<connections xmi:id="Microcontroller_1/con1?type=HwConnection" name="con1" port1="Core_1/portCore_1?type=HwPort" port2="Mem_1/portMem_1?type=HwPort">
<readLatency xsi:type="am:DiscreteValueConstant" value="5"/>
<writeLatency xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="2" upperBound="23" average="5.0" pRemainPromille="1.0"/>
<dataRate value="1" unit="GiBPerSecond"/>
</connections>
</structures>
</structures>
</structures>
<domains xsi:type="am:FrequencyDomain" xmi:id="FrequencyDomain_1?type=FrequencyDomain" name="FrequencyDomain_1" clockGating="false">
<defaultValue value="200.0" unit="MHz"/>
</domains>
</hwModel>
<osModel>
<operatingSystems name="OperatingSystem">
<taskSchedulers xmi:id="Task_Scheduler_Core_1?type=TaskScheduler" name="Task_Scheduler_Core_1">
<schedulingAlgorithm xsi:type="am:FixedPriorityPreemptive"/>
</taskSchedulers>
</operatingSystems>
</osModel>
<stimuliModel>
<stimuli xsi:type="am:PeriodicStimulus" xmi:id="Timer_5MS?type=PeriodicStimulus" name="Timer_5MS">
<recurrence value="5" unit="ms"/>
<offset value="0" unit="ms"/>
</stimuli>
</stimuliModel>
<mappingModel>
<schedulerAllocation scheduler="Task_Scheduler_Core_1?type=TaskScheduler" responsibility="Core_1?type=ProcessingUnit" executingPU="Core_1?type=ProcessingUnit"/>
<taskAllocation task="Task_5MS?type=Task" scheduler="Task_Scheduler_Core_1?type=TaskScheduler">
<schedulingParameters priority="3"/>
</taskAllocation>
<memoryMapping abstractElement="modelabel1?type=ModeLabel" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/>
<memoryMapping abstractElement="modelabel2?type=ModeLabel" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/>
</mappingModel>
</am:Amalthea>