📄 overview.configurability.html
字号:
<!-- Copyright (C) 2003 Red Hat, Inc. --><!-- This material may be distributed only subject to the terms --><!-- and conditions set forth in the Open Publication License, v1.0 --><!-- or later (the latest version is presently available at --><!-- http://www.opencontent.org/openpub/). --><!-- Distribution of the work or derivative of the work in any --><!-- standard (paper) book form is prohibited unless prior --><!-- permission is obtained from the copyright holder. --><HTML><HEAD><TITLE>Why Configurability?</TITLE><meta name="MSSmartTagsPreventParsing" content="TRUE"><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="The eCos Component Writer's Guide"HREF="cdl-guide.html"><LINKREL="UP"TITLE="Overview"HREF="overview.html"><LINKREL="PREVIOUS"TITLE="Overview"HREF="overview.html"><LINKREL="NEXT"TITLE="Approaches to Configurability"HREF="overview.approaches.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">The <SPANCLASS="APPLICATION">eCos</SPAN> Component Writer's Guide</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="overview.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Chapter 1. Overview</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="overview.approaches.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="OVERVIEW.CONFIGURABILITY">Why Configurability?</H1><P>The <SPANCLASS="APPLICATION">eCos</SPAN> component framework places a great deal of emphasis onconfigurability. The fundamental goal is to allow large parts ofembedded applications to be constructed from re-usable softwarecomponents, which does not a priori require that those components behighly configurable. However embedded application development ofteninvolves some serious constraints.</P><P>Many embedded applications have to work with very little memory, tokeep down manufacturing costs. The final application image that willget blown into EPROM's or used to manufacture ROMs should contain onlythe code that is absolutely necessary for the application to work, andnothing else. If a few tens of kilobytes are added unnecessarily to atypical desktop application then this is regrettable, but is quitelikely to go unnoticed. If an embedded application does not fit on thetarget hardware then the problem is much more serious. The componentframework must allow users to configure the components so that anyunnecessary functionality gets removed.</P><P>Many embedded applications need deterministic behavior so that theycan meet real-time requirements. Such deterministic behavior canoften be provided, but at a cost in terms of code size, sloweralgorithms, and so on. Other applications have no such real-timerequirements, or only for a small part of the overall system, and thebulk of the system should not suffer any penalties. Again thecomponent framework must allow the users control over the timingbehavior of components.</P><P>Embedded systems tend to be difficult to debug. Even when it ispossible to get information out of the target hardware by means otherthan flashing an LED, the more interesting debugging problems arelikely to be timing-related and hence very hard to reproduce and trackdown. The re-usable components can provide debugging assistance invarious ways. They can provide functionality that can be exploited bysource level debuggers such as gdb, for example per-thread debugginginformation. They can also contain various assertions so that problemscan be detected early on, tracing mechanisms to figure out whathappened before the assertion failure, and so on. Of course all ofthese involve overheads, especially code size, and affect the timing.Allowing users to control which debugging features are enabled for anygiven application build is very desirable.</P><P>However, although it is desirable for re-usable components to provideappropriate configuration options this is not required. It is possibleto produce a package which does not provide a single configurationoption — although the user still gets to choosewhether or not to use the package. In such cases it is still necessaryto provide a minimal CDL script, but its main purpose would be tointegrate the package with the component framework's build system.</P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="overview.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="cdl-guide.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="overview.approaches.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Overview</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="overview.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Approaches to Configurability</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -