OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [exec/] [sapi/] [include/] [rtems/] [README] - Blame information for rev 173

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
#
2
#  $Id: README,v 1.2 2001-09-27 11:59:19 chris Exp $
3
#
4
 
5
Configuring a System Using the Template in confdefs.h
6
=====================================================
7
 
8
The file confdefs.h is a Configuration Template file which can be
9
used to greatly simplify the creation and maintenance of RTEMS
10
Configuration Tables.  The basic concepts are:
11
 
12
   + confdefs.h provides defaults for all configuration parameters
13
 
14
   + applications specify only those values they wish to override
15
 
16
   + confdefs.h can be the only file which knows the precise layout
17
     of the RTEMS Configuration Tables.
18
 
19
The Configuration Template setup is used by all RTEMS tests to
20
simplify the maintenance of the tests.
21
 
22
Here is the section from the system.h file from test tm21 from
23
the Timing Test Suite:
24
 
25
   /* configuration information */
26
 
27
   #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
28
   #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
29
 
30
   #define CONFIGURE_MAXIMUM_TASKS              102
31
   #define CONFIGURE_MAXIMUM_TIMERS             100
32
   #define CONFIGURE_MAXIMUM_SEMAPHORES         100
33
   #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES     100
34
   #define CONFIGURE_MAXIMUM_PARTITIONS         100
35
   #define CONFIGURE_MAXIMUM_REGIONS            100
36
   #define CONFIGURE_MAXIMUM_PORTS              100
37
   #define CONFIGURE_MAXIMUM_PERIODS            100
38
 
39
   #define CONFIGURE_TICKS_PER_TIMESLICE        0
40
 
41
   #include 
42
 
43
 
44
The above example overrides a number of the configuration parameters.
45
It informs the template that it is a member of the Timing Suite,
46
requires a console and timer driver, and that it needs 102 tasks,
47
100 timers, 100 semaphores, 100 message queues, 100 partitions,
48
100 regions, 100 ports, and 100 periods.   By default, the test
49
would have gotten no drivers, 10 tasks, and no other RTEMS objects.
50
 
51
The following shows the configuration tables generated by the
52
template by default.
53
 
54
 
55
#include 
56
 
57
#define NULL_DRIVER_TABLE_ENTRY \
58
 { NULL, NULL, NULL, NULL, NULL, NULL }
59
 
60
rtems_driver_address_table Device_drivers[] = {
61
#ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
62
  CONSOLE_DRIVER_TABLE_ENTRY,
63
#endif
64
#ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
65
  CLOCK_DRIVER_TABLE_ENTRY,
66
#endif
67
#ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
68
  STUB_DRIVER_TABLE_ENTRY,
69
#endif
70
  NULL_DRIVER_TABLE_ENTRY,
71
};
72
 
73
rtems_initialization_tasks_table Initialization_tasks[] = {
74
  { rtems_build_name( 'U', 'I', '1', ' ' ), /* init task name */
75
    RTEMS_MINIMUM_STACK_SIZE,               /* init task stack size */
76
    1,                                      /* init task priority */
77
    RTEMS_DEFAULT_ATTRIBUTES,               /* init task attributes */
78
    Init,                                   /* init task entry point */
79
    RTEMS_NO_PREEMPT,                       /* init task initial mode */
80
 
81
  }
82
};
83
 
84
#ifdef CONFIGURE_MP_APPLICATION
85
/*
86
 *  NODE_NUMBER is assumed to be set on the compile line.
87
 */
88
 
89
rtems_multiprocessing_table Multiprocessing_configuration = {
90
  NODE_NUMBER,                           /* local node number */
91
  2,                                     /* maximum # nodes in system */
92
  32,                                    /* maximum # global objects */
93
  32,                                    /* maximum # proxies */
94
  &MPCI_table                            /* pointer to MPCI config table */
95
};
96
#endif
97
 
98
/*
99
 *  CONFIGURE_EXECUTIVE_RAM_SIZE is a rough guess based on the number of
100
 *  tasks in the system plus enough extra to get a whole 64K extra.
101
 *
102
 *  The NULL address for the workspace area is assumed to be assigned
103
 *  at startup time by the BSP.
104
 */
105
 
106
rtems_configuration_table Configuration = {
107
  NULL,                      /* executive RAM work area */
108
  CONFIGURE_EXECUTIVE_RAM_SIZE, /* executive RAM size */
109
  10,                        /* maximum # tasks */
110
  0,                         /* maximum # timers */
111
  0,                         /* maximum # semaphores */
112
  0,                         /* maximum # message queues */
113
  0,                         /* maximum # messages */
114
  0,                         /* maximum # partitions */
115
  0,                         /* maximum # regions */
116
  0,                         /* maximum # dp memory areas */
117
  0,                         /* maximum # periods */
118
  0,                         /* maximum # user extensions */
119
  RTEMS_MILLISECONDS_TO_MICROSECONDS(10), /* # us in a tick */
120
  50,                        /* # ticks in a timeslice */
121
  sizeof (Initialization_tasks) / sizeof(rtems_initialization_tasks_table),
122
                             /* number of init tasks */
123
  Initialization_tasks,      /* init task(s) table */
124
  sizeof (Device_drivers) / sizeof(rtems_driver_address_table),
125
                             /* number of device drivers */
126
  Device_drivers,            /* pointer to driver address table */
127
  NULL,                      /* pointer to initial extensions */
128
#ifdef CONFIGURE_MP_APPLICATION
129
  &Multiprocessing_configuration
130
#else
131
  NULL                       /* ptr to MP config table */
132
#endif
133
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.