Next: Conformance to standards, Previous: Standard AADL property files, Up: Top
Ocarina includes specific property files to specify some elements of the models that are not covered by AADL 1.0.
-- Property set for ARAO features property set ARAO is simple_type : type enumeration (boolean, character, float, fixed, integer, null, string, wide_character, wide_string); -- Supported data types data_type : simple_type applies to (data); -- Available data type data_digits : aadlinteger applies to (data); data_scale : aadlinteger applies to (data); -- Properties for fixed point types length : aadlinteger applies to (data); -- Maximum length of bounded arrays max_length : aadlinteger applies to (data); -- Maximum length for string data symbolic_values : list of aadlstring applies to (data); -- Special values for data defined following AADL standard specs location : aadlstring applies to (processor); -- Processor network's address port_number : aadlinteger applies to (process); -- Port number used by a node process_id : aadlinteger applies to (process); -- Identifier of the process (used by SpaceWire) channel_address : aadlinteger applies to (process); -- SpaceWire channel address protocol_type : type enumeration (iiop, diop); -- Available communication protocol implementations protocol : protocol_type applies to (system); -- Protocol implementation used for communications -- currently only support GIOP implementations priority_type : type aadlinteger 0 .. 255; priority : priority_type applies to (data, thread); -- Thread and data component priority Level_A : constant priority_type => 250; Level_B : constant priority_type => 190; Level_C : constant priority_type => 130; -- Default Level_D : constant priority_type => 70; Level_E : constant priority_type => 10; -- Some predefined priorities -- Available platform to which applications can be generated. Allowed_Execution_Platform : type enumeration (Native, -- For native platforms, e.g. GNU/Linux, Solaris, FreeBSD LEON_RTEMS, -- For LEON boards or tsim-leon, using RTEMS LEON_ORK, -- For LEON boards or tsim-leon, using GNAT executive ERC32_ORK, -- For ERC32 boards or tsim-erc32, using GNAT executive ARM_DSLINUX, -- For Nintendo DS (tm), using DSLinux ARM_N770 -- For Nokia N770 ); Execution_Platform : Allowed_Execution_Platform applies to (processor); -- The execution platform of a distributed application Allowed_Transport_APIs : type enumeration (BSD_Sockets, SpaceWire, Serial); -- Available transport APIs to send/receive data through a bus Transport_API : Allowed_Transport_APIs applies to (bus); IP_Address : access aadlstring applies to (bus); -- IPv4 address of a network card MAC_Address : access aadlstring applies to (bus); -- MAC id. of a network card Memory_Size : Size applies to (memory); -- Memory size end ARAO;
-- Property set containing the configuration properties of Ocarina. -- This property set is not intended to be used by the AADL model of -- an application, but, by the AADL model of its scenario. property set Ocarina_Config is Generator_Type : type enumeration (PolyORB_QoS_Ada, PolyORB_HI_Ada, PolyORB_HI_C); Generator : Generator_Type applies to (system); -- The code generator that will be used for the current application AADL_Files : list of aadlstring applies to (system); -- List of the AADL source files used by the current application Ocarina_Property_Sets : type enumeration (ARAO, Cheddar_Properties, ASSERT_Properties); -- List of the predefined NON STANDARD property sets that can be used -- by an AADL application. Needed_Property_Sets : list of Ocarina_property_Sets applies to (system); -- The actual property sets needed by one particular application. -- This avoid to parse systematically all the predefined non -- standard property sets. end Ocarina_Config;
-- This AADL property set defines properties to be used to describe -- the different views that form the ASSERT process. property set ASSERT_Properties is ---------------------------- -- Types and enumerations -- ---------------------------- Max_Priority_Value : constant aadlinteger => 28; -- Parametric example of maximum priority -- Priority and Interrupt Priority are contiguous intervals Min_Interrupt_Priority : constant aadlinteger => 29; Max_Interrupt_Priority : constant aadlinteger => 31; -- Maximum and minimum interrupt priority Priority_Type : type aadlinteger 0 .. value (Max_Priority_Value); -- We must define a property type to be able to reference it Priority : Priority_Type applies to (thread, thread group, process); Interrupt_Priority : aadlinteger value(Min_Interrupt_Priority) .. value (Max_Interrupt_Priority) applies to (thread, thread group, process); Criticality_Level_Type : type enumeration (A, B, C, D, E); -- Criticality levels Transmission_Type : type enumeration (simplex, half_duplex, full_duplex); -- Message transmission kind Freq_Units : type units ( Hz, KHz => Hz * 1000, MHz => KHz * 1000, GHz => MHz * 1000); -- Frequency units Max_Frequency : constant aadlinteger Freq_Units => 1000 GHz; -- Maximal Frequency Frequency : type aadlinteger 0 Hz .. value (Max_Frequency) units Freq_Units; -- Frequency of a processor --------------- -- Partition -- --------------- Criticality : Criticality_Level_Type applies to (process, system); Local_Scheduling_Policy : Supported_Scheduling_Protocols applies to (process, system); Time_Budget : aadlinteger applies to (process, system); Budget_Replenishment_Period : Time applies to (process, system); Storage_Budget : Size applies to (process, system); -- XXX replace this with Source_Code_Size ? ------------ -- RCM VM -- ------------ Min_Priority : Priority_Type applies to (processor); Max_Priority : Priority_Type applies to (processor); Min_Interrupt_Priority : Priority_Type applies to (processor); Max_Interrupt_Priority : Priority_Type applies to (processor); -- To express the Global scheduling policy, we use the standard -- property Global_Scheduler_Policy of type -- Supported_Scheduling_Protocols. Longest_Critical_Section : Time applies to (processor); -- To describe the clock period we use the standard property -- Clock_Period of standard type Time. Periodic_Clock_Interrupt_Period : Time applies to (processor); Periodic_Clock_Handler : Time applies to (processor); Demanded_Clock_Handler : Time applies to (processor); Interrupt_Handler : Time applies to (processor); External_Interrupt : Time applies to (processor); Wakeup_Jitter : Time applies to (processor); Ready : Time applies to (processor); Select : Time applies to (processor); Context_Switch : Time applies to (processor); Signal : Time applies to (processor); Suspension_Call : Time applies to (processor); Wait_Call : Time applies to (processor); Priority_Raising : Time applies to (processor); Priority_Lowering : Time applies to (processor); Barrier_Evaluation : Time applies to (processor); Budget_Replenishment_Overhead : Time applies to (processor); Budget_Exhausted_Recovery_Call : Time applies to (processor); ------------- -- Devices -- ------------- -- Processor Processor_Speed : Frequency applies to (processor); -- XXX to be replaced with AADLv2 property -- Interconnection -- To express the message size bounds we use the standard property -- Allowed_Message_Size which is a range of standard type Size. -- To describe the propagation delay and the transmission time on a -- bus, we use the standard properties Propagation_Delay and -- Transmission_Time. Interconnection_Speed_Factor : aadlreal applies to (bus); Transmission_Kind : Transmission_Type applies to (bus); Bandwidth : Data_Volume applies to (bus); -- Networking protocol -- Memory Memory_Size : Size applies to (memory); Access_Time : Time applies to (memory); Access_Bandwidth : Data_Volume applies to (bus); --------------------------- -- Deployment Properties -- --------------------------- -- To express the binding of an AP-Level container to a processor, we -- use the standard property Actual_Processor_Binding. -- To express the binding of a connection between a couple of -- (provided, required) interfaces of two AP-Level containers to a -- bus, a processor or a device, we use the standard property -- Actual_Connection_Binding. -- To express the binding of an AP-level container to a particular -- memory, we use the standard property Actual_Memory_Binding. -------------------------------------------- -- Properties relative to the RCM grammar -- -------------------------------------------- RCMoperation: classifier(subprogram) applies to (event port, event data port); RCMoperationKind_list: type enumeration (cyclic, sporadic, variator, protected, transaction, barrier, unprotected, deferred, immediate, any); RCMoperationKind: RCMoperationKind_list applies to (server subprogram, event port, event data port); RCMceiling: aadlinteger applies to (server subprogram, event port, event data port); RCMperiod: Time applies to (server subprogram, event port, event data port); RCMpartition: reference (system) applies to (system); end ASSERT_Properties;