-- This package is the root of the library of processors package Processors public with Deployment; with Processor_properties; ----------------- -- Generic_CPU -- ----------------- processor Generic_CPU -- Empty processor definition, for refinement purposes end Generic_CPU; -- imported from rma.aadl processor cpu_rma properties Deployment::Execution_Platform => Native; Scheduling_Protocol => (Posix_1003_Highest_Priority_First_Protocol); Processor_properties::Max_Prio_First => high; end cpu_rma; Processor implementation cpu_rma.impl end cpu_rma.impl; -- imported from radar.aadl PROCESSOR leon2 PROPERTIES Clock_Period => 200 ns; Scheduling_Protocol => (POSIX_1003_HIGHEST_PRIORITY_FIRST_PROTOCOL); Deployment::Execution_Platform=> LEON_ORK; -- Generate code for ORK+, LEON2 Priority_Range => 0 .. 255; Preemptive_Scheduler => true; END leon2; -- imported from round_robin.aadl processor Proc end Proc; processor implementation Proc.RR_NoPreemption properties Scheduling_Protocol => (ROUND_ROBIN_PROTOCOL); Scheduler_Quantum => 20 ms; Preemptive_Scheduler => true; -- T = 0 -> T1 runs -- T = 20 ms -> T2 runs -- T = 40 ms -> T1 runs -- T = 60ms (hyperperiod) -> T1 runs -- ... end Proc.RR_NoPreemption; processor implementation Proc.RR_Preemption properties Preemptive_Scheduler => false; -- T = 0 -> T1 runs -- T = xx -> T2 runs -- T = yy -> T1 runs -- T = zz -> T1 runs end Proc.RR_Preemption; processor MC68040 -- imported from vxworks_platform properties Deployment::Execution_Platform => VxWorks; end MC68040; processor rs_6000 properties Deployment::Execution_Platform => VxWorks; Processor_Properties::Max_Prio_First => high; scheduling_protocol => (RMS); end rs_6000; end Processors;