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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [ecos-2.0/] [doc/] [html/] [cdl-guide/] [overview.configurability.html] - Blame information for rev 1767

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1254 phoenix
<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2
<!-- This material may be distributed only subject to the terms      -->
3
<!-- and conditions set forth in the Open Publication License, v1.0  -->
4
<!-- or later (the latest version is presently available at          -->
5
<!-- http://www.opencontent.org/openpub/).                           -->
6
<!-- Distribution of the work or derivative of the work in any       -->
7
<!-- standard (paper) book form is prohibited unless prior           -->
8
<!-- permission is obtained from the copyright holder.               -->
9
<HTML
10
><HEAD
11
><TITLE
12
>Why Configurability?</TITLE
13
><meta name="MSSmartTagsPreventParsing" content="TRUE">
14
<META
15
NAME="GENERATOR"
16
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17
"><LINK
18
REL="HOME"
19
TITLE="The eCos Component Writer's Guide"
20
HREF="cdl-guide.html"><LINK
21
REL="UP"
22
TITLE="Overview"
23
HREF="overview.html"><LINK
24
REL="PREVIOUS"
25
TITLE="Overview"
26
HREF="overview.html"><LINK
27
REL="NEXT"
28
TITLE="Approaches to Configurability"
29
HREF="overview.approaches.html"></HEAD
30
><BODY
31
CLASS="SECT1"
32
BGCOLOR="#FFFFFF"
33
TEXT="#000000"
34
LINK="#0000FF"
35
VLINK="#840084"
36
ALINK="#0000FF"
37
><DIV
38
CLASS="NAVHEADER"
39
><TABLE
40
SUMMARY="Header navigation table"
41
WIDTH="100%"
42
BORDER="0"
43
CELLPADDING="0"
44
CELLSPACING="0"
45
><TR
46
><TH
47
COLSPAN="3"
48
ALIGN="center"
49
>The <SPAN
50
CLASS="APPLICATION"
51
>eCos</SPAN
52
> Component Writer's Guide</TH
53
></TR
54
><TR
55
><TD
56
WIDTH="10%"
57
ALIGN="left"
58
VALIGN="bottom"
59
><A
60
HREF="overview.html"
61
ACCESSKEY="P"
62
>Prev</A
63
></TD
64
><TD
65
WIDTH="80%"
66
ALIGN="center"
67
VALIGN="bottom"
68
>Chapter 1. Overview</TD
69
><TD
70
WIDTH="10%"
71
ALIGN="right"
72
VALIGN="bottom"
73
><A
74
HREF="overview.approaches.html"
75
ACCESSKEY="N"
76
>Next</A
77
></TD
78
></TR
79
></TABLE
80
><HR
81
ALIGN="LEFT"
82
WIDTH="100%"></DIV
83
><DIV
84
CLASS="SECT1"
85
><H1
86
CLASS="SECT1"
87
><A
88
NAME="OVERVIEW.CONFIGURABILITY">Why Configurability?</H1
89
><P
90
>The <SPAN
91
CLASS="APPLICATION"
92
>eCos</SPAN
93
> component framework places a great deal of emphasis on
94
configurability. The fundamental goal is to allow large parts of
95
embedded applications to be constructed from re-usable software
96
components, which does not a priori require that those components be
97
highly configurable. However embedded application development often
98
involves some serious constraints.</P
99
><P
100
>Many embedded applications have to work with very little memory, to
101
keep down manufacturing costs. The final application image that will
102
get blown into EPROM's or used to manufacture ROMs should contain only
103
the code that is absolutely necessary for the application to work, and
104
nothing else. If a few tens of kilobytes are added unnecessarily to a
105
typical desktop application then this is regrettable, but is quite
106
likely to go unnoticed. If an embedded application does not fit on the
107
target hardware then the problem is much more serious. The component
108
framework must allow users to configure the components so that any
109
unnecessary functionality gets removed.</P
110
><P
111
>Many embedded applications need deterministic behavior so that they
112
can meet real-time requirements. Such deterministic behavior can
113
often be provided, but at a cost in terms of code size, slower
114
algorithms, and so on. Other applications have no such real-time
115
requirements, or only for a small part of the overall system, and the
116
bulk of the system should not suffer any penalties. Again the
117
component framework must allow the users control over the timing
118
behavior of components.</P
119
><P
120
>Embedded systems tend to be difficult to debug. Even when it is
121
possible to get information out of the target hardware by means other
122
than flashing an LED, the more interesting debugging problems are
123
likely to be timing-related and hence very hard to reproduce and track
124
down. The re-usable components can provide debugging assistance in
125
various ways. They can provide functionality that can be exploited by
126
source level debuggers such as gdb, for example per-thread debugging
127
information. They can also contain various assertions so that problems
128
can be detected early on, tracing mechanisms to figure out what
129
happened before the assertion failure, and so on. Of course all of
130
these involve overheads, especially code size, and affect the timing.
131
Allowing users to control which debugging features are enabled for any
132
given application build is very desirable.</P
133
><P
134
>However, although it is desirable for re-usable components to provide
135
appropriate configuration options this is not required. It is possible
136
to produce a package which does not provide a single configuration
137
option&nbsp;&#8212;&nbsp;although the user still gets to choose
138
whether or not to use the package. In such cases it is still necessary
139
to provide a minimal CDL script, but its main purpose would be to
140
integrate the package with the component framework's build system.</P
141
></DIV
142
><DIV
143
CLASS="NAVFOOTER"
144
><HR
145
ALIGN="LEFT"
146
WIDTH="100%"><TABLE
147
SUMMARY="Footer navigation table"
148
WIDTH="100%"
149
BORDER="0"
150
CELLPADDING="0"
151
CELLSPACING="0"
152
><TR
153
><TD
154
WIDTH="33%"
155
ALIGN="left"
156
VALIGN="top"
157
><A
158
HREF="overview.html"
159
ACCESSKEY="P"
160
>Prev</A
161
></TD
162
><TD
163
WIDTH="34%"
164
ALIGN="center"
165
VALIGN="top"
166
><A
167
HREF="cdl-guide.html"
168
ACCESSKEY="H"
169
>Home</A
170
></TD
171
><TD
172
WIDTH="33%"
173
ALIGN="right"
174
VALIGN="top"
175
><A
176
HREF="overview.approaches.html"
177
ACCESSKEY="N"
178
>Next</A
179
></TD
180
></TR
181
><TR
182
><TD
183
WIDTH="33%"
184
ALIGN="left"
185
VALIGN="top"
186
>Overview</TD
187
><TD
188
WIDTH="34%"
189
ALIGN="center"
190
VALIGN="top"
191
><A
192
HREF="overview.html"
193
ACCESSKEY="U"
194
>Up</A
195
></TD
196
><TD
197
WIDTH="33%"
198
ALIGN="right"
199
VALIGN="top"
200
>Approaches to Configurability</TD
201
></TR
202
></TABLE
203
></DIV
204
></BODY
205
></HTML
206
>

powered by: WebSVN 2.1.0

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