ping-xtratum.aadl 3.18 KB
Newer Older
1
2
3
4
package PING
public
  with Software;
  with Deployment;
jdelange's avatar
jdelange committed
5
  with ARINC653;
6
7
8
9
10
11
12
13
14

  with ocarina_processors_leon;

---------------
-- Processes --
---------------

process A
features
15
  Data_Source : out event data port Software::Simple_Type;
16
17
18
19
end A;

process implementation A.Impl
subcomponents
jdelange's avatar
jdelange committed
20
  Pinger        : thread Software::P.Impl{Deadline => 5000 ms ; Period => 5000 ms;};
21
connections
22
  port Pinger.Data_Source -> Data_Source;
23
24
25
26
end A.Impl;

process B
features
27
  Data_Sink  : in event data port Software::Simple_Type;
28
29
end B;

30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
subprogram do_ports_polling
properties
  source_language => C;
  source_name     => "user_ports_polling";
  source_text     => ("xtratum_polling.c");
end do_ports_polling;

thread xtratum_poller
end xtratum_poller;

thread implementation xtratum_poller.i
calls 
Mycalls: {
  P_Spg : subprogram do_ports_polling;
};
properties
  Dispatch_Protocol                  => Periodic;
jdelange's avatar
jdelange committed
47
  Period                             => 5000 Ms;
48
  Compute_Execution_time             => 0 ms .. 3 ms;
jdelange's avatar
jdelange committed
49
  Deadline                           => 5000 ms;
50
51
end xtratum_poller.i;

52
53
process implementation B.Impl
subcomponents
jdelange's avatar
jdelange committed
54
  Ping_Me        : thread Software::Q.Impl {Deadline => 5000 ms ; Period => 5000 ms;};
55
  poll_port      : thread xtratum_poller.i;
56
connections
57
  port Data_Sink -> Ping_Me.Data_Sink;
58
59
end B.Impl;

60
61


62
63
64
65
66
67
68
69
70
memory myram
end myram;

memory segment
end segment;

memory implementation segment.i
end segment.i;

71
72
73
74
75
76
77
memory implementation  myram.stram
properties
   Base_Address => 40000000;
   Byte_Count   => 4194304;
end myram.stram;

memory implementation myram.sdram
78
subcomponents
julien.delange's avatar
julien.delange committed
79
80
	segment1 : memory segment.i {Base_Address => 40100000; Byte_Count => 524288;};
	segment2 : memory segment.i {Base_Address => 40180000; Byte_Count => 524288;};
81
end myram.sdram;
82

jdelange's avatar
jdelange committed
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
processor leon3
end leon3;

virtual processor xtratum_partition
end xtratum_partition;

virtual processor implementation xtratum_partition.generic
end xtratum_partition.generic;

processor implementation leon3.xtratum
properties
   Deployment::Execution_Platform => LEON3_XTRATUM;
end leon3.xtratum;

processor implementation leon3.xtratum_2partitions extends leon3.xtratum
subcomponents
        part1 : virtual processor xtratum_partition.generic
      { Deployment::Execution_Platform => LEON3_XM3;};
        part2 : virtual processor xtratum_partition.generic
      { Deployment::Execution_Platform => LEON3_XM3;};
properties
   ARINC653::Partition_Slots => (5000ms, 5000ms);
   ARINC653::Slots_Allocation => (reference (part1), reference (part2));
        ARINC653::Module_Major_Frame => 10000ms;
end leon3.xtratum_2partitions;

109
110
111
112
113
114
115
------------
-- System --
------------

system PING
end PING;

jdelange's avatar
jdelange committed
116
system implementation PING.IMA
117
118
119
subcomponents
  Node_A : process A.Impl;
  Node_B : process B.Impl;
120
121
  memst  :  memory myram.stram;
  mem    :  memory myram.sdram;
jdelange's avatar
jdelange committed
122
  cpu    : processor leon3.xtratum_2partitions;
123
connections
124
  port Node_A.Data_Source -> Node_B.Data_Sink;
125
126
127
128
129
properties
  actual_processor_binding => (reference (cpu.part1)) applies to Node_A;
  actual_processor_binding => (reference (cpu.part2)) applies to Node_B;
  actual_memory_binding => (reference (mem.segment1)) applies to Node_A;
  actual_memory_binding => (reference (mem.segment2)) applies to Node_B;
jdelange's avatar
jdelange committed
130
end PING.IMA;
131
132

end PING;