1 |
27 |
unneback |
# ====================================================================
|
2 |
|
|
#
|
3 |
|
|
# tasks.cdl
|
4 |
|
|
#
|
5 |
|
|
# uITRON task related configuration data
|
6 |
|
|
#
|
7 |
|
|
# ====================================================================
|
8 |
|
|
#####ECOSGPLCOPYRIGHTBEGIN####
|
9 |
|
|
## -------------------------------------------
|
10 |
|
|
## This file is part of eCos, the Embedded Configurable Operating System.
|
11 |
|
|
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
12 |
|
|
##
|
13 |
|
|
## eCos is free software; you can redistribute it and/or modify it under
|
14 |
|
|
## the terms of the GNU General Public License as published by the Free
|
15 |
|
|
## Software Foundation; either version 2 or (at your option) any later version.
|
16 |
|
|
##
|
17 |
|
|
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
18 |
|
|
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
19 |
|
|
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
20 |
|
|
## for more details.
|
21 |
|
|
##
|
22 |
|
|
## You should have received a copy of the GNU General Public License along
|
23 |
|
|
## with eCos; if not, write to the Free Software Foundation, Inc.,
|
24 |
|
|
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
25 |
|
|
##
|
26 |
|
|
## As a special exception, if other files instantiate templates or use macros
|
27 |
|
|
## or inline functions from this file, or you compile this file and link it
|
28 |
|
|
## with other works to produce a work based on this file, this file does not
|
29 |
|
|
## by itself cause the resulting work to be covered by the GNU General Public
|
30 |
|
|
## License. However the source code for this file must still be made available
|
31 |
|
|
## in accordance with section (3) of the GNU General Public License.
|
32 |
|
|
##
|
33 |
|
|
## This exception does not invalidate any other reasons why a work based on
|
34 |
|
|
## this file might be covered by the GNU General Public License.
|
35 |
|
|
##
|
36 |
|
|
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
37 |
|
|
## at http://sources.redhat.com/ecos/ecos-license/
|
38 |
|
|
## -------------------------------------------
|
39 |
|
|
#####ECOSGPLCOPYRIGHTEND####
|
40 |
|
|
# ====================================================================
|
41 |
|
|
######DESCRIPTIONBEGIN####
|
42 |
|
|
#
|
43 |
|
|
# Author(s): jskov
|
44 |
|
|
# Original data: hmt
|
45 |
|
|
# Contributors:
|
46 |
|
|
# Date: 1999-07-07
|
47 |
|
|
#
|
48 |
|
|
#####DESCRIPTIONEND####
|
49 |
|
|
#
|
50 |
|
|
# ====================================================================
|
51 |
|
|
|
52 |
|
|
cdl_option CYGNUM_UITRON_TASKS {
|
53 |
|
|
display "Number of tasks"
|
54 |
|
|
flavor data
|
55 |
|
|
legal_values 1 to 65535
|
56 |
|
|
default_value 4
|
57 |
|
|
description "
|
58 |
|
|
The number of uITRON tasks present in the system.
|
59 |
|
|
Valid task object IDs will range from 1 to this value."
|
60 |
|
|
}
|
61 |
|
|
cdl_option CYGNUM_UITRON_START_TASKS {
|
62 |
|
|
display "Start tasks"
|
63 |
|
|
flavor data
|
64 |
|
|
legal_values 0 to 65535
|
65 |
|
|
default_value 1
|
66 |
|
|
description "
|
67 |
|
|
The number of uITRON tasks to start automatically.
|
68 |
|
|
Tasks from 1 to this value will be started
|
69 |
|
|
at the beginning of application execution.
|
70 |
|
|
A value of zero here means to start them all.
|
71 |
|
|
Tasks started in this way have a start code of
|
72 |
|
|
zero, as if they were started by sta_tsk(i,0).
|
73 |
|
|
If create and delete operations are supported,
|
74 |
|
|
this number should be no greater than the number
|
75 |
|
|
of tasks created initially."
|
76 |
|
|
}
|
77 |
|
|
cdl_component CYGPKG_UITRON_TASKS_CREATE_DELETE {
|
78 |
|
|
display "Support create and delete"
|
79 |
|
|
flavor bool
|
80 |
|
|
default_value 1
|
81 |
|
|
description "
|
82 |
|
|
Support task create and delete operations (cre_tsk, del_tsk).
|
83 |
|
|
Otherwise all tasks are created, up to the number specified above."
|
84 |
|
|
|
85 |
|
|
cdl_option CYGNUM_UITRON_TASKS_INITIALLY {
|
86 |
|
|
display "Number of tasks created initially"
|
87 |
|
|
flavor data
|
88 |
|
|
legal_values 1 to 65535
|
89 |
|
|
default_value 4
|
90 |
|
|
description "
|
91 |
|
|
The number of uITRON tasks initially created.
|
92 |
|
|
This number should not be more than the number
|
93 |
|
|
of tasks in the system, though setting it to a large
|
94 |
|
|
value to mean 'all' is acceptable.
|
95 |
|
|
Initially, only tasks numbered 1 to this number exist;
|
96 |
|
|
higher numbered ones must be created before use."
|
97 |
|
|
}
|
98 |
|
|
}
|
99 |
|
|
cdl_option CYGNUM_UITRON_STACK_SIZE {
|
100 |
|
|
display "Default stack size"
|
101 |
|
|
flavor data
|
102 |
|
|
legal_values 128 to 0x7FFFFFFF
|
103 |
|
|
default_value 2048
|
104 |
|
|
description "
|
105 |
|
|
Define a default stack size for uITRON tasks,
|
106 |
|
|
for use in the initialization options below.
|
107 |
|
|
This will be overridden where it is used if the
|
108 |
|
|
architectural HAL requires a minimum stack size
|
109 |
|
|
to handle interrupts correctly."
|
110 |
|
|
}
|
111 |
|
|
cdl_option CYGDAT_UITRON_TASK_EXTERNS {
|
112 |
|
|
display "Externs for initialization"
|
113 |
|
|
flavor data
|
114 |
|
|
default_value {"extern \"C\" void task1( unsigned int ); \\\n\
|
115 |
|
|
extern \"C\" void task2( unsigned int ); \\\n\
|
116 |
|
|
extern \"C\" void task3( unsigned int ); \\\n\
|
117 |
|
|
extern \"C\" void task4( unsigned int ); \\\n\
|
118 |
|
|
static char stack1[ MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ], \\\n\
|
119 |
|
|
stack2[ MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ], \\\n\
|
120 |
|
|
stack3[ MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ], \\\n\
|
121 |
|
|
stack4[ MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ];"}
|
122 |
|
|
description "
|
123 |
|
|
Task initializers may refer to external objects
|
124 |
|
|
such as memory for stack or functions to call.
|
125 |
|
|
Use this option to define or declare any external
|
126 |
|
|
objects needed by the task static initializer below.
|
127 |
|
|
Example: create some memory for a stack using
|
128 |
|
|
'static char stack1\[CYGNUM_UITRON_STACK_SIZE\];'
|
129 |
|
|
to set up a chunk of memory of the default stack size.
|
130 |
|
|
Note: this option is invoked in the 'outermost' context
|
131 |
|
|
of C++ source, where global/static objects are created;
|
132 |
|
|
it should contain valid, self-contained, C++ source."
|
133 |
|
|
}
|
134 |
|
|
cdl_option CYGDAT_UITRON_TASK_INITIALIZERS {
|
135 |
|
|
display "Static initializers"
|
136 |
|
|
flavor data
|
137 |
|
|
default_value {"CYG_UIT_TASK( \"t1\", 1, task1, &stack1, MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ), \\\n\
|
138 |
|
|
CYG_UIT_TASK( \"t2\", 2, task2, &stack2, MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ), \\\n\
|
139 |
|
|
CYG_UIT_TASK( \"t3\", 3, task3, &stack3, MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ), \\\n\
|
140 |
|
|
CYG_UIT_TASK( \"t4\", 4, task4, &stack4, MAX(CYGNUM_UITRON_STACK_SIZE, CYGNUM_HAL_STACK_SIZE_MINIMUM) ),"}
|
141 |
|
|
description "
|
142 |
|
|
Tasks must be statically
|
143 |
|
|
initialized: enter a list of initializers
|
144 |
|
|
separated by commas, one per line.
|
145 |
|
|
An initializer is
|
146 |
|
|
'CYG_UIT_TASK(NAME,PRIO,FUNC,STACK,SIZE)'
|
147 |
|
|
where name is a quoted string to name the task,
|
148 |
|
|
prio is the initial priority of the task,
|
149 |
|
|
func is the name of the entry point,
|
150 |
|
|
stack is the address of the task's stack,
|
151 |
|
|
and size is the size of the task's stack.
|
152 |
|
|
When create and delete operations are supported,
|
153 |
|
|
'CYG_UIT_TASK_NOEXS(NAME,STACK,SIZE)' should be
|
154 |
|
|
used for tasks which are not initially created,
|
155 |
|
|
in order to tell the system what memory to use
|
156 |
|
|
for stacks when these tasks are created later on.
|
157 |
|
|
Using 'CYGNUM_UITRON_STACK_SIZE' for size
|
158 |
|
|
is recommended, to use the option defined above,
|
159 |
|
|
so long as that truly is the size of your stack(s).
|
160 |
|
|
Note: this option is invoked in the context of a
|
161 |
|
|
C++ array initializer, between curly brackets.
|
162 |
|
|
Ensure that the number of initializers here exactly
|
163 |
|
|
matches the number of tasks specified."
|
164 |
|
|
}
|