File : s-bbpara-8641d.ads
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
4 -- --
5 -- S Y S T E M . B B . P A R A M E T E R S --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 1999-2002 Universidad Politecnica de Madrid --
10 -- Copyright (C) 2003-2005 The European Space Agency --
11 -- Copyright (C) 2003-2016, AdaCore --
12 -- --
13 -- GNAT is free software; you can redistribute it and/or modify it under --
14 -- terms of the GNU General Public License as published by the Free Soft- --
15 -- ware Foundation; either version 3, or (at your option) any later ver- --
16 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
17 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
18 -- or FITNESS FOR A PARTICULAR PURPOSE. --
19 -- --
20 -- --
21 -- --
22 -- --
23 -- --
24 -- You should have received a copy of the GNU General Public License and --
25 -- a copy of the GCC Runtime Library Exception along with this program; --
26 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
27 -- <http://www.gnu.org/licenses/>. --
28 -- --
29 -- GNAT was originally developed by the GNAT team at New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc. --
31 -- --
32 -- The port of GNARL to bare board targets was initially developed by the --
33 -- Real-Time Systems Group at the Technical University of Madrid. --
34 -- --
35 ------------------------------------------------------------------------------
36
37 -- This package defines basic parameters used by the low level tasking system
38
39 with System.BB.Board_Parameters;
40
41 package System.BB.Parameters is
42 pragma Pure;
43
44 --------------------
45 -- Hardware clock --
46 --------------------
47
48 Ticks_Per_Second : constant := Board_Parameters.Clock_Frequency;
49 -- Frequency of the system clock
50
51 ----------------
52 -- Interrupts --
53 ----------------
54
55 -- These definitions are in this package in order to isolate target
56 -- dependencies.
57
58 Number_Of_Interrupt_ID : constant := 128 + 8;
59 -- Number of interrupts (for both the interrupt controller and core
60 -- interrupts such as the decrementer). The runtime supports at most
61 -- 128 interrupts external interrupts and 8 non external. If you have
62 -- more interrupts, you need to change the above constants. This static
63 -- constant is used to declare a type, and the handler table.
64
65 ------------
66 -- Stacks --
67 ------------
68
69 Interrupt_Stack_Size : constant := 8 * 1024;
70 -- Size of each of the interrupt stacks in bytes
71
72 Interrupt_Sec_Stack_Size : constant := 1024;
73 -- Size of the secondary stack for interrupt handlers
74
75 ----------
76 -- CPUS --
77 ----------
78
79 Max_Number_Of_CPUs : constant := 1;
80 -- Maximum number of CPUs
81
82 Multiprocessor : constant Boolean := Max_Number_Of_CPUs /= 1;
83 -- Are we on a multiprocessor board?
84
85 end System.BB.Parameters;