| <?xml version="1.0" encoding="UTF-8"?> |
| <am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.2" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0"> |
| <swModel> |
| <tasks name="Task5ms" stimuli="Stimuli5msA?type=PeriodicStimulus Stimuli5msB?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0"> |
| <callGraph> |
| <graphEntries xsi:type="am:CallSequence"> |
| <calls xsi:type="am:TaskRunnableCall" runnable="Runnable5ms?type=Runnable" /> |
| </graphEntries> |
| </callGraph> |
| </tasks> |
| <tasks name="Task1ms" stimuli="Stimuli1ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0"> |
| <callGraph> |
| <graphEntries xsi:type="am:CallSequence"> |
| <calls xsi:type="am:TaskRunnableCall" runnable="Runnable1ms?type=Runnable" /> |
| </graphEntries> |
| </callGraph> |
| </tasks> |
| <tasks name="Task10ms" stimuli="Stimuli10ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0"> |
| <callGraph> |
| <graphEntries xsi:type="am:CallSequence"> |
| <calls xsi:type="am:TaskRunnableCall" runnable="Runnable10ms?type=Runnable" /> |
| </graphEntries> |
| <graphEntries xsi:type="am:CallSequence" name="IPC20ms"> |
| <calls xsi:type="am:InterProcessTrigger" stimulus="Task10ms2Task20ms?type=InterProcessStimulus"> |
| <counter prescaler="2" offset="0" /> |
| </calls> |
| </graphEntries> |
| </callGraph> |
| </tasks> |
| <tasks name="Task20ms" stimuli="Task10ms2Task20ms?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0"> |
| <callGraph> |
| <graphEntries xsi:type="am:CallSequence"> |
| <calls xsi:type="am:TaskRunnableCall" runnable="Runnable20ms?type=Runnable" /> |
| </graphEntries> |
| </callGraph> |
| </tasks> |
| <runnables name="Runnable1ms" callback="false" service="false"> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="10" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="4" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="15" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="5" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| </runnables> |
| <runnables name="Runnable5ms" callback="false" service="false"> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="10" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="4" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="15" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="5" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| </runnables> |
| <runnables name="Runnable20ms" callback="false" service="false"> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="10" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="4" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="15" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="5" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| </runnables> |
| <runnables name="Runnable10ms" callback="false" service="false"> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="10" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="4" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="request" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="200" /> |
| <upperBound xsi:type="am:LongObject" value="600" /> |
| <distribution xsi:type="am:UniformDistribution" /> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| <runnableItems xsi:type="am:SemaphoreAccess" semaphore="Lock?type=Semaphore" access="release" waitingBehaviour="active" /> |
| <runnableItems xsi:type="am:ExecutionNeed"> |
| <default key="Instructions"> |
| <value xsi:type="am:NeedDeviation"> |
| <deviation> |
| <lowerBound xsi:type="am:LongObject" value="1" /> |
| <upperBound xsi:type="am:LongObject" value="15" /> |
| <distribution xsi:type="am:WeibullEstimators" pRemainPromille="0.004999999888241291"> |
| <mean xsi:type="am:LongObject" value="5" /> |
| </distribution> |
| </deviation> |
| </value> |
| </default> |
| </runnableItems> |
| </runnables> |
| </swModel> |
| <hwModel> |
| <definitions xsi:type="am:ProcessingUnitDefinition" name="C0_Type" puType="CPU" features="Instructions/IPC_1.0?type=HwFeature" /> |
| <definitions xsi:type="am:ProcessingUnitDefinition" name="C1_Type" puType="CPU" features="Instructions/IPC_1.0?type=HwFeature" /> |
| <featureCategories name="Instructions" featureType="performance"> |
| <features name="IPC_1.0" value="1.0" /> |
| </featureCategories> |
| <structures name="System" structureType="System"> |
| <structures name="ECU" structureType="ECU"> |
| <structures name="mC" structureType="Microcontroller"> |
| <modules xsi:type="am:ProcessingUnit" name="C0" frequencyDomain="clock_C0?type=FrequencyDomain" definition="C0_Type?type=ProcessingUnitDefinition" /> |
| <modules xsi:type="am:ProcessingUnit" name="C1" frequencyDomain="clock_C1?type=FrequencyDomain" definition="C1_Type?type=ProcessingUnitDefinition" /> |
| </structures> |
| </structures> |
| </structures> |
| <domains xsi:type="am:FrequencyDomain" name="clock_C0" clockGating="false"> |
| <defaultValue value="240.0" unit="MHz" /> |
| </domains> |
| <domains xsi:type="am:FrequencyDomain" name="clock_C1" clockGating="false"> |
| <defaultValue value="240.0" unit="MHz" /> |
| </domains> |
| </hwModel> |
| <osModel> |
| <semaphores name="Lock" initialValue="0" maxValue="0" priorityCeilingProtocol="false" /> |
| <operatingSystems name="OS"> |
| <taskSchedulers name="SchedC0"> |
| <schedulingAlgorithm xsi:type="am:OSEK" /> |
| </taskSchedulers> |
| <taskSchedulers name="SchedC1"> |
| <schedulingAlgorithm xsi:type="am:OSEK" /> |
| </taskSchedulers> |
| </operatingSystems> |
| </osModel> |
| <stimuliModel> |
| <stimuli xsi:type="am:PeriodicStimulus" name="Stimuli1ms"> |
| <offset value="0" unit="ms" /> |
| <recurrence value="1" unit="ms" /> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" name="Stimuli5msA"> |
| <offset value="800" unit="us" /> |
| <recurrence value="5" unit="ms" /> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" name="Stimuli5msB"> |
| <offset value="1500" unit="us" /> |
| <recurrence value="5" unit="ms" /> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" name="Stimuli10ms"> |
| <offset value="0" unit="ms" /> |
| <recurrence value="10" unit="ms" /> |
| </stimuli> |
| <stimuli xsi:type="am:InterProcessStimulus" name="Task10ms2Task20ms" /> |
| </stimuliModel> |
| <mappingModel> |
| <schedulerAllocation> |
| <scheduler xsi:type="am:TaskScheduler" href="amlt:/#SchedC0?type=TaskScheduler" /> |
| <responsibility href="amlt:/#C0?type=ProcessingUnit" /> |
| </schedulerAllocation> |
| <schedulerAllocation> |
| <scheduler xsi:type="am:TaskScheduler" href="amlt:/#SchedC1?type=TaskScheduler" /> |
| <responsibility href="amlt:/#C1?type=ProcessingUnit" /> |
| </schedulerAllocation> |
| <taskAllocation task="Task1ms?type=Task" scheduler="SchedC0?type=TaskScheduler"> |
| <schedulingParameters priority="50" /> |
| </taskAllocation> |
| <taskAllocation task="Task20ms?type=Task" scheduler="SchedC0?type=TaskScheduler"> |
| <schedulingParameters priority="10" /> |
| </taskAllocation> |
| <taskAllocation task="Task5ms?type=Task" scheduler="SchedC1?type=TaskScheduler"> |
| <schedulingParameters priority="40" /> |
| </taskAllocation> |
| <taskAllocation task="Task10ms?type=Task" scheduler="SchedC1?type=TaskScheduler"> |
| <schedulingParameters priority="30" /> |
| </taskAllocation> |
| </mappingModel> |
| </am:Amalthea> |