]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/cdl-guide/overview.configurability.html
Initial revision
[karo-tx-redboot.git] / doc / html / cdl-guide / overview.configurability.html
1 <!-- 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 >