Bug 562793: Add blocking test, update shareconst and corresponding model
Change-Id: Ib2c3b577967ec4e367db8ebd9de99a17c402cc7c
Signed-off-by: The Bao Bui <ZeroVNB@Gmail.com>
diff --git a/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/model-input/ChallengeModelZero.amxmi b/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/model-input/ChallengeModelZero.amxmi
new file mode 100644
index 0000000..416af72
--- /dev/null
+++ b/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/model-input/ChallengeModelZero.amxmi
@@ -0,0 +1,934 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.8" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">
+ <swModel>
+ <tasks name="OS_Overhead" stimuli="periodic_100ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="OS_Ops_Function?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="AsyncOffloadingCosts?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="Lidar_Grabber" stimuli="periodic_33ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Lidar_Function?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="DASM" stimuli="periodic_5ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="DASM_Function?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="CANbus_polling" stimuli="periodic_10ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="CAN_Function?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="EKF" stimuli="periodic_15ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="EKF_Function?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="Planner" stimuli="periodic_12ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Planner_Function?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="PRE_SFM_gpu_POST" stimuli="periodic_33ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="SFM_Preprocessing?type=Runnable" />
+ <items xsi:type="am:InterProcessTrigger" stimulus="SFM_stim?type=InterProcessStimulus" />
+ <items xsi:type="am:WaitEvent" waitingBehaviour="active">
+ <eventMask events="SFM?type=OsEvent" />
+ </items>
+ <items xsi:type="am:ClearEvent">
+ <eventMask events="SFM?type=OsEvent" />
+ </items>
+ <items xsi:type="am:RunnableCall" runnable="SFM_Postprocessing?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="PRE_Localization_gpu_POST" stimuli="periodic_400ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Localization_Preprocessing?type=Runnable" />
+ <items xsi:type="am:InterProcessTrigger" stimulus="Localization_stim?type=InterProcessStimulus" />
+ <items xsi:type="am:WaitEvent" waitingBehaviour="active">
+ <eventMask events="Localization_GPU?type=OsEvent" />
+ </items>
+ <items xsi:type="am:ClearEvent">
+ <eventMask events="Localization_GPU?type=OsEvent" />
+ </items>
+ <items xsi:type="am:RunnableCall" runnable="Localization_Postprocessing?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="PRE_Lane_detection_gpu_POST" stimuli="periodic_66ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Lane_Detection_Preprocessing?type=Runnable" />
+ <items xsi:type="am:InterProcessTrigger" stimulus="Lane_detection_stim?type=InterProcessStimulus" />
+ <items xsi:type="am:WaitEvent" waitingBehaviour="active">
+ <eventMask events="Lane_detect_GPU?type=OsEvent" />
+ </items>
+ <items xsi:type="am:ClearEvent">
+ <eventMask events="Lane_detect_GPU?type=OsEvent" />
+ </items>
+ <items xsi:type="am:RunnableCall" runnable="Lane_Detection_Postprocessing?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="PRE_Detection_gpu_POST" stimuli="periodic_200ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Detection_Preprocessing?type=Runnable" />
+ <items xsi:type="am:InterProcessTrigger" stimulus="detection_stim?type=InterProcessStimulus" />
+ <items xsi:type="am:WaitEvent" waitingBehaviour="passive">
+ <eventMask events="Detect?type=OsEvent" />
+ </items>
+ <items xsi:type="am:RunnableCall" runnable="AsyncOffloadingCosts?type=Runnable" />
+ <items xsi:type="am:ClearEvent">
+ <eventMask events="Detect?type=OsEvent" />
+ </items>
+ <items xsi:type="am:RunnableCall" runnable="Detection_Postprocessing?type=Runnable" />
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="SFM" stimuli="SFM_stim?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="SFM_host_to_device?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="SFM_Function?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="SFM_device_to_host?type=Runnable" />
+ <items xsi:type="am:SetEvent" process="PRE_SFM_gpu_POST?type=Task">
+ <eventMask events="SFM?type=OsEvent" />
+ </items>
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="Localization" stimuli="Localization_stim?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Localization_host_to_device?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="Localization_Function?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="Localization_device_to_host?type=Runnable" />
+ <items xsi:type="am:SetEvent" process="PRE_Localization_gpu_POST?type=Task">
+ <eventMask events="Localization_GPU?type=OsEvent" />
+ </items>
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="Lane_detection" stimuli="Lane_detection_stim?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Lane_Detection_host_to_device?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="Lane_Detection_Function?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="Lane_Detection_device_to_host?type=Runnable" />
+ <items xsi:type="am:SetEvent" process="PRE_Lane_detection_gpu_POST?type=Task">
+ <eventMask events="Lane_detect_GPU?type=OsEvent" />
+ </items>
+ </items>
+ </activityGraph>
+ </tasks>
+ <tasks name="Detection" stimuli="detection_stim?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
+ <activityGraph>
+ <items xsi:type="am:Group" name="CallSequence" ordered="true">
+ <items xsi:type="am:RunnableCall" runnable="Detection_host_to_device?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="Detection_Function?type=Runnable" />
+ <items xsi:type="am:RunnableCall" runnable="Detection_device_to_host?type=Runnable" />
+ <items xsi:type="am:SetEvent" process="PRE_Detection_gpu_POST?type=Task">
+ <eventMask events="Detect?type=OsEvent" />
+ </items>
+ </items>
+ </activityGraph>
+ </tasks>
+ <runnables name="OS_Ops_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="100000000" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="100000000" upperBound="100000000" average="1.0E8" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="100000000" upperBound="100000000" average="1.0E8" />
+ </extended>
+ </items>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Lidar_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Cloud_map_host?type=Label" access="read" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="21934035" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="19588000" upperBound="21736000" average="2.034807E7" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="20320000" upperBound="27320000" average="2.352E7" />
+ </extended>
+ </items>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S1?type=Semaphore" access="request" waitingBehaviour="active" />
+ <items xsi:type="am:LabelAccess" data="Cloud_map_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="Occupancy_grid_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S1?type=Semaphore" access="release" waitingBehaviour="active" />
+ </activityGraph>
+ </runnables>
+ <runnables name="CAN_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="999552" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="799744" upperBound="1199744" average="999744.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="799360" upperBound="1199360" average="999360.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S1?type=Semaphore" access="request" waitingBehaviour="active" />
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S1?type=Semaphore" access="release" waitingBehaviour="active" />
+ </activityGraph>
+ </runnables>
+ <runnables name="EKF_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="x_car_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="y_car_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="8599149" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="8179736" upperBound="8858959" average="8398959.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="7959340" upperBound="9519340" average="8799340.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="x_car_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="y_car_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" waitingBehaviour="active" />
+ <items xsi:type="am:LabelAccess" data="vel_car?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" waitingBehaviour="active" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S4?type=Semaphore" access="request" waitingBehaviour="active" />
+ <items xsi:type="am:LabelAccess" data="yaw_rate?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S4?type=Semaphore" access="release" waitingBehaviour="active" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Planner_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Lane_boundaries_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Occupancy_grid_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Matrix_SFM_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Bounding_box_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="x_car_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="y_car_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_host?type=Label" access="read" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" waitingBehaviour="active" />
+ <items xsi:type="am:LabelAccess" data="vel_car?type=Label" access="read" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" waitingBehaviour="active" />
+ <items xsi:type="am:LabelAccess" data="yaw_rate?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="21508675" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="19073529" upperBound="24873529" average="2.0273529E7" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="19243822" upperBound="26483822" average="2.2743822E7" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="speed_objective?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="steer_objective?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="DASM_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="speed_objective?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="steer_objective?type=Label" access="read" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S4?type=Semaphore" access="request" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="2809993" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="2099996" upperBound="2599996" average="2399996.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="2599990" upperBound="3719990" average="3219990.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="speed_objective?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="steer_objective?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S4?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Detection_Preprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" />
+ <items xsi:type="am:LabelAccess" data="Image_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="6387542" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="4755924" upperBound="6354526" average="5853824.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6378560" upperBound="7379120" average="6921260.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="Image_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Detection_Postprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" />
+ <items xsi:type="am:LabelAccess" data="Bounding_box_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="1628000" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="1246000" upperBound="1816000" average="1416000.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="1640000" upperBound="2040000" average="1840000.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="Bounding_box_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Localization_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="499018365" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="553415742" upperBound="589615742" average="5.62615742E8" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="733039355" upperBound="774839355" average="7.54439355E8" />
+ </extended>
+ <extended key="GPU_def?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="175500000" upperBound="186000000" average="1.8E8" />
+ </extended>
+ </items>
+ </activityGraph>
+ </runnables>
+ <runnables name="Lane_Detection_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S4?type=Semaphore" access="request" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="72838256" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="76875648" upperBound="84475648" average="8.0075648E7" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="95689120" upperBound="102089120" average="9.868912E7" />
+ </extended>
+ <extended key="GPU_def?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="36750000" upperBound="41000000" average="3.975E7" />
+ </extended>
+ </items>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S4?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Lane_Detection_Preprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Image_lane_lines_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="6864992" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6151472" upperBound="7051367" average="6551424.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6573410" upperBound="7951921" average="7178560.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="Image_lane_lines_host?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Lane_Detection_Postprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Lane_boundaries_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="7480386" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="5999632" upperBound="8199496" average="7399142.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6999284" upperBound="8513680" average="7561630.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="Lane_boundaries_host?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="SFM_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="38036480" />
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="48274300" upperBound="59003000" average="5.377531E7" />
+ </extended>
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="44363022" upperBound="55623380" average="4.953413E7" />
+ </extended>
+ <extended key="GPU_def?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="10575000" upperBound="11850000" average="1.08E7" />
+ </extended>
+ </items>
+ </activityGraph>
+ </runnables>
+ <runnables name="SFM_Preprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" />
+ <items xsi:type="am:LabelAccess" data="Image_SFM_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="6364477" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="5151424" upperBound="6355142" average="5751424.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="5878560" upperBound="7459318" average="6977531.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="Image_SFM_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="SFM_Postprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Matrix_SFM_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="6788280" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="5669568" upperBound="7064516" average="6363125.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6773920" upperBound="8347392" average="7213436.0" />
+ </extended>
+ </items>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="request" />
+ <items xsi:type="am:LabelAccess" data="Image_SFM_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S3?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Localization_Preprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S2?type=Semaphore" access="request" />
+ <items xsi:type="am:LabelAccess" data="Cloud_map_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="10155104" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6031488" upperBound="16431488" average="9231488.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6278720" upperBound="17878720" average="1.107872E7" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="Cloud_map_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S2?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Localization_Postprocessing" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:SemaphoreAccess" semaphore="S1?type=Semaphore" access="request" />
+ <items xsi:type="am:LabelAccess" data="x_car_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="y_car_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_host?type=Label" access="read" />
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="9499989" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="6199994" upperBound="12599994" average="8399994.0" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="8399985" upperBound="17399985" average="1.0599985E7" />
+ </extended>
+ </items>
+ <items xsi:type="am:LabelAccess" data="x_car_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="y_car_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_host?type=Label" access="write" />
+ <items xsi:type="am:SemaphoreAccess" semaphore="S1?type=Semaphore" access="release" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Detection_host_to_device" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Image_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Image_device?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Detection_device_to_host" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Bounding_box_device?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Bounding_box_host?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Lane_Detection_host_to_device" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Image_lane_lines_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Image_lane_lines_device?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Lane_Detection_device_to_host" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Lane_boundaries_device?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Lane_boundaries_host?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="SFM_host_to_device" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="IMU_data_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Image_SFM_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Image_SFM_device?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="IMU_data_device?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="SFM_device_to_host" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Matrix_SFM_device?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Matrix_SFM_host?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Localization_host_to_device" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="Cloud_map_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_host?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="Cloud_map_device?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="Vehicle_status_device?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Localization_device_to_host" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:LabelAccess" data="x_car_device?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="y_car_device?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_device?type=Label" access="read" />
+ <items xsi:type="am:LabelAccess" data="x_car_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="y_car_host?type=Label" access="write" />
+ <items xsi:type="am:LabelAccess" data="yaw_car_host?type=Label" access="write" />
+ </activityGraph>
+ </runnables>
+ <runnables name="Detection_Function" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="165000000" />
+ <extended key="GPU_def?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueStatistics" lowerBound="162000000" upperBound="174000000" average="1.65E8" />
+ </extended>
+ </items>
+ </activityGraph>
+ </runnables>
+ <runnables name="AsyncOffloadingCosts" callback="false" service="false">
+ <activityGraph>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="5000" />
+ <extended key="Denver?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueConstant" value="5000" />
+ </extended>
+ <extended key="A57?type=ProcessingUnitDefinition">
+ <value xsi:type="am:DiscreteValueConstant" value="5000" />
+ </extended>
+ </items>
+ </activityGraph>
+ </runnables>
+ <labels name="Cloud_map_host" constant="false" bVolatile="false">
+ <size value="1500" unit="kB" />
+ </labels>
+ <labels name="Occupancy_grid_host" constant="false" bVolatile="false">
+ <size value="500" unit="kB" />
+ </labels>
+ <labels name="Cloud_map_device" constant="false" bVolatile="false">
+ <size value="1500" unit="kB" />
+ </labels>
+ <labels name="Vehicle_status_host" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="Vehicle_status_device" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="x_car_host" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="y_car_host" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="yaw_car_host" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="x_car_device" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="y_car_device" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="yaw_car_device" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="vel_car" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="yaw_rate" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="steer_objective" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="speed_objective" constant="false" bVolatile="false">
+ <size value="1" unit="kB" />
+ </labels>
+ <labels name="NN_weights" constant="false" bVolatile="false">
+ <size value="142" unit="MB" />
+ </labels>
+ <labels name="Matrix_SFM_host" constant="true" bVolatile="false">
+ <size value="24" unit="kB" />
+ </labels>
+ <labels name="Matrix_SFM_device" constant="true" bVolatile="false">
+ <size value="24" unit="kB" />
+ </labels>
+ <labels name="Image_lane_lines_host" constant="false" bVolatile="false">
+ <size value="2" unit="MB" />
+ </labels>
+ <labels name="Image_lane_lines_device" constant="false" bVolatile="false">
+ <size value="2" unit="MB" />
+ </labels>
+ <labels name="Bounding_box_host" constant="false" bVolatile="false">
+ <size value="750" unit="kB" />
+ </labels>
+ <labels name="Bounding_box_device" constant="false" bVolatile="false">
+ <size value="750" unit="kB" />
+ </labels>
+ <labels name="Image_host" constant="true" bVolatile="false">
+ <size value="2" unit="MB" />
+ </labels>
+ <labels name="Image_device" constant="true" bVolatile="false">
+ <size value="2" unit="MB" />
+ </labels>
+ <labels name="Image_SFM_host" constant="true" bVolatile="false">
+ <size value="2" unit="MB" />
+ </labels>
+ <labels name="Image_SFM_device" constant="true" bVolatile="false">
+ <size value="2" unit="MB" />
+ </labels>
+ <labels name="IMU_data_host" constant="false" bVolatile="false">
+ <size value="256" unit="B" />
+ </labels>
+ <labels name="IMU_data_device" constant="true" bVolatile="false">
+ <size value="256" unit="B" />
+ </labels>
+ <labels name="Lane_boundaries_host" constant="false" bVolatile="false">
+ <size value="256" unit="B" />
+ </labels>
+ <labels name="Lane_boundaries_device" constant="false" bVolatile="false">
+ <size value="256" unit="B" />
+ </labels>
+ <events name="Lane_detect_GPU" communicationOverheadInBit="0" />
+ <events name="Detect" communicationOverheadInBit="0" />
+ <events name="SFM" communicationOverheadInBit="0" />
+ <events name="Localization_GPU" communicationOverheadInBit="0" />
+ </swModel>
+ <hwModel>
+ <definitions xsi:type="am:ProcessingUnitDefinition" name="A57" puType="CPU" />
+ <definitions xsi:type="am:ProcessingUnitDefinition" name="Denver" puType="CPU" />
+ <definitions xsi:type="am:ProcessingUnitDefinition" name="GPU_def" puType="GPU" features="CudaCores/CudaCoreXSM_128?type=HwFeature SMs/SM_2?type=HwFeature" />
+ <definitions xsi:type="am:MemoryDefinition" name="LPDDR4" memoryType="DRAM">
+ <size value="8" unit="GB" />
+ <accessLatency xsi:type="am:DiscreteValueConstant" value="0" />
+ </definitions>
+ <definitions xsi:type="am:ConnectionHandlerDefinition" name="Interconnect" policy="RoundRobin" maxBurstSize="4" maxConcurrentTransfers="1" />
+ <definitions xsi:type="am:CacheDefinition" name="CPU_L2" cacheType="unified" writeStrategy="writeback" nWays="4" coherency="false" exclusive="false" hitRate="0.0">
+ <size value="2" unit="MB" />
+ <lineSize value="64" unit="B" />
+ </definitions>
+ <definitions xsi:type="am:CacheDefinition" name="GPU_L2" cacheType="data" writeStrategy="writeback" nWays="4" coherency="false" exclusive="false" hitRate="0.0">
+ <size value="512" unit="kB" />
+ <lineSize value="64" unit="B" />
+ </definitions>
+ <featureCategories name="CudaCores" featureType="performance" description="">
+ <features name="CudaCoreXSM_128" value="128.0" />
+ </featureCategories>
+ <featureCategories name="SMs" featureType="performance">
+ <features name="SM_2" value="2.0" />
+ </featureCategories>
+ <structures name="JetsonTX2" structureType="System">
+ <structures name="GPU island" structureType="Cluster">
+ <modules xsi:type="am:ProcessingUnit" name="GPU10B" frequencyDomain="GPU_Domain?type=FrequencyDomain" definition="GPU_def?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="128" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="GPUtoDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="5" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="5" />
+ <dataRate value="20" unit="GBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:Cache" name="L2_GP10B" frequencyDomain="GPU_Domain?type=FrequencyDomain" definition="GPU_L2?type=CacheDefinition" />
+ </structures>
+ <structures name="ARM island" structureType="Cluster">
+ <modules xsi:type="am:ProcessingUnit" name="A57_Core_0" frequencyDomain="A57_Domain?type=FrequencyDomain" definition="A57?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="64" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="C2toDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <dataRate value="4500" unit="MBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:ProcessingUnit" name="A57_Core_1" frequencyDomain="A57_Domain?type=FrequencyDomain" definition="A57?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="64" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="C3toDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <dataRate value="4500" unit="MBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:ProcessingUnit" name="A57_Core_2" frequencyDomain="A57_Domain?type=FrequencyDomain" definition="A57?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="64" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="C4toDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <dataRate value="4500" unit="MBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:ProcessingUnit" name="A57_Core_3" frequencyDomain="A57_Domain?type=FrequencyDomain" definition="A57?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="64" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="C5toDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="40" />
+ <dataRate value="4500" unit="MBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:Cache" name="L2_A57" frequencyDomain="A57_Domain?type=FrequencyDomain" definition="CPU_L2?type=CacheDefinition" />
+ </structures>
+ <structures name="Denver island" structureType="Cluster">
+ <modules xsi:type="am:ProcessingUnit" name="Denver_Core_1" frequencyDomain="Denver_Domain?type=FrequencyDomain" definition="Denver?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="64" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="C0toDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="16" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="16" />
+ <dataRate value="14" unit="GBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:ProcessingUnit" name="Denver_Core_0" frequencyDomain="Denver_Domain?type=FrequencyDomain" definition="Denver?type=ProcessingUnitDefinition">
+ <ports name="P1" bitWidth="64" priority="0" portType="initiator" portInterface="custom" />
+ <accessElements name="C1toDRAM" destination="SYSTEM_DRAM?type=Memory">
+ <readLatency xsi:type="am:DiscreteValueConstant" value="16" />
+ <writeLatency xsi:type="am:DiscreteValueConstant" value="16" />
+ <dataRate value="14" unit="GBPerSecond" />
+ </accessElements>
+ </modules>
+ <modules xsi:type="am:Cache" name="L2_Denver" frequencyDomain="Denver_Domain?type=FrequencyDomain" definition="CPU_L2?type=CacheDefinition" />
+ </structures>
+ <modules xsi:type="am:Memory" name="SYSTEM_DRAM" frequencyDomain="DRAM_eff_Freq?type=FrequencyDomain" definition="LPDDR4?type=MemoryDefinition">
+ <ports name="Mem_P1" bitWidth="128" priority="0" portType="responder" portInterface="AXI" />
+ </modules>
+ <modules xsi:type="am:ConnectionHandler" name="Intercon" frequencyDomain="DRAM_eff_Freq?type=FrequencyDomain" definition="Interconnect?type=ConnectionHandlerDefinition">
+ <ports name="Inter_P1" bitWidth="128" priority="0" portType="responder" portInterface="AXI" />
+ <ports name="Inter_P2" bitWidth="128" priority="0" portType="responder" portInterface="AXI" />
+ <ports name="Inter_P3" bitWidth="128" priority="0" portType="responder" portInterface="AXI" />
+ <ports name="Inter_P4" bitWidth="128" priority="0" portType="initiator" portInterface="AXI" />
+ </modules>
+ </structures>
+ <domains xsi:type="am:FrequencyDomain" name="A57_Domain" clockGating="false">
+ <defaultValue value="2.0" unit="GHz" />
+ </domains>
+ <domains xsi:type="am:FrequencyDomain" name="Denver_Domain" clockGating="false">
+ <defaultValue value="2.0" unit="GHz" />
+ </domains>
+ <domains xsi:type="am:FrequencyDomain" name="GPU_Domain" clockGating="false">
+ <defaultValue value="1.5" unit="GHz" />
+ </domains>
+ <domains xsi:type="am:FrequencyDomain" name="DRAM_eff_Freq" clockGating="false">
+ <defaultValue value="1.5" unit="GHz" />
+ </domains>
+ </hwModel>
+ <osModel>
+ <semaphores name="S1" semaphoreType="Spinlock" initialValue="0" maxValue="0" priorityCeilingProtocol="true" />
+ <semaphores name="S2" semaphoreType="Spinlock" initialValue="0" maxValue="0" priorityCeilingProtocol="true" />
+ <semaphores name="S3" semaphoreType="Spinlock" initialValue="0" maxValue="0" priorityCeilingProtocol="true" />
+ <semaphores name="S4" semaphoreType="Spinlock" initialValue="0" maxValue="0" priorityCeilingProtocol="true" />
+ <operatingSystems name="Sched_Cluster_A57">
+ <taskSchedulers name="Scheduler_A57">
+ <schedulingAlgorithm xsi:type="am:FixedPriorityPreemptive" />
+ </taskSchedulers>
+ </operatingSystems>
+ <operatingSystems name="GPU_Cluster">
+ <taskSchedulers name="GPU_Sched">
+ <schedulingAlgorithm xsi:type="am:UserSpecificSchedulingAlgorithm">
+ <parameterExtensions key="minimumTimeslice" value="1000 µs" />
+ <parameterExtensions key="maximumTimeslice" value="50000 µs" />
+ </schedulingAlgorithm>
+ </taskSchedulers>
+ </operatingSystems>
+ <operatingSystems name="Scheduling_Cluster_Denver">
+ <taskSchedulers name="Scheduler_Denver">
+ <schedulingAlgorithm xsi:type="am:FixedPriorityPreemptive" />
+ </taskSchedulers>
+ </operatingSystems>
+ </osModel>
+ <stimuliModel>
+ <stimuli xsi:type="am:InterProcessStimulus" name="SFM_stim" />
+ <stimuli xsi:type="am:InterProcessStimulus" name="Localization_stim" />
+ <stimuli xsi:type="am:InterProcessStimulus" name="detection_stim" />
+ <stimuli xsi:type="am:InterProcessStimulus" name="Lane_detection_stim" />
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_5ms">
+ <recurrence value="5" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_10ms">
+ <recurrence value="10" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_12ms">
+ <recurrence value="12" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_15ms">
+ <recurrence value="15" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_33ms">
+ <recurrence value="33" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_66ms">
+ <recurrence value="66" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_100ms">
+ <recurrence value="100" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_200ms">
+ <recurrence value="200" unit="ms" />
+ </stimuli>
+ <stimuli xsi:type="am:PeriodicStimulus" name="periodic_400ms">
+ <recurrence value="400" unit="ms" />
+ </stimuli>
+ </stimuliModel>
+ <constraintsModel>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_DASM" process="DASM?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_Task_CAN" process="CANbus_polling?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_Task_Planner" process="Planner?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="12" unit="ms" />
+ </limit>
+ </requirements>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_EKF" process="EKF?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="15" unit="ms" />
+ </limit>
+ </requirements>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_LIDAR" process="Lidar_Grabber?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="33" unit="ms" />
+ </limit>
+ </requirements>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_SFM" process="PRE_SFM_gpu_POST?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="33" unit="ms" />
+ </limit>
+ </requirements>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_Detection" process="PRE_Lane_detection_gpu_POST?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="200" unit="ms" />
+ </limit>
+ </requirements>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_Lane_Detection" process="PRE_Detection_gpu_POST?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="66" unit="ms" />
+ </limit>
+ </requirements>
+ <requirements xsi:type="am:ProcessRequirement" name="Deadline_Task_Localization" process="PRE_Localization_gpu_POST?type=Task">
+ <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
+ <limitValue value="400" unit="ms" />
+ </limit>
+ </requirements>
+ </constraintsModel>
+ <mappingModel addressMappingType="address">
+ <schedulerAllocation scheduler="GPU_Sched?type=TaskScheduler" responsibility="GPU10B?type=ProcessingUnit" executingPU="GPU10B?type=ProcessingUnit" />
+ <schedulerAllocation scheduler="Scheduler_Denver?type=TaskScheduler" responsibility="Denver_Core_1?type=ProcessingUnit Denver_Core_0?type=ProcessingUnit" executingPU="Denver_Core_1?type=ProcessingUnit" />
+ <schedulerAllocation scheduler="Scheduler_A57?type=TaskScheduler" responsibility="A57_Core_0?type=ProcessingUnit A57_Core_1?type=ProcessingUnit A57_Core_2?type=ProcessingUnit A57_Core_3?type=ProcessingUnit" executingPU="Denver_Core_1?type=ProcessingUnit" />
+ <taskAllocation task="CANbus_polling?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="Denver_Core_1?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="OS_Overhead?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="Denver_Core_1?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="DASM?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="Denver_Core_1?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="Lidar_Grabber?type=Task" scheduler="Scheduler_Denver?type=TaskScheduler" affinity="Denver_Core_0?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="Planner?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="A57_Core_1?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="EKF?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="A57_Core_2?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="PRE_Detection_gpu_POST?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="A57_Core_3?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="PRE_Lane_detection_gpu_POST?type=Task" scheduler="Scheduler_A57?type=TaskScheduler" affinity="A57_Core_3?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="PRE_SFM_gpu_POST?type=Task" scheduler="Scheduler_Denver?type=TaskScheduler" affinity="Denver_Core_1?type=ProcessingUnit Denver_Core_0?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="PRE_Localization_gpu_POST?type=Task" scheduler="Scheduler_Denver?type=TaskScheduler" affinity="Denver_Core_1?type=ProcessingUnit Denver_Core_0?type=ProcessingUnit">
+ <schedulingParameters priority="1" />
+ </taskAllocation>
+ <taskAllocation task="Lane_detection?type=Task" scheduler="GPU_Sched?type=TaskScheduler" affinity="GPU10B?type=ProcessingUnit">
+ <parameterExtensions key="TimeSlice_Lane_detection" value="50000µs" />
+ </taskAllocation>
+ <taskAllocation task="Detection?type=Task" scheduler="GPU_Sched?type=TaskScheduler" affinity="GPU10B?type=ProcessingUnit">
+ <parameterExtensions key="TimeSlice_Detection" value="50000µs" />
+ </taskAllocation>
+ <taskAllocation task="SFM?type=Task" scheduler="GPU_Sched?type=TaskScheduler" affinity="GPU10B?type=ProcessingUnit">
+ <parameterExtensions key="TimeSlice_SFM" value="7200µs" />
+ </taskAllocation>
+ <taskAllocation task="Localization?type=Task" scheduler="GPU_Sched?type=TaskScheduler" affinity="GPU10B?type=ProcessingUnit">
+ <parameterExtensions key="TimeSlice_Localization" value="50000µs" />
+ </taskAllocation>
+ <memoryMapping abstractElement="Bounding_box_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Bounding_box_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Cloud_map_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Cloud_map_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Image_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Image_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Image_lane_lines_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Image_lane_lines_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Image_SFM_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Image_SFM_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="IMU_data_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="IMU_data_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Lane_boundaries_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Lane_boundaries_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Matrix_SFM_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Matrix_SFM_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="NN_weights?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Occupancy_grid_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="speed_objective?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="steer_objective?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Vehicle_status_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="Vehicle_status_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="vel_car?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="x_car_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="x_car_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="y_car_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="y_car_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="yaw_car_device?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="yaw_car_host?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ <memoryMapping abstractElement="yaw_rate?type=Label" memory="SYSTEM_DRAM?type=Memory" memoryPositionAddress="0x0" />
+ </mappingModel>
+</am:Amalthea>
diff --git a/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/SharedConsts.java b/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/SharedConsts.java
index 11c0151..db46713 100644
--- a/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/SharedConsts.java
+++ b/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/SharedConsts.java
@@ -20,6 +20,8 @@
public static int RUNTIMESEC = 2 * 60 * 60;
public static final String SINGLE_CORE_MODEL = "model-input/SingleTCs/SingleTCs.amxmi";
public static final String FHDO_MODELZNP = "model-input/ChallengeModelNP.amxmi";
+ public static final String FHDO_MODELZ = "model-input/ChallengeModelZero.amxmi";
+
/*-----------Measurement Configuration--------------–*/
@@ -39,6 +41,14 @@
public static final boolean zeroHigh = true;
/*-----------End Measur. Configuration--------------–*/
+ /*----------- Mapping Solutions ---------------------*/
+ public static final int[] rtsoptimized = new int[] { 2, 3, 5, 3, 2, 1, 5, 5, 2, 1, 0, 6, 4, 6 };
+ public static final int[] lboptimized = new int[] { 2, 1, 3, 3, 3, 0, 1, 5, 2, 1, 6, 5, 4, 6 };
+ public static final int[] tcoptimized = new int[] { 2, 4, 5, 1, 2, 0, 5, 0, 3, 4, 1, 6, 3, 6 };
+ public static final int[] earlyValid = new int[] { 5, 4, 1, 0, 1, 0, 1, 0, 3, 0, 6, 3, 2, 6 };
+
+
+
public enum OPT_TYPE {
TASKCHAINS, RESPONSETIMESUM, LOADBALANCING
}
diff --git a/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/test/BlockingTest.java b/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/test/BlockingTest.java
new file mode 100644
index 0000000..d2a66a5
--- /dev/null
+++ b/eclipse-tools/responseTime-analyzer/plugins/org.eclipse.app4mc.gsoc_rta/src/org/eclipse/app4mc/gsoc_rta/test/BlockingTest.java
@@ -0,0 +1,158 @@
+package org.eclipse.app4mc.gsoc_rta.test;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.math.BigInteger;
+
+import org.eclipse.app4mc.gsoc_rta.SharedConsts;
+import org.eclipse.app4mc.gsoc_rta.Blocking;
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.amalthea.model.Time;
+import org.eclipse.app4mc.amalthea.model.TimeUnit;
+import org.eclipse.app4mc.amalthea.model.io.AmaltheaLoader;
+import org.eclipse.app4mc.amalthea.model.util.FactoryUtil;
+import org.eclipse.app4mc.amalthea.model.util.RuntimeUtil.TimeType;
+import org.junit.BeforeClass;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runners.MethodSorters;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@FixMethodOrder(MethodSorters.JVM)
+public class BlockingTest {
+
+ final Logger log = LoggerFactory.getLogger(this.getClass());
+
+ @BeforeClass
+ public static void init() {
+ final Amalthea ama = AmaltheaLoader.loadFromFile(new File(SharedConsts.FHDO_MODELZ));
+ if (null == ama) {
+ final Logger log = LoggerFactory.getLogger(BlockingTest.class);
+ log.error("Error loading model");
+ }
+ // Testing pipeline
+ }
+
+ @Test
+ public void testRtso() {
+ final Amalthea ama = AmaltheaLoader.loadFromFile(new File(SharedConsts.FHDO_MODELZ));
+ if (null == ama) {
+ this.log.error("Error loading model");
+ return;
+ }
+ final Amalthea amalthea = ama;
+
+ final Blocking ll = new Blocking(SharedConsts.rtsoptimized, amalthea);
+ Time sum = FactoryUtil.createTime(BigInteger.ZERO, TimeUnit.PS);
+ for (final Task t : amalthea.getSwModel().getTasks()) {
+ final Time llo = ll.getLocalBlockingTime(t, TimeType.WCET);
+
+ final String s1 = t.getName();
+ final double s2 = llo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("ll_{{}}={}", s1, s2);
+
+ final Time glo = ll.getGlobalBlockingTime(t, TimeType.WCET);
+
+ final double s3 = glo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("gl_{{}}={}", s1, s3);
+ sum = sum.add(llo).add(glo);
+ }
+ this.log.debug("{}\n\n", sum);
+ assertEquals(474926370000l, sum.getValue().longValue());
+ }
+
+ @Test
+ public void testLbo() {
+ final Amalthea ama = AmaltheaLoader.loadFromFile(new File(SharedConsts.FHDO_MODELZ));
+ if (null == ama) {
+ this.log.error("Error loading model");
+ return;
+ }
+ final Amalthea amalthea = ama;
+
+
+ final Blocking ll = new Blocking(SharedConsts.lboptimized, amalthea);
+ Time sum = FactoryUtil.createTime(BigInteger.ZERO, TimeUnit.PS);
+ for (final Task t : amalthea.getSwModel().getTasks()) {
+ final Time llo = ll.getLocalBlockingTime(t, TimeType.WCET);
+ final String s1 = t.getName();
+ final double s2 = llo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("ll_{{}}={}", s1, s2);
+
+ final Time glo = ll.getGlobalBlockingTime(t, TimeType.WCET);
+ final double s3 = glo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("gl_{{}}={}", s1, s3);
+
+ sum = sum.add(llo).add(glo);
+ }
+ this.log.debug("{}\n\n", sum);
+ assertEquals(400362057000l, sum.getValue().longValue());
+ }
+
+ @Test
+ public void testTco() {
+ final Amalthea ama = AmaltheaLoader.loadFromFile(new File(SharedConsts.FHDO_MODELZ));
+ if (null == ama) {
+ this.log.error("Error loading model");
+ return;
+ }
+ final Amalthea amalthea = ama;
+
+
+ final Blocking ll = new Blocking(SharedConsts.tcoptimized, amalthea);
+ Time sum = FactoryUtil.createTime(BigInteger.ZERO, TimeUnit.PS);
+ for (final Task t : amalthea.getSwModel().getTasks()) {
+ final Time llo = ll.getLocalBlockingTime(t, TimeType.WCET);
+ final String s1 = t.getName();
+ final double s2 = llo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("ll_{{}}={}", s1, s2);
+ final Time glo = ll.getGlobalBlockingTime(t, TimeType.WCET);
+ final double s3 = glo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("gl_{{}}={}", s1, s3);
+ sum = sum.add(llo).add(glo);
+ }
+ this.log.debug("{}\n\n", sum);
+ assertEquals(438871500000l, sum.getValue().longValue());
+ }
+
+
+ @Test
+ public void testEv() {
+
+ final Amalthea ama = AmaltheaLoader.loadFromFile(new File(SharedConsts.FHDO_MODELZ));
+ if (null == ama) {
+ this.log.error("Error loading model");
+ return;
+ }
+ final Amalthea amalthea = ama;
+
+ final Blocking ll = new Blocking(SharedConsts.earlyValid, amalthea);
+ Time sum = FactoryUtil.createTime(BigInteger.ZERO, TimeUnit.PS);
+ for (final Task t : amalthea.getSwModel().getTasks()) {
+ final Time llo = ll.getLocalBlockingTime(t, TimeType.WCET);
+ final String s1 = t.getName();
+ final double s2 = llo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("ll_{{}}={}", s1, s2);
+ final Time glo = ll.getGlobalBlockingTime(t, TimeType.WCET);
+ final double s3 = glo.divide(FactoryUtil.createTime(BigInteger.valueOf(1000000000), TimeUnit.PS));
+ this.log.debug("gl_{{}}={}", s1, s3);
+ sum = sum.add(llo).add(glo);
+ }
+ this.log.debug("{}\n\n", sum);
+ assertEquals(468365285000l, sum.getValue().longValue());
+ }
+
+ @Test
+ public void testUnusedMethods() {
+ // @Jun: Please reivse these tests
+ final Amalthea model = AmaltheaLoader.loadFromFile(new File(SharedConsts.FHDO_MODELZNP));
+ final Blocking b = new Blocking(SharedConsts.earlyValid, model);
+ final Task investigateMe = model.getSwModel().getTasks().get(0);
+ assertEquals(0, b.otherPriorTaskBlockingTime(investigateMe, TimeType.WCET).getValue().intValue());
+ assertEquals(0, b.minPriorTaskBlockingTime(investigateMe).getValue().intValue());
+ assertEquals(0, b.maxPriorTaskBlockingTime(investigateMe, TimeType.WCET).getValue().intValue());
+ }
+}