| <?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> |