| <?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/2.1.0"> |
| <swModel> |
| <tasks xmi:id="Task1?type=Task" name="Task1" stimuli="Stim0?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="380000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label1?type=Label" access="read"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="380000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label3?type=Label" access="read"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1400000"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task2?type=Task" name="Task2" stimuli="Stim0?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="180000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label2?type=Label" access="read"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="50000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label1?type=Label" access="read"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1500000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label4?type=Label" access="read"/> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task3?type=Task" name="Task3" stimuli="Stim1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="4200000"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task4?type=Task" name="Task4" stimuli="Stim3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="370000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label1?type=Label" access="read"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="2400000"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task5?type=Task" name="Task5" stimuli="Stim2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1100000"/> |
| </items> |
| <items xsi:type="am:LabelAccess" data="Label4?type=Label" access="read"/> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="1500000"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <tasks xmi:id="Task6?type=Task" name="Task6" stimuli="Stim3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10"> |
| <activityGraph> |
| <items xsi:type="am:Ticks"> |
| <default xsi:type="am:DiscreteValueConstant" value="2300000"/> |
| </items> |
| </activityGraph> |
| </tasks> |
| <labels xmi:id="Label0?type=Label" name="Label0" constant="false" bVolatile="false"> |
| <size value="30" unit="B"/> |
| </labels> |
| <labels xmi:id="Label1?type=Label" name="Label1" constant="false" bVolatile="false"> |
| <size value="60" unit="B"/> |
| </labels> |
| <labels xmi:id="Label2?type=Label" name="Label2" constant="false" bVolatile="false"> |
| <size value="80" unit="B"/> |
| </labels> |
| <labels xmi:id="Label3?type=Label" name="Label3" constant="false" bVolatile="false"> |
| <size value="100" unit="B"/> |
| </labels> |
| <labels xmi:id="Label4?type=Label" name="Label4" constant="false" bVolatile="false"> |
| <size value="180" unit="B"/> |
| </labels> |
| </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"/> |
| <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"/> |
| <modules xsi:type="am:ProcessingUnit" xmi:id="Core_1?type=ProcessingUnit" name="Core_1" frequencyDomain="FrequencyDomain_1?type=FrequencyDomain" definition="DefaultCore?type=ProcessingUnitDefinition"> |
| <accessElements name="memAccess_core1" destination="Mem_1?type=Memory"> |
| <dataRate value="100" unit="kbitPerSecond"/> |
| </accessElements> |
| </modules> |
| <modules xsi:type="am:ProcessingUnit" xmi:id="Core_2?type=ProcessingUnit" name="Core_2" frequencyDomain="FrequencyDomain_1?type=FrequencyDomain" definition="DefaultCore?type=ProcessingUnitDefinition"> |
| <accessElements name="memAccess_core2" destination="Mem_1?type=Memory"> |
| <dataRate value="100" unit="kbitPerSecond"/> |
| </accessElements> |
| </modules> |
| </structures> |
| </structures> |
| </structures> |
| <domains xsi:type="am:FrequencyDomain" xmi:id="FrequencyDomain_1?type=FrequencyDomain" name="FrequencyDomain_1" clockGating="false"> |
| <defaultValue value="100.0" unit="MHz"/> |
| </domains> |
| </hwModel> |
| <osModel> |
| <operatingSystems name=""> |
| <taskSchedulers xmi:id="rrScheduler?type=TaskScheduler" name="rrScheduler" definition="PriorityBasedRoundRobin?type=SchedulerDefinition"> |
| <schedulingParameters key="timeSliceLength?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:Time" value="4" unit="ms"/> |
| </schedulingParameters> |
| </taskSchedulers> |
| </operatingSystems> |
| <schedulerDefinitions xmi:id="PriorityBasedRoundRobin?type=SchedulerDefinition" name="PriorityBasedRoundRobin" description="Round Robin scheduling algorithm assigns equally sized time slices
to each process that it schedules. The priority describes the order
in which the processes will be executed. If two processes have the
same priority, the order of these two is random (non-deterministic).

Algorithm parameters
 - timeSliceLength [1] Time
 Length of each time slice.

Process parameters
 - priority [1] Integer
 The priority of the process (a higher value means a higher priority).

Options:
 -

Reference:
 - TODO" algorithmParameters="timeSliceLength?type=SchedulingParameterDefinition" processParameters="priority?type=SchedulingParameterDefinition" requiresParentScheduler="false" passesParametersUpwards="false" hasExactlyOneChild="false"/> |
| <schedulingParameterDefinitions xmi:id="timeSliceLength?type=SchedulingParameterDefinition" name="timeSliceLength" type="Time" many="false" mandatory="true"/> |
| <schedulingParameterDefinitions xmi:id="priority?type=SchedulingParameterDefinition" name="priority" type="Integer" many="false" mandatory="true"/> |
| </osModel> |
| <stimuliModel> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stim0?type=PeriodicStimulus" name="Stim0"> |
| <recurrence value="100" unit="ms"/> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stim1?type=PeriodicStimulus" name="Stim1"> |
| <recurrence value="100" unit="ms"/> |
| <offset value="2" unit="ms"/> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stim2?type=PeriodicStimulus" name="Stim2"> |
| <recurrence value="100" unit="ms"/> |
| <offset value="5" unit="ms"/> |
| </stimuli> |
| <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stim3?type=PeriodicStimulus" name="Stim3"> |
| <recurrence value="100" unit="ms"/> |
| <offset value="12" unit="ms"/> |
| </stimuli> |
| </stimuliModel> |
| <mappingModel> |
| <schedulerAllocation scheduler="rrScheduler?type=TaskScheduler" responsibility="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit" executingPU="Core_1?type=ProcessingUnit"/> |
| <taskAllocation task="Task1?type=Task" scheduler="rrScheduler?type=TaskScheduler" affinity="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="0"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task2?type=Task" scheduler="rrScheduler?type=TaskScheduler" affinity="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="0"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task3?type=Task" scheduler="rrScheduler?type=TaskScheduler" affinity="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="1"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task4?type=Task" scheduler="rrScheduler?type=TaskScheduler" affinity="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="0"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task5?type=Task" scheduler="rrScheduler?type=TaskScheduler" affinity="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="1"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <taskAllocation task="Task6?type=Task" scheduler="rrScheduler?type=TaskScheduler" affinity="Core_1?type=ProcessingUnit Core_2?type=ProcessingUnit"> |
| <schedulingParameters key="priority?type=SchedulingParameterDefinition"> |
| <value xsi:type="am:IntegerObject" value="2"/> |
| </schedulingParameters> |
| </taskAllocation> |
| <memoryMapping abstractElement="Label0?type=Label" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/> |
| <memoryMapping abstractElement="Label1?type=Label" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/> |
| <memoryMapping abstractElement="Label2?type=Label" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/> |
| <memoryMapping abstractElement="Label3?type=Label" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/> |
| <memoryMapping abstractElement="Label4?type=Label" memory="Mem_1?type=Memory" memoryPositionAddress="0x0"/> |
| </mappingModel> |
| </am:Amalthea> |