blob: e4a9599e82c984f1b0cc4436bdc29a00c74af19f [file]
<?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_10MS?type=Task" name="Task_10MS" stimuli="Timer_10MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
<activityGraph>
<items xsi:type="am:Group" name="CallSequence" ordered="true">
<items xsi:type="am:RunnableCall" runnable="Runnable_10MS?type=Runnable"/>
</items>
</activityGraph>
</tasks>
<tasks xmi:id="Task_20MS?type=Task" name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
<activityGraph>
<items xsi:type="am:Group" name="CallSequence" ordered="true">
<items xsi:type="am:RunnableCall" runnable="Runnable_20MS?type=Runnable"/>
</items>
</activityGraph>
</tasks>
<tasks xmi:id="Task_5MS?type=Task" name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
<activityGraph>
<items xsi:type="am:Group" name="CallSequence" ordered="true">
<items xsi:type="am:RunnableCall" runnable="Runnable_5MS?type=Runnable"/>
</items>
</activityGraph>
</tasks>
<tasks xmi:id="Task_5MS_ChannelTriggered?type=Task" name="Task_5MS_ChannelTriggered" stimuli="Task_5MS_stim?type=EventStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
<activityGraph>
<items xsi:type="am:Group" name="CallSequence" ordered="true">
<items xsi:type="am:RunnableCall" runnable="Runnable_5MS_trig?type=Runnable"/>
</items>
</activityGraph>
</tasks>
<runnables xmi:id="Runnable_5MS?type=Runnable" name="Runnable_5MS" callback="false" service="false">
<activityGraph>
<items xsi:type="am:ChannelReceive" data="Channel_20MS_5MS?type=Channel" elements="1" receiveOperation="FIFO_Read" dataMustBeNew="false" elementIndex="0" lowerBound="0"/>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="10000"/>
</items>
<items xsi:type="am:ChannelSend" data="Channel_5MS_10MS?type=Channel" elements="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="Runnable_10MS?type=Runnable" name="Runnable_10MS" callback="false" service="false">
<activityGraph>
<items xsi:type="am:ChannelReceive" data="Channel_5MS_10MS?type=Channel" elements="1" receiveOperation="FIFO_Read" dataMustBeNew="false" elementIndex="0" lowerBound="0"/>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="10000"/>
</items>
<items xsi:type="am:ChannelSend" data="Channel_10MS_20MS?type=Channel" elements="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="Runnable_20MS?type=Runnable" name="Runnable_20MS" callback="false" service="false">
<activityGraph>
<items xsi:type="am:ChannelReceive" data="Channel_10MS_20MS?type=Channel" elements="1" receiveOperation="FIFO_Read" dataMustBeNew="false" elementIndex="0" lowerBound="0"/>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="10000"/>
</items>
<items xsi:type="am:ChannelSend" data="Channel_20MS_5MS?type=Channel" elements="1"/>
</activityGraph>
</runnables>
<runnables xmi:id="Runnable_5MS_trig?type=Runnable" name="Runnable_5MS_trig" callback="false" service="false">
<activityGraph>
<items xsi:type="am:Ticks">
<default xsi:type="am:DiscreteValueConstant" value="10000"/>
</items>
</activityGraph>
</runnables>
<channels xmi:id="Channel_5MS_10MS?type=Channel" name="Channel_5MS_10MS" defaultElements="0" maxElements="0"/>
<channels xmi:id="Channel_10MS_20MS?type=Channel" name="Channel_10MS_20MS" defaultElements="0" maxElements="0"/>
<channels xmi:id="Channel_20MS_5MS?type=Channel" name="Channel_20MS_5MS" defaultElements="0" maxElements="0"/>
</swModel>
<hwModel>
<definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="DefaultCore?type=ProcessingUnitDefinition" name="DefaultCore" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/>
<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>
<featureCategories xmi:id="Instructions?type=HwFeatureCategory" name="Instructions" featureType="performance">
<features xmi:id="Instructions/IPC_1?type=HwFeature" name="IPC_1" value="1.0"/>
</featureCategories>
<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/port?type=HwPort" name="port" 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/port?type=HwPort" name="port" 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/port?type=HwPort" port2="Mem_1/port?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_10MS?type=PeriodicStimulus" name="Timer_10MS">
<recurrence value="10" unit="ms"/>
<offset value="0" unit="ms"/>
</stimuli>
<stimuli xsi:type="am:PeriodicStimulus" xmi:id="Timer_20MS?type=PeriodicStimulus" name="Timer_20MS">
<recurrence value="20" unit="ms"/>
<offset value="0" unit="ms"/>
</stimuli>
<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>
<stimuli xsi:type="am:EventStimulus" xmi:id="Task_5MS_stim?type=EventStimulus" name="Task_5MS_stim" triggeringEvents="event_channel_5ms_10ms_write?type=ChannelEvent"/>
<stimuli xsi:type="am:InterProcessStimulus" xmi:id="ips?type=InterProcessStimulus" name="ips"/>
</stimuliModel>
<eventModel>
<events xsi:type="am:ChannelEvent" xmi:id="event_channel_5ms_10ms_write?type=ChannelEvent" name="event_channel_5ms_10ms_write" eventType="send" entity="Channel_5MS_10MS?type=Channel"/>
</eventModel>
<constraintsModel>
<requirements xsi:type="am:ProcessRequirement" name="Deadline_05" severity="Critical" process="Task_5MS?type=Task">
<limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
<limitValue value="5" unit="ms"/>
</limit>
</requirements>
<requirements xsi:type="am:ProcessRequirement" name="Deadline_10" severity="Critical" process="Task_10MS?type=Task">
<limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
<limitValue value="10" unit="ms"/>
</limit>
</requirements>
<requirements xsi:type="am:ProcessRequirement" name="Deadline_20" severity="Critical" process="Task_20MS?type=Task">
<limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
<limitValue value="20" unit="ms"/>
</limit>
</requirements>
</constraintsModel>
<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>
<taskAllocation task="Task_10MS?type=Task" scheduler="Task_Scheduler_Core_1?type=TaskScheduler">
<schedulingParameters priority="2"/>
</taskAllocation>
<taskAllocation task="Task_20MS?type=Task" scheduler="Task_Scheduler_Core_1?type=TaskScheduler">
<schedulingParameters priority="1"/>
</taskAllocation>
<taskAllocation task="Task_5MS_ChannelTriggered?type=Task" scheduler="Task_Scheduler_Core_1?type=TaskScheduler">
<schedulingParameters priority="1"/>
</taskAllocation>
<memoryMapping abstractElement="Channel_10MS_20MS?type=Channel" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/>
<memoryMapping abstractElement="Channel_5MS_10MS?type=Channel" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/>
<memoryMapping abstractElement="Channel_20MS_5MS?type=Channel" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/>
</mappingModel>
<componentsModel>
<components xmi:id="SwcEngineController?type=Component" name="SwcEngineController"/>
<components xmi:id="SwcActuators?type=Component" name="SwcActuators"/>
<components xmi:id="SwcBrakeForceArbiter?type=Component" name="SwcBrakeForceArbiter"/>
<components xmi:id="SwcABSCalculation?type=Component" name="SwcABSCalculation"/>
<components xmi:id="SwcSensors?type=Component" name="SwcSensors"/>
<components xmi:id="SwcSensorPostprocessing?type=Component" name="SwcSensorPostprocessing"/>
<components xmi:id="SwcCylNumObserver?type=Component" name="SwcCylNumObserver"/>
<components xmi:id="SwcBrakeForceCalculation?type=Component" name="SwcBrakeForceCalculation"/>
<components xmi:id="SwcEngineSensors?type=Component" name="SwcEngineSensors"/>
<components xmi:id="SwcInjIgnActuation?type=Component" name="SwcInjIgnActuation"/>
</componentsModel>
</am:Amalthea>