| <?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/3.1.0"> |
| <swModel> |
| <tasks xmi:id="Task_1?type=Task" name="Task_1" preemption="preemptive" multipleTaskActivationLimit="1"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true" interruptible="true"> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_1_1?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task_2?type=Task" name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true" interruptible="true"> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_2_1?type=Runnable"/> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_2_2?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task_3?type=Task" name="Task_3" preemption="preemptive" multipleTaskActivationLimit="1"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true" interruptible="true"> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_3_1?type=Runnable"/> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_3_2?type=Runnable"/> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_3_3?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task_4?type=Task" name="Task_4" preemption="preemptive" multipleTaskActivationLimit="1"> |
| <activityGraph> |
| <items xsi:type="am:Group" name="CallSequence" ordered="true" interruptible="true"> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_4_1?type=Runnable"/> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_4_2?type=Runnable"/> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_4_3?type=Runnable"/> |
| <items xsi:type="am:RunnableCall" runnable="Runnable_4_4?type=Runnable"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <runnables xmi:id="Runnable_1_1?type=Runnable" name="Runnable_1_1" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1500000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_2_1?type=Runnable" name="Runnable_2_1" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1500000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_2_2?type=Runnable" name="Runnable_2_2" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1500000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_3_1?type=Runnable" name="Runnable_3_1" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_3_2?type=Runnable" name="Runnable_3_2" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="2000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_3_3?type=Runnable" name="Runnable_3_3" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_4_1?type=Runnable" name="Runnable_4_1" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_4_2?type=Runnable" name="Runnable_4_2" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="2000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_4_3?type=Runnable" name="Runnable_4_3" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="3000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| <runnables xmi:id="Runnable_4_4?type=Runnable" name="Runnable_4_4" callback="false" service="false"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="2000000"/> |
| </items> |
| </activityGraph> |
| </runnables> |
| </swModel> |
| <hwModel> |
| <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="Core_Definition?type=ProcessingUnitDefinition" name="Core_Definition" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/> |
| <definitions xsi:type="am:MemoryDefinition" xmi:id="Memory_Def?type=MemoryDefinition" name="Memory_Def"> |
| <accessLatency xsi:type="am:DiscreteValueConstant" value="12"/> |
| </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="System?type=HwStructure" name="System"> |
| <structures xmi:id="ECU?type=HwStructure" name="ECU"> |
| <modules xsi:type="am:Memory" xmi:id="Memory?type=Memory" name="Memory" definition="Memory_Def?type=MemoryDefinition"/> |
| <modules xsi:type="am:ProcessingUnit" xmi:id="Core_1?type=ProcessingUnit" name="Core_1" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/> |
| <modules xsi:type="am:ProcessingUnit" xmi:id="Core_2?type=ProcessingUnit" name="Core_2" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/> |
| </structures> |
| </structures> |
| <domains xsi:type="am:FrequencyDomain" xmi:id="Main_Freq_Domain?type=FrequencyDomain" name="Main_Freq_Domain" clockGating="false"> |
| <defaultValue value="100.0" unit="MHz"/> |
| </domains> |
| </hwModel> |
| <osModel> |
| <operatingSystems name="OperatingSystem"> |
| <taskSchedulers xmi:id="Scheduler_1?type=TaskScheduler" name="Scheduler_1" definition="OSEK?type=SchedulerDefinition"> |
| <computationItems xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="100"/> |
| </computationItems> |
| </taskSchedulers> |
| <taskSchedulers xmi:id="Scheduler_2?type=TaskScheduler" name="Scheduler_2" definition="OSEK?type=SchedulerDefinition"> |
| <computationItems xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="100"/> |
| </computationItems> |
| </taskSchedulers> |
| </operatingSystems> |
| <schedulerDefinitions xmi:id="OSEK?type=SchedulerDefinition" name="OSEK" processParameters="priority?type=SchedulingParameterDefinition taskGroup?type=SchedulingParameterDefinition" requiresParentScheduler="false" passesParametersUpwards="false" hasExactlyOneChild="false"/> |
| <schedulingParameterDefinitions xmi:id="priority?type=SchedulingParameterDefinition" name="priority" type="Integer" many="false" mandatory="true"/> |
| <schedulingParameterDefinitions xmi:id="taskGroup?type=SchedulingParameterDefinition" name="taskGroup" type="Integer" many="false" mandatory="true"/> |
| </osModel> |
| <stimuliModel> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_1?type=PeriodicStimulus" name="Stimulus_Task_1"> |
| <recurrence value="180" unit="ms"/> |
| <offset value="0" unit="ms"/> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_2?type=PeriodicStimulus" name="Stimulus_Task_2"> |
| <recurrence value="200" unit="ms"/> |
| <offset value="0" unit="ms"/> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_3?type=PeriodicStimulus" name="Stimulus_Task_3"> |
| <recurrence value="300" unit="ms"/> |
| <offset value="0" unit="ms"/> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_4?type=PeriodicStimulus" name="Stimulus_Task_4"> |
| <recurrence value="1" unit="s"/> |
| <offset value="0" unit="ms"/> |
| </stimuli> |
| </stimuliModel> |
| <constraintsModel> |
| <requirements xsi:type="am:ProcessRequirement" name="Deadline_1" severity="Critical" process="Task_1?type=Task"> |
| <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime"> |
| <limitValue value="75" unit="ms"/> |
| </limit> |
| </requirements> |
| <requirements xsi:type="am:ProcessRequirement" name="Deadline_2" severity="Critical" process="Task_2?type=Task"> |
| <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime"> |
| <limitValue value="115" unit="ms"/> |
| </limit> |
| </requirements> |
| <requirements xsi:type="am:ProcessRequirement" name="Deadline_3" severity="Critical" process="Task_3?type=Task"> |
| <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime"> |
| <limitValue value="300" unit="ms"/> |
| </limit> |
| </requirements> |
| <requirements xsi:type="am:ProcessRequirement" name="Deadline_4" severity="Critical" process="Task_4?type=Task"> |
| <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime"> |
| <limitValue value="960" unit="ms"/> |
| </limit> |
| </requirements> |
| </constraintsModel> |
| <mappingModel addressMappingType="none"> |
| <schedulerAllocation scheduler="Scheduler_1?type=TaskScheduler" responsibility="Core_1?type=ProcessingUnit"/> |
| <schedulerAllocation scheduler="Scheduler_2?type=TaskScheduler" responsibility="Core_2?type=ProcessingUnit"/> |
| <taskAllocation task="Task_1?type=Task" scheduler="Scheduler_1?type=TaskScheduler"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="4"/> |
| </schedulingParameters> |
| <schedulingParameters key="taskGroup?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="1"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task_2?type=Task" scheduler="Scheduler_1?type=TaskScheduler"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="3"/> |
| </schedulingParameters> |
| <schedulingParameters key="taskGroup?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="2"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task_3?type=Task" scheduler="Scheduler_2?type=TaskScheduler"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="2"/> |
| </schedulingParameters> |
| <schedulingParameters key="taskGroup?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="3"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task_4?type=Task" scheduler="Scheduler_2?type=TaskScheduler"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="1"/> |
| </schedulingParameters> |
| <schedulingParameters key="taskGroup?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="4"/> |
| </schedulingParameters> |
| </taskAllocation> |
| </mappingModel> |
| </am:Amalthea> |