Commit 477341cb authored by Maxime Perrotin's avatar Maxime Perrotin
Browse files

Add TSP test cases

parent 63176319
......@@ -61,9 +61,11 @@ package body TASTE.Data_View is
end if;
Ocarina.Options.Root_System_Name :=
Get_String_Name ("taste_dataview.others");
Get_String_Name ("taste_dataview.others");
System := Root_System (Instantiate_Model (Root => DV_Root));
if DV_Root /= No_Node then
System := Root_System (Instantiate_Model (Root => DV_Root));
end if;
if No (System) then
raise Data_View_Error with "Could not instantiate Data View";
......
This diff is collapsed.
......@@ -43,7 +43,7 @@ END PI_receiveAOCS_TC.others;
SUBPROGRAM PI_sendAOCS_TM
FEATURES
TM : OUT PARAMETER DataView::MyInteger {
TM : IN PARAMETER DataView::MyInteger {
Taste::encoding => NATIVE;
};
PROPERTIES
......@@ -73,14 +73,14 @@ FEATURES
};
PI_receiveAOCS_TC : PROVIDES SUBPROGRAM ACCESS interfaceview::IV::AOCS::PI_receiveAOCS_TC.others {
Taste::coordinates => "103247 74960";
Taste::RCMoperationKind => unprotected;
Taste::RCMoperationKind => sporadic;
Taste::RCMperiod => 0 ms;
Taste::Deadline => 0 ms;
Taste::InterfaceName => "receiveAOCS_TC";
};
PI_sendAOCS_TM : PROVIDES SUBPROGRAM ACCESS interfaceview::IV::AOCS::PI_sendAOCS_TM.others {
Taste::coordinates => "113808 74960";
Taste::RCMoperationKind => unprotected;
Taste::RCMoperationKind => sporadic;
Taste::RCMperiod => 0 ms;
Taste::Deadline => 0 ms;
Taste::InterfaceName => "sendAOCS_TM";
......
KAZOO=../../kazoo
all: test-parse
cp InterfaceView.aadl output/concurrency_view && \
cp DeploymentView.aadl output/concurrency_view && \
cp DataView.aadl output/concurrency_view/D_view.aadl && \
cd output/concurrency_view && ocarina -x main.aadl
test-parse: clean
$(KAZOO) --gw \
-o output \
--glue \
--no-stdlib \
--debug \
../common/libhw.aadl
gdb: clean
gdb --args $(KAZOO) --gw \
-o output \
--glue \
--debug
clean:
rm -rf output
.PHONY: clean test-parse gdb
--------------------------------------------------------
--! File generated by asn2aadl v2.1.28: DO NOT EDIT !
--------------------------------------------------------
--! InputASN1FileChecksum:6bf664b31ce9ca6fd89af52cea7ea0f2:/home/taste/kazoo/test/test-tsp2/DataView.asn:
--! InputASN1FileChecksum:ee8a7e01f29874c0d50f437d5abb9599:/home/taste/tool-inst/share/taste-types/taste-types.asn:
--------------------------------------------------------
package DataView
public
with Data_Model;
with Taste;
with Base_Types;
with Deployment;
DATA Simulink_Tunable_Parameter
PROPERTIES
TASTE::Ada_Package_Name => "TASTE_Directives";
Type_Source_Name => "Simulink-Tunable-Parameter";
Deployment::ASN1_Module_Name => "TASTE-Directives";
TASTE::Forbid_in_PI => true;
END Simulink_Tunable_Parameter;
DATA Timer
PROPERTIES
TASTE::Ada_Package_Name => "TASTE_Directives";
Type_Source_Name => "Timer";
Deployment::ASN1_Module_Name => "TASTE-Directives";
TASTE::Forbid_in_PI => true;
END Timer;
DATA Taste_directive
PROPERTIES
TASTE::Ada_Package_Name => "TASTE_Directives";
Type_Source_Name => "Taste-directive";
Deployment::ASN1_Module_Name => "TASTE-Directives";
TASTE::Forbid_in_PI => true;
END Taste_directive;
data Stream_Element_Buffer
-- Root type for buffer elements
properties
Data_Model::Data_Representation => Character;
end Stream_Element_Buffer;
DATA T_UInt32
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::EncodingDefinitionFile => classifier(DataView::ACN_taste_types);
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-UInt32";
TASTE::Position_In_File => [ line => 8 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_UInt32;
DATA IMPLEMENTATION T_UInt32.impl
END T_UInt32.impl;
DATA T_UInt32_Buffer_Max
END T_UInt32_Buffer_Max;
DATA IMPLEMENTATION T_UInt32_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_UInt32
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_UInt32_Buffer_Max.impl;
DATA T_UInt32_Buffer
END T_UInt32_Buffer;
DATA IMPLEMENTATION T_UInt32_Buffer.impl
-- Buffer to hold a marshalled data of type T_UInt32
SUBCOMPONENTS
Buffer : data T_UInt32_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
END T_UInt32_Buffer.impl;
DATA T_Int8
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::EncodingDefinitionFile => classifier(DataView::ACN_taste_types);
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-Int8";
TASTE::Position_In_File => [ line => 10 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_Int8;
DATA IMPLEMENTATION T_Int8.impl
END T_Int8.impl;
DATA T_Int8_Buffer_Max
END T_Int8_Buffer_Max;
DATA IMPLEMENTATION T_Int8_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_Int8
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_Int8_Buffer_Max.impl;
DATA T_Int8_Buffer
END T_Int8_Buffer;
DATA IMPLEMENTATION T_Int8_Buffer.impl
-- Buffer to hold a marshalled data of type T_Int8
SUBCOMPONENTS
Buffer : data T_Int8_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
END T_Int8_Buffer.impl;
DATA T_Int32
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::EncodingDefinitionFile => classifier(DataView::ACN_taste_types);
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-Int32";
TASTE::Position_In_File => [ line => 6 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_Int32;
DATA IMPLEMENTATION T_Int32.impl
END T_Int32.impl;
DATA T_Int32_Buffer_Max
END T_Int32_Buffer_Max;
DATA IMPLEMENTATION T_Int32_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_Int32
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_Int32_Buffer_Max.impl;
DATA T_Int32_Buffer
END T_Int32_Buffer;
DATA IMPLEMENTATION T_Int32_Buffer.impl
-- Buffer to hold a marshalled data of type T_Int32
SUBCOMPONENTS
Buffer : data T_Int32_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
END T_Int32_Buffer.impl;
DATA T_Boolean
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::EncodingDefinitionFile => classifier(DataView::ACN_taste_types);
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 1; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-Boolean";
TASTE::Position_In_File => [ line => 14 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aBOOLEAN;
END T_Boolean;
DATA IMPLEMENTATION T_Boolean.impl
END T_Boolean.impl;
DATA T_Boolean_Buffer_Max
END T_Boolean_Buffer_Max;
DATA IMPLEMENTATION T_Boolean_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_Boolean
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_Boolean_Buffer_Max.impl;
DATA T_Boolean_Buffer
END T_Boolean_Buffer;
DATA IMPLEMENTATION T_Boolean_Buffer.impl
-- Buffer to hold a marshalled data of type T_Boolean
SUBCOMPONENTS
Buffer : data T_Boolean_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
END T_Boolean_Buffer.impl;
DATA T_UInt8
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.asn");
TASTE::EncodingDefinitionFile => classifier(DataView::ACN_taste_types);
TASTE::Ada_Package_Name => "TASTE_BasicTypes";
Deployment::ASN1_Module_Name => "TASTE-BasicTypes";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 8; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "T-UInt8";
TASTE::Position_In_File => [ line => 12 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aINTEGER;
END T_UInt8;
DATA IMPLEMENTATION T_UInt8.impl
END T_UInt8.impl;
DATA T_UInt8_Buffer_Max
END T_UInt8_Buffer_Max;
DATA IMPLEMENTATION T_UInt8_Buffer_Max.impl
-- Buffer to hold a marshalled data of type T_UInt8
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END T_UInt8_Buffer_Max.impl;
DATA T_UInt8_Buffer
END T_UInt8_Buffer;
DATA IMPLEMENTATION T_UInt8_Buffer.impl
-- Buffer to hold a marshalled data of type T_UInt8
SUBCOMPONENTS
Buffer : data T_UInt8_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
END T_UInt8_Buffer.impl;
DATA TASTE_Boolean
PROPERTIES
-- name of the ASN.1 source file:
Source_Text => ("/home/taste/kazoo/test/test-tsp2/DataView.asn");
TASTE::EncodingDefinitionFile => classifier(DataView::ACN_DataView);
TASTE::Ada_Package_Name => "TASTE_Dataview";
Deployment::ASN1_Module_Name => "TASTE-Dataview";
Source_Language => (ASN1);
-- Size of a buffer to cover all forms of message representation:
-- Real message size is 1; suggested aligned message buffer is...
Source_Data_Size => 8 Bytes;
-- name of the corresponding data type in the source file:
Type_Source_Name => "TASTE-Boolean";
TASTE::Position_In_File => [ line => 5 ; column => 1 ; ];
-- what kind of type is this?
TASTE::ASN1_Basic_Type =>aBOOLEAN;
END TASTE_Boolean;
DATA IMPLEMENTATION TASTE_Boolean.impl
END TASTE_Boolean.impl;
DATA TASTE_Boolean_Buffer_Max
END TASTE_Boolean_Buffer_Max;
DATA IMPLEMENTATION TASTE_Boolean_Buffer_Max.impl
-- Buffer to hold a marshalled data of type TASTE_Boolean
PROPERTIES
Data_Model::Data_Representation => array;
Data_Model::Dimension => (8); -- Size of the buffer
Data_Model::Base_Type => (classifier (DataView::Stream_Element_Buffer));
END TASTE_Boolean_Buffer_Max.impl;
DATA TASTE_Boolean_Buffer
END TASTE_Boolean_Buffer;
DATA IMPLEMENTATION TASTE_Boolean_Buffer.impl
-- Buffer to hold a marshalled data of type TASTE_Boolean
SUBCOMPONENTS
Buffer : data TASTE_Boolean_Buffer_Max.impl;
Length : data Base_Types::Unsigned_32;
PROPERTIES
Data_Model::Data_Representation => Struct;
END TASTE_Boolean_Buffer.impl;
SYSTEM Taste_DataView
END Taste_DataView;
SYSTEM IMPLEMENTATION Taste_DataView.others
SUBCOMPONENTS
T_UInt32 : DATA T_UInt32.impl;
T_Int8 : DATA T_Int8.impl;
T_Int32 : DATA T_Int32.impl;
T_Boolean : DATA T_Boolean.impl;
T_UInt8 : DATA T_UInt8.impl;
TASTE_Boolean : DATA TASTE_Boolean.impl;
END Taste_DataView.others;
DATA ACN_DataView
PROPERTIES
Source_Text => ("/home/taste/kazoo/test/test-tsp2/DataView.acn");
Source_Language => (ACN);
END ACN_DataView;
DATA ACN_taste_types
PROPERTIES
Source_Text => ("/home/taste/tool-inst/share/taste-types/taste-types.acn");
Source_Language => (ACN);
END ACN_taste_types;
end DataView;
TASTE-Dataview DEFINITIONS ::=
BEGIN
IMPORTS T-Int32, T-UInt32, T-Int8, T-UInt8, T-Boolean FROM TASTE-BasicTypes;
TASTE-Boolean ::= BOOLEAN
-- ASN.1 Type definitions must start with an uppercase
-- Field names in records (SEQUENCE) must start with a lowercase
-- Underscores are not allowed: use dash (hyphen)
-- Simple types:
-- MyInteger ::= INTEGER (0..255)
-- MyReal ::= REAL (0.0 .. 1000.0)
-- MyBool ::= BOOLEAN
-- MyEnum ::= ENUMERATED { hello, world, how-are-you }
-- Complex types:
-- MySeq ::= SEQUENCE {
-- input-data MyInteger,
-- output-data MyInteger,
-- validity ENUMERATED { valid, invalid }
-- }
--
-- MyChoice ::= CHOICE {
-- a BOOLEAN,
-- b MySeq
-- }
--
-- MySeqOf ::= SEQUENCE (SIZE (2)) OF MyEnum
--
-- MyOctStr ::= OCTET STRING (SIZE (3))
--
-- -- You can also declare constants
-- myVar MySeqOf ::= { hello, world }
END
---------------------------------------------------
-- AADL2.1
-- TASTE type deploymentview
--
-- generated code: do not edit
---------------------------------------------------
PACKAGE deploymentview::DV::TSPNode
PUBLIC
WITH Taste;
WITH Deployment;
WITH deploymentview::DV;
WITH Memory_Properties;
WITH ARINC653;
PROCESS part1
END part1;
PROCESS IMPLEMENTATION part1.others
END part1.others;
VIRTUAL PROCESSOR part1_VP
PROPERTIES
Deployment::Execution_Platform => AIR;
ARINC653::Partition_Identifier => 0;
END part1_VP;
VIRTUAL PROCESSOR IMPLEMENTATION part1_VP.others
END part1_VP.others;
PROCESS part2
END part2;
PROCESS IMPLEMENTATION part2.others
END part2.others;
VIRTUAL PROCESSOR part2_VP
PROPERTIES
Deployment::Execution_Platform => AIR;
ARINC653::Partition_Identifier => 1;
END part2_VP;
VIRTUAL PROCESSOR IMPLEMENTATION part2_VP.others
END part2_VP.others;
MEMORY main_memory
END main_memory;
MEMORY IMPLEMENTATION main_memory.others
SUBCOMPONENTS
part1_Segment : MEMORY deploymentview::DV::partition_memory.others {
Base_Address => 16#100000#;
Memory_Size => 16#100# Bytes;
Byte_Count => 16#100#;
};
part2_Segment : MEMORY deploymentview::DV::partition_memory.others {
Base_Address => 16#600000#;
Memory_Size => 16#100# Bytes;
Byte_Count => 16#100#;
};
END main_memory.others;
END deploymentview::DV::TSPNode;
PACKAGE deploymentview::DV
PUBLIC
WITH interfaceview::IV::helloworld1;
WITH interfaceview::IV::helloworld2;
WITH ocarina_processors_leon;
WITH ARINC653;
WITH deploymentview::DV::TSPNode;
WITH Taste;
WITH Deployment;
WITH interfaceview::IV;
MEMORY partition_memory
END partition_memory;
MEMORY IMPLEMENTATION partition_memory.others
END partition_memory.others;
SYSTEM TSPNode
END TSPNode;
SYSTEM IMPLEMENTATION TSPNode.others
SUBCOMPONENTS
IV_helloworld1 : SYSTEM interfaceview::IV::helloworld1::helloworld1.others {
Taste::FunctionName => "helloworld1";
};
part1 : PROCESS deploymentview::DV::TSPNode::part1.others {
Taste::coordinates => "101403 57909 133666 69594";
Deployment::Port_Number => 0;
};
part1_VP : VIRTUAL PROCESSOR deploymentview::DV::TSPNode::part1_VP.others {
Scheduling_Protocol => (Posix_1003_Highest_Priority_First_Protocol);
ARINC653::DAL => LEVEL_A;
};
IV_helloworld2 : SYSTEM interfaceview::IV::helloworld2::helloworld2.others {
Taste::FunctionName => "helloworld2";
};
part2 : PROCESS deploymentview::DV::TSPNode::part2.others {
Taste::coordinates => "101412 72100 133823 82850";
Deployment::Port_Number => 0;
};
part2_VP : VIRTUAL PROCESSOR deploymentview::DV::TSPNode::part2_VP.others {
Scheduling_Protocol => (Posix_1003_Highest_Priority_First_Protocol);
ARINC653::DAL => LEVEL_A;
};
proc1 : PROCESSOR ocarina_processors_leon::leon3.AIR {
Taste::coordinates => "95948 49619 140767 87742";
Taste::Fill_Color => "#ffff80";
};
main_memory : MEMORY deploymentview::DV::TSPNode::main_memory.others;
PROPERTIES
Taste::APLC_Binding => (reference (part1)) APPLIES TO IV_helloworld1;
Actual_Processor_Binding => (reference (proc1)) APPLIES TO part1_VP;
Actual_Processor_Binding => (reference (part1_VP)) APPLIES TO part1;
Actual_Memory_Binding => (reference (main_memory.part1_Segment)) APPLIES TO part1;
Taste::APLC_Binding => (reference (part2)) APPLIES TO IV_helloworld2;
Actual_Processor_Binding => (reference (proc1)) APPLIES TO part2_VP;
Actual_Processor_Binding => (reference (part2_VP)) APPLIES TO part2;
Actual_Memory_Binding => (reference (main_memory.part2_Segment)) APPLIES TO part2;
ARINC653::Module_Major_Frame => 3000 ms APPLIES TO proc1;
ARINC653::Module_Schedule => (
[ Partition => reference(part1_VP);
Duration => 1500 ms;
Periodic_Processing_Start => False; ],
[ Partition => reference(part2_VP);
Duration => 1500 ms;
Periodic_Processing_Start => False; ]
) APPLIES TO proc1;
END TSPNode.others;
SYSTEM deploymentview
END deploymentview;
SYSTEM IMPLEMENTATION deploymentview.others
SUBCOMPONENTS
TSPNode : SYSTEM TSPNode.others {
Taste::coordinates => "90865 45668 144870 92319";
};
interfaceview : SYSTEM interfaceview::IV::interfaceview.others;
END deploymentview.others;
PROPERTIES
Taste::coordinates => "0 0 297000 210000";
Taste::version => "2.0";
Taste::interfaceView => "InterfaceView.aadl";
Taste::HWLibraries => ("");
END deploymentview::DV;
---------------------------------------------------
-- AADL2.1
-- TASTE type interfaceview
--
-- generated code: do not edit
---------------------------------------------------
PACKAGE interfaceview::IV::helloworld1
PUBLIC
WITH Taste;
WITH DataView;
WITH TASTE_IV_Properties;
SUBPROGRAM PI_task1
PROPERTIES