Commit d3b4c877 authored by jdelange's avatar jdelange

* ocarina/tests/test042/test.aadl.out

   ocarina/tests/test042/test.aadl
   ocarina/resources/AADLv2/arinc653_properties.aadl
   ocarina/examples/real/safety/model.aadl
    - Update the testsuite to take into account the new
      ARINC653 properties.



git-svn-id: https://tecsw.estec.esa.int/svn/taste/trunk/ocarina@4606 129961e7-ef38-4bb5-a8f7-c9a525a55882
parent 2a4e0d26
......@@ -10,7 +10,7 @@ virtual processor partition
properties
POK::Scheduler => RR;
ARINC653::HM_Errors => (Partition_Init);
ARINC653::HM_Actions => (Partition_Stop);
ARINC653::HM_Partition_Recovery_Actions => (Partition_Stop);
end partition;
virtual processor implementation partition.impl
......@@ -31,7 +31,7 @@ properties
POK::Slots => (500ms, 500ms);
POK::Slots_Allocation => ( reference (part1), reference (part2));
ARINC653::HM_Errors => (Module_Config);
ARINC653::HM_Actions => (Module_Stop);
ARINC653::HM_Module_Recovery_Actions => (Stop);
end ppc.impl;
process myprocess
......@@ -66,7 +66,7 @@ properties
deadline => 500ms;
compute_execution_time => 0ms .. 1ms;
ARINC653::HM_Errors => (Illegal_Request);
ARINC653::HM_Actions => (Process_Stop);
ARINC653::HM_Process_Recovery_Actions => (Process_Stop);
end mythread.impl1;
thread implementation mythread.impl2
......
-- Property set for the ARINC653 annex
-- This version comes with the annex draft issued on 20090727
-- This version comes with the annex draft issued on 12152010
property set ARINC653 is
......@@ -8,9 +8,9 @@ property set ARINC653 is
Slots_Allocation: list of reference (virtual processor)
applies to (processor);
Module_Major_Frame : Time applies to (processor);
Module_Major_Frame: Time applies to (processor);
Sampling_Refresh_Period : Time applies to (data port);
Sampling_Refresh_Period: Time applies to (data port);
Supported_Error_Code: type enumeration
(Module_Config, -- module level errors
......@@ -30,51 +30,57 @@ property set ARINC653 is
Power_Fail
);
Supported_Partition_Recovery_Action : type enumeration
Supported_Partition_Recovery_Action: type enumeration
(Ignore, Partition_Stop, Warm_Restart, Cold_Restart);
Supported_Process_Recovery_Action : type enumeration
Supported_Process_Recovery_Action: type enumeration
(Ignore, Confirm, Partition_Stop, Process_Stop,
Process_Stop_And_Start_Another, Process_Restart,
Nothing, Cold_Restart, Warm_Restart);
Supported_Module_Recovery_Action : type enumeration
Supported_Module_Recovery_Action: type enumeration
(Ignore, Stop, Reset);
HM_Module_Recovery_Actions : list of
ARINC653::Supported_Module_Recovery_Action applies to (processor);
HM_Module_Recovery_Actions: list of
ARINC653::Supported_Module_Recovery_Action
applies to (processor);
HM_Partition_Recovery_Actions : list of
ARINC653::Supported_Partition_Recovery_Action applies to (virtual processor);
HM_Partition_Recovery_Actions: list of
ARINC653::Supported_Partition_Recovery_Action
applies to (virtual processor);
HM_Process_Recovery_Actions : list of
ARINC653::Supported_Process_Recovery_Action applies to (thread);
HM_Process_Recovery_Actions: list of
ARINC653::Supported_Process_Recovery_Action
applies to (thread);
-- The difference between ignore and nothing is that ignore does
-- not perform anything but logs the error. On the contrary,
-- nothing will do nothing, the HM CallBack should do everything.
Supported_Access_Type : type enumeration (read, write, read_write);
Supported_Access_Type: type enumeration (read, write, read_write);
Supported_Memory_Type: type enumeration (Data_Memory, Code_Memory, IO_Memory);
HM_Errors : list of ARINC653::Supported_Error_Code
HM_Errors : list of ARINC653::Supported_Error_Code
applies to (processor, virtual processor, thread);
HM_Callback : classifier (subprogram Classifier)
HM_Callback : classifier (subprogram classifier)
applies to (thread, virtual processor, processor);
Memory_Type : list of ARINC653::Supported_Memory_Type
applies to (memory);
Access_Type : ARINC653::Supported_Access_Type applies to (memory);
Access_Type : ARINC653::Supported_Access_Type
applies to (memory);
Timeout : Time applies to (data port, event data port, event port, data access);
Supported_DAL_Type : type enumeration (LEVEL_A, LEVEL_B, LEVEL_C, LEVEL_D, LEVEL_E);
DAL : ARINC653::Supported_DAL_Type applies to (virtual processor);
DAL : ARINC653::Supported_DAL_Type
applies to (virtual processor);
System_Overhead_Time : Time applies to (processor, virtual processor);
System_Overhead_Time : Time
applies to (processor, virtual processor);
end ARINC653;
......@@ -17,7 +17,6 @@ end ordercmd;
data protected_data
properties
Concurrency_Control_Protocol => Protected_Access;
ARINC653::Queueing_Discipline => FIFO;
end protected_data;
......@@ -66,8 +65,8 @@ properties
Period => 20 ms;
Compute_Execution_Time => 10 ms .. 12 ms;
Deadline => 40 ms;
ARINC653::HM_Errors => (Deadline_Missed, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Actions => (Process_Stop_And_Reinit, Process_Stop_And_Reinit, Ignore, Ignore);
ARINC653::HM_Errors => (Deadline_Miss, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Process_Recovery_Actions => (Process_Stop, Process_Stop, Ignore, Ignore);
end sensor_temperature_thread;
thread implementation sensor_temperature_thread.impl
......@@ -84,8 +83,8 @@ properties
Period => 20 ms;
Compute_Execution_Time => 8 ms .. 10 ms;
Deadline => 40 ms;
ARINC653::HM_Errors => (Deadline_Missed, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Actions => (Process_Stop_And_Reinit, Process_Stop_And_Reinit, Process_Stop_And_Reinit, Process_Stop_And_Reinit);
ARINC653::HM_Errors => (Deadline_Miss, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Process_Recovery_Actions => (Process_Stop, Process_Stop, Process_Stop, Process_Stop);
end sensor_receiveinput_thread;
thread implementation sensor_receiveinput_thread.impl
......@@ -106,8 +105,8 @@ properties
Period => 20 ms;
Compute_Execution_Time => 5 ms .. 7 ms;
Deadline => 40 ms;
ARINC653::HM_Errors => (Deadline_Missed, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Actions => (Process_Stop_And_Reinit, Process_Stop, Process_Stop, Process_Stop);
ARINC653::HM_Errors => (Deadline_Miss, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Process_Recovery_Actions => (Process_Stop, Process_Stop, Process_Stop, Process_Stop);
end commandboard_receiveinput_thread;
thread commandboard_printinfos_thread
......@@ -123,17 +122,15 @@ properties
Period => 20 ms;
Compute_Execution_Time => 2 ms .. 6 ms;
Deadline => 40 ms;
ARINC653::HM_Errors => (Deadline_Missed, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Actions => (Process_Stop_And_Reinit, Process_Stop_And_Reinit, Process_Stop_And_Reinit, Process_Stop_And_Reinit);
ARINC653::HM_Errors => (Deadline_Miss, Application_Error, Numeric_Error, Illegal_Request);
ARINC653::HM_Process_Recovery_Actions => (Process_Stop, Process_Stop, Process_Stop, Process_Stop);
end commandboard_printinfos_thread;
-- Now, declare process that model partition address space
process partition1_process
features
queueingin: in event data port integer {Queue_Size => 4;
ARINC653::Timeout => 5ms;
ARINC653::Queueing_Discipline => FIFO;};
queueingin: in event data port integer {Queue_Size => 4;};
-- In the context of a event data port, the ARINC653::Timeout property
-- is the timeout we used in the APEX functions.
-- More, the Queue_Size property is used to compute the size of the queue
......@@ -155,7 +152,7 @@ end partition1_process.impl;
process partition2_process
features
queueingout: out event data port integer {ARINC653::Timeout => 10ms;};
queueingout: out event data port integer;
-- In the context of a event data port, the ARINC653::Timeout property
-- is the timeout we used in the APEX functions.
samplingin: in data port integer {ARINC653::Sampling_Refresh_Period => 10ms;};
......@@ -177,8 +174,8 @@ connections
eventconnectionexample: port receiver.newavg -> printer.newavg;
port printer.ordersensor -> queueingout;
port samplingin -> receiver.temp;
data access sem -> receiver.need_semaphore {ARINC653::Timeout => 20 ms;};
data access sem -> printer.need_semaphore {ARINC653::Timeout => 10 ms;};
data access sem -> receiver.need_semaphore;
data access sem -> printer.need_semaphore;
end partition2_process.impl;
-- Main runtime
......@@ -195,7 +192,7 @@ properties
ARINC653::Partition_Slots => (10ms, 10ms, 30ms);
ARINC653::Slots_Allocation => (reference (part1), reference (part2), reference (part1));
ARINC653::HM_Errors => (Power_Fail);
ARINC653::HM_Actions => (Module_Restart);
ARINC653::HM_Module_Recovery_Actions => (Reset);
end powerpc.impl;
......@@ -239,4 +236,4 @@ properties
end arincsystem.impl;
end PartitionedSystemExample;
\ No newline at end of file
end PartitionedSystemExample;
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment