1 |
%$Header: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/volshare/workprfa.tex,v 1.7 2003/11/28 23:23:17 dtashley Exp $
|
2 |
%
|
3 |
%------------------------------------------------------------------------------------------------------------------
|
4 |
%This file isn't used directly--instead, the Tcl script CP_SCRIPT.TCL inserts it into the the main .TEX volume.
|
5 |
%In this process, the <mv> and <sv> tags on some lines are processed. <mv> lines go only to the multi-volume
|
6 |
%work, and <sv> lines to only to the single-volume work.
|
7 |
%
|
8 |
%For the multi-volume work, the symbolic patchup is near perfect. But for the single-volume work, the parts
|
9 |
%are numbered manually, which is a process open to human error. This preface must be checked when chapters
|
10 |
%are moved, added, or deleted.
|
11 |
%------------------------------------------------------------------------------------------------------------------
|
12 |
\chapter{Preface}
|
13 |
|
14 |
In 1998, I began work on the
|
15 |
interrupt latency compatibility problem. As I searched
|
16 |
for prior work, I was
|
17 |
surprised to discover the paucity
|
18 |
of research available on practical embedded software
|
19 |
problems. Textbooks were also not very helpful,
|
20 |
as I found that almost none
|
21 |
of the hard
|
22 |
problems that occur in practice
|
23 |
were addressed.
|
24 |
|
25 |
In 1999, I decided to compose my own book,
|
26 |
maintained on the Web,
|
27 |
to collect useful
|
28 |
research results, solutions to practical problems,
|
29 |
unsolved problems, and directions for future
|
30 |
research and refinement.
|
31 |
\LaTeX{} was chosen as the text-processing
|
32 |
tool, as it was
|
33 |
recognized immediately
|
34 |
that size could become an issue and that the book
|
35 |
would have a substantial mathematical content.
|
36 |
The freedom from any practical length
|
37 |
limitation
|
38 |
means that I am
|
39 |
free to include as many topics
|
40 |
in as much detail as I'd like.\footnote{My readers will
|
41 |
be consuming \emph{their} toner cartridges, not mine.}
|
42 |
|
43 |
In 2001, this book was moved to
|
44 |
\index{SourceForge}\emph{SourceForge}\footnote{\emph{SourceForge}
|
45 |
(\texttt{http://www.sourceforge.net}), to whom I am very grateful,
|
46 |
is an organization that hosts open-source projects.} and
|
47 |
combined with a tool
|
48 |
set for microcontroller software work
|
49 |
(\emph{The Iju Tool Set}).
|
50 |
|
51 |
In 2002, the collective set of materials (the tool set and this book)
|
52 |
was renamed \emph{The ESRG Tool Set}\footnote{\emph{ESRG}
|
53 |
is an acronym for \emph{E}mbedded \emph{S}ystems \emph{R}esearch \emph{G}roup.},
|
54 |
and placed under a different
|
55 |
project at \emph{SourceForge}.
|
56 |
|
57 |
\emph{The ESRG Tool Set}, which is fully open-source and
|
58 |
available for free from \emph{SourceForge} at the URL
|
59 |
\texttt{http://esrg.sourceforge.net}, contains
|
60 |
these materials:
|
61 |
|
62 |
\begin{itemize}
|
63 |
\item A \texttt{.PDF} copy of the most recent released
|
64 |
version of this book.
|
65 |
|
66 |
\item The packaged \LaTeX{} source code and graphics
|
67 |
for the most recent released
|
68 |
version of this book.
|
69 |
|
70 |
\item The most recent (unreleased) source code for this book
|
71 |
(available from the CVS version control archives).
|
72 |
|
73 |
\item The most recent released version of
|
74 |
\emph{The ESRG Tool Set}, packaged as an installation
|
75 |
for Windows 95/98/ME/NT/2000/XP. This installation also
|
76 |
contains web pages with helpful URLs, and supplemental
|
77 |
materials (such as spreadsheets to demonstrate techniques,
|
78 |
other documents and standards maintained as part of this
|
79 |
effort,
|
80 |
Java applets, etc.).
|
81 |
|
82 |
\item The packaged source code for the most recent released
|
83 |
version of \emph{The ESRG Tool Set}.
|
84 |
|
85 |
\item The most recent (unreleased) source code of
|
86 |
\emph{The ESRG Tool Set} (available from the CVS
|
87 |
version control arvhives).
|
88 |
|
89 |
\item The most recent (unreleased) versions of the non-tool
|
90 |
materials maintained with \emph{The ESRG Tool Set}, including
|
91 |
spreadsheets to demonstrate techniques, other
|
92 |
documents and standards maintained as part of this
|
93 |
effort, Java applets, etc. (available from the CVS version control
|
94 |
archives).
|
95 |
\end{itemize}
|
96 |
|
97 |
|
98 |
I have produced this set of works with the following four goals.
|
99 |
\marginpar{\textbf{Goals of This Work}}
|
100 |
\begin{itemize}
|
101 |
\item \textbf{To share results and coordinate work
|
102 |
with researchers.} I have
|
103 |
found that there is a disconnect between practitioners
|
104 |
(those who have exposure to difficult problems) and
|
105 |
researchers (those who often have the ability to solve these
|
106 |
difficult problems). A large work is required to
|
107 |
explain the design challenges present in practical embedded software
|
108 |
work, and to place the most difficult unsolved problems in the hands
|
109 |
of researchers.
|
110 |
\item \textbf{To share results and coordinate work with practitioners.}
|
111 |
Many of the problems and solutions presented in this work apply
|
112 |
to almost all applications of embedded software, and in many cases
|
113 |
are inherent to \emph{all} software. These problems and solutions
|
114 |
will be useful to software practitioners. I also expect
|
115 |
that practitioners have strong solutions to contribute to this
|
116 |
work.\footnote{With less jubilation, I also expect that
|
117 |
practitioners have new hard problems to contribute.
|
118 |
With any luck, I will obtain more new solutions than new problems.}
|
119 |
\item \textbf{To enrich the educational experience for students.}
|
120 |
All of the material contained in this set of works is free\footnote{Subject
|
121 |
to license restrictions. The license under which this book may be used
|
122 |
is included later in this preface. Software tools are licensed under the GPL.} (which,
|
123 |
from a student's point of view, is the best price).
|
124 |
For example, this book can be used by instructors as
|
125 |
free supplemental
|
126 |
material for a course.
|
127 |
\item \textbf{To guide tool vendors.} The design of tools
|
128 |
is very much like the design of software, in that one must have
|
129 |
a nearly complete understanding of the requirements
|
130 |
in order to produce a useful product. I have often found that
|
131 |
tool vendors are unaware of the actual needs of embedded
|
132 |
software developers. By clearly enumerating requirements and
|
133 |
lessons learned, I strive to give tool vendors the information
|
134 |
and insight
|
135 |
necessary to better support embedded software developers.
|
136 |
\end{itemize}
|
137 |
|
138 |
In \marginpar{\textbf{\emph{Small} Defined}}
|
139 |
the title of this book, I've indicated that this book is
|
140 |
about \index{small microcontroller system}\emph{small} microcontroller work. By
|
141 |
\emph{small microcontroller work}, I mean the development
|
142 |
and production of small
|
143 |
embedded
|
144 |
software/hardware
|
145 |
systems such as are found
|
146 |
in consumer electronics and the automobile industry. Although
|
147 |
it is difficult to specify precisely what is and is not a
|
148 |
\emph{small} microcontroller system, the systems
|
149 |
I have in mind generally meet
|
150 |
the following criteria.
|
151 |
|
152 |
\begin{itemize}
|
153 |
\item They
|
154 |
involve a single-chip control solution (the address and data busses of
|
155 |
the microcontroller are not extended outside the package).
|
156 |
\item They
|
157 |
involve ROM and RAM sizes of under 1M.\footnote{But usually much less--256K or less of ROM and 24K
|
158 |
or less of RAM would be typical for my definition of \emph{small}.}
|
159 |
\item They frequently involve non-preemptive scheduling. In the systems I would
|
160 |
classify as \emph{small}, pre-emptive scheduling and/or commercial
|
161 |
RTOSs are relatively uncommon.
|
162 |
\item They involve a software
|
163 |
program that cannot easily be changed (either because the program
|
164 |
is lithographically masked into the microcontroller or because special
|
165 |
equipment or special access to the microcontroller is required).\footnote{A consequence of the
|
166 |
software unchangeability
|
167 |
combined with high production volumes is
|
168 |
that software mistakes are very, very expensive.}
|
169 |
\item They exist in an unstable electrical environment,
|
170 |
characterized by supply voltage fluctuations,
|
171 |
electrical transients, and spurious resets.
|
172 |
\end{itemize}
|
173 |
|
174 |
I use the term \index{hard problem}\emph{hard problem} throughout this book.
|
175 |
I define a
|
176 |
\marginpar{\textbf{\emph{Hard Problem} Defined}}
|
177 |
\emph{hard} problem as a problem that
|
178 |
meets the following two criteria.
|
179 |
\begin{itemize}
|
180 |
\item \textbf{The problem is \emph{hard}.}
|
181 |
The time to solve the problem is measured in
|
182 |
months or years, rather than hours or days; and furthermore,
|
183 |
the problem may be beyond the analytical ability of
|
184 |
most practicing embedded software engineers. In practice, this means that
|
185 |
an embedded software engineer cannot solve the problem in the time
|
186 |
available during a product development cycle.
|
187 |
\item \textbf{A solution to the problem is necessary for
|
188 |
reliable software or for ease of software construction.}
|
189 |
Generally, I would wish to exclude from consideration
|
190 |
problems which are difficult but which have no practical implications
|
191 |
for software reliability or ease of software construction
|
192 |
if they are not solved.
|
193 |
\end{itemize}
|
194 |
|
195 |
Clearly, if an embedded software engineer is to be productive and
|
196 |
produce a reliable embedded product, the number of unsolved
|
197 |
\emph{hard} problems s/he encounters during a career must
|
198 |
be fairly small. However, the reality is that a practicing
|
199 |
embedded software engineer encounters unsolved hard problems
|
200 |
on a daily basis.
|
201 |
|
202 |
In this work I take a special but not exclusive interest in
|
203 |
\emph{hard} problems---those that are relevant and necessary
|
204 |
but
|
205 |
so difficult and time-consuming that a software engineer cannot
|
206 |
solve them in the time available during the product development
|
207 |
cycle. I also have some interest in paradigms (ways of
|
208 |
thinking about software systems and problems), and in
|
209 |
best and worst practices (practices that are likely to to
|
210 |
avert problems and practices that are nearly suicidal,
|
211 |
respectively). It is noteworthy that I do not
|
212 |
have much interest in established
|
213 |
mathematical results that are available in
|
214 |
textbooks my readers probably already own.
|
215 |
For example, I have very limited interest in
|
216 |
reprinting the mathematical results surrounding
|
217 |
sampled control systems, but
|
218 |
I might be very interested in results predicting what
|
219 |
could and could not happen if such a
|
220 |
sampled control system is implemented on
|
221 |
a microcontroller using economical but lossy
|
222 |
multiplication and integration (to the best of my
|
223 |
knowledge, this insight does not exist anywhere).
|
224 |
|
225 |
<mv>\textbf{Volume \vconzeroroman{}: \vconzerotitle{}}
|
226 |
<sv>\textbf{Part I: Concepts}
|
227 |
\marginpar{\textbf{Book Contents}}
|
228 |
contains an introduction to the challenges of small microcontroller work.
|
229 |
\begin{itemize}
|
230 |
\item \textbf{Chapter\;\ref{cint0}, \cintzerotitle{}} explains the scope of the book
|
231 |
and what is meant by \emph{small microcontroller work}.
|
232 |
\item \textbf{Chapter\;\ref{chgr0}, \chgrzerotitle{}} provides my personal
|
233 |
interpretation of the
|
234 |
Holy Grail of embedded real-time software---that is, what is
|
235 |
desirable and undesirable and what fundamental goals
|
236 |
exist. In this chapter, I deal primarily in paradigms of
|
237 |
thought and
|
238 |
unattainable goals.
|
239 |
\end{itemize}
|
240 |
|
241 |
<mv>\textbf{Volume \vmfrzeroroman{}: \vmfrzerotitle{}}
|
242 |
<sv>\textbf{Part II: Mathematical Frameworks}
|
243 |
contains key mathematical frameworks and
|
244 |
results that are divorced from any specific problem.
|
245 |
\begin{itemize}
|
246 |
\item \textbf{Chapter\;\ref{cpri0}, \cprizerotitle{}} presents results surrounding
|
247 |
properties of integers and prime and composite numbers.
|
248 |
\item \textbf{Chapter\;\ref{cfry0}, \cfryzerotitle{}} presents results surrounding
|
249 |
the \index{Farey series}Farey series. The Farey series, which is the
|
250 |
ordered set of rational numbers with a certain maximum denominator,
|
251 |
forms the basis for some techniques of rational approximation.
|
252 |
\item \textbf{Chapter\;\ref{ccfr0}, \ccfrzerotitle{}} presents results surrounding
|
253 |
\index{continued fractions}continued fractions. The apparatus of continued
|
254 |
fractions provides the best algorithm for finding Farey neighbors and hence
|
255 |
best rational approximations.
|
256 |
\item \textbf{Chapter\;\ref{cbal0}, \cbalzerotitle{}} presents results surrounding
|
257 |
Boolean algebra. Traditionally, Boolean algebra and the study of Boolean
|
258 |
functions is associated with digital hardware design, but results and
|
259 |
algorithms involving the simplification of Boolean functions also have
|
260 |
application to the simplification of software control flow constructs.
|
261 |
\item \textbf{Chapter\;\ref{cqua0}, \cquazerotitle{}} presents results surrounding
|
262 |
the analysis of calculation error introduced by \emph{quantization}, the
|
263 |
unavoidable mapping from $\vworkrealset{}$ to $\vworkintset{}$ that must occur
|
264 |
as signals from the external world, which are usually continuous in nature,
|
265 |
are converted and processed by a microcontroller, which can inherently manipulate
|
266 |
only integers.
|
267 |
\item \textbf{Chapter\;\ref{cmtn0}, \cmtnzerotitle{}} presents miscellaneous results
|
268 |
from number theory which are useful or interesting, but awkward to
|
269 |
categorize.
|
270 |
\end{itemize}
|
271 |
|
272 |
|
273 |
<mv>\textbf{Volume \vcswzeroroman{}: \vcswzerotitle{}}
|
274 |
<sv>\textbf{Part III: Construction Of Embedded Software}
|
275 |
details the way embedded systems are (or should be)
|
276 |
constructed in practice.
|
277 |
\begin{itemize}
|
278 |
\item \textbf{Chapter\;\ref{cpco0}, \cpcozerotitle{}} outlines many aspects of
|
279 |
the way that embedded software is constructed (or should be constructed)
|
280 |
in practice.
|
281 |
|
282 |
\item \textbf{Chapter\;\ref{csoc0}, \csoczerotitle{}} treats issues specific to
|
283 |
the support of peripherals that are usually located on the same silicon
|
284 |
die as the microcontroller, such as hardware watchdogs or EEPROM.
|
285 |
|
286 |
\item \textbf{Chapter\;\ref{csoc1}, \csoconetitle{}} treats issues specific to
|
287 |
the support of peripherals that are usually separate from the microcontroller,
|
288 |
such as transducers and actuators.
|
289 |
|
290 |
\item \textbf{Chapter\;\ref{csnc0}, \csnczerotitle{}} discusses the support
|
291 |
of communication protocols and networks.
|
292 |
|
293 |
\item \textbf{Chapter\;\ref{csfo0}, \csfozerotitle{}} discusses requirements
|
294 |
that tend to occur in many different types of embedded software,
|
295 |
such as the need to calibrate an embedded product or diagnose it
|
296 |
via a communication link.
|
297 |
|
298 |
\item \textbf{Chapter\;\ref{crta0}, \crtazerotitle{}} discusses the real-time
|
299 |
analysis of embedded software; that is, how embedded software can be
|
300 |
analyzed to be sure that it will always meet its real-time constraints.
|
301 |
\end{itemize}
|
302 |
|
303 |
|
304 |
<mv>\textbf{Volume \valgzeroroman{}: \valgzerotitle{}}
|
305 |
<sv>\textbf{Part IV: Embedded System Algorithms And Techniques}
|
306 |
presents algorithms which are used in a target embedded system.
|
307 |
|
308 |
\begin{itemize}
|
309 |
\item \textbf{Chapter\;\ref{ccil0}, \ccilzerotitle{}} presents
|
310 |
classical and simple\footnote{Here \emph{classical} is used
|
311 |
in the same sense as Knuth uses it in \cite[p. 265]{bibref:b:knuthclassic2ndedvol2}.}
|
312 |
integer algorithms and techniques which
|
313 |
are used in embedded systems. Because integer and fixed point algorithms
|
314 |
are the dominant paradigm of arithmetic in small microcontroller
|
315 |
systems, this chapter is the backbone of most arithmetic in these systems.
|
316 |
|
317 |
\item \textbf{Chapter\;\ref{crat0}, \cratzerotitle{}} develops techniques
|
318 |
and results surrounding rational approximation; that is, arpproximating a real number
|
319 |
$r_I$ by a rational number $h/k$.
|
320 |
|
321 |
\item \textbf{Chapter\;\ref{cdta0}, \cdtazerotitle{}} presents algorithms
|
322 |
for use in discrete time (such as integration and differentiation),
|
323 |
and also more sophisticated integer algorithms.
|
324 |
|
325 |
\item \textbf{Chapter\;\ref{cnnu0}, \cnnuzerotitle{}} presents miscellaneous
|
326 |
non-numerical algorithms for use in target embedded systems.
|
327 |
\end{itemize}
|
328 |
|
329 |
|
330 |
<mv>\textbf{Volume \vpaczeroroman{}: \vpaczerotitle{}}
|
331 |
<sv>\textbf{Part V: Practical, Administrative, Incidental, And Miscellaneous Topics}
|
332 |
discusses topics that are non-technical, only peripherally related to embedded system
|
333 |
software development,
|
334 |
or difficult to categorize elsewhere.
|
335 |
|
336 |
\begin{itemize}
|
337 |
\item \textbf{Chapter\;\ref{cmpd0}, \cmpdzerotitle{}} discusses practical technqiues for
|
338 |
the management of materials produced during the product development process.
|
339 |
|
340 |
\item \textbf{Chapter\;\ref{cpit0}, \cpitzerotitle{}} provides designs and some
|
341 |
analysis of circuits that are useful in microcontroller software
|
342 |
development---either in microcontroller products themselves or in
|
343 |
test fixtures.
|
344 |
|
345 |
\item \textbf{Chapter\;\ref{cbma0}, \cbmazerotitle{}} discusses
|
346 |
bad management and unpleasant work situations, provides paradigms
|
347 |
and strategies for dealing with unpleasant work situations, and provides
|
348 |
guidance in finding employment.
|
349 |
|
350 |
\item \textbf{Chapter\;\ref{cpxf0}, \cpxfzerotitle{}} describes software and
|
351 |
hardware products which are exceptionally useful in embedded product development.
|
352 |
|
353 |
\item \textbf{Chapter\;\ref{corq0}, \corqzerotitle{}} describes open research
|
354 |
questions, i.e. problems I am aware of but do not know how to solve.
|
355 |
|
356 |
\item \textbf{Chapter\;\ref{cisk0}, \ciskzerotitle{}} contains reverse analyses of
|
357 |
embedded product defects, and the lessons to be learned from these
|
358 |
defects.\footnote{The word \emph{Insektengericht} (``insect court'', in German)
|
359 |
comes from a page in a \emph{Beavis and Butthead} comic book purchsed in
|
360 |
the M\"unchen Hauptbahnhoff around 1996. In this comic book, Beavis and
|
361 |
Butthead sit in judgement of insects (bugs), always with the verdict
|
362 |
\emph{schuldig} (guilty), and always with harsh sentences such as
|
363 |
\emph{Tod durch explodieren} (death by explosion). I do much the same
|
364 |
thing with embedded software bugs and embedded product defects.}
|
365 |
Because it isn't possible in the product development process to address
|
366 |
\emph{every} possible source of defect, I feel it is important to
|
367 |
have a visceral feel for what is most likely to go wrong; and such
|
368 |
intuition can only come from actively collecting product defects. I very much
|
369 |
hope that airline pilots study transcripts and reports from airplane crashes, and I
|
370 |
encourage embedded software developers to do the same.
|
371 |
\end{itemize}
|
372 |
|
373 |
|
374 |
<mv>\textbf{Volume \vijtzeroroman{}: \vijtzerotitle{}}
|
375 |
<sv>\textbf{Part VI: ESRG Tool Set Reference Guide}
|
376 |
is a reference for the research tool set for microcontroller
|
377 |
work (based on Tcl/Tk from Scriptics/Ajuba/Interwoven), which is packaged
|
378 |
with this book.
|
379 |
|
380 |
\begin{itemize}
|
381 |
\item \textbf{Chapter\;\ref{ctin0}, \ctinzerotitle{}} contains an overview
|
382 |
of the tool set and its design goals and construction.
|
383 |
|
384 |
\item \textbf{Chapter\;\ref{ctcm0}, \ctcmzerotitle{}} provides a reference
|
385 |
for the Tcl scripting language, around which the tool set is constructed.
|
386 |
|
387 |
\item \textbf{Chapter\;\ref{ctkm0}, \ctkmzerotitle{}} provides a reference
|
388 |
for the Tk graphical extensions to Tcl. These graphical extensions,
|
389 |
which are built into the tool set, are very useful for providing
|
390 |
attractive GUI interfaces.
|
391 |
|
392 |
\item \textbf{Chapter\;\ref{cfaq0}, \cfaqzerotitle{}} addresses frequently
|
393 |
asked questions and ``gotchas'' in Tcl and Tk.
|
394 |
|
395 |
\item \textbf{Chapter\;\ref{cxtn0}, \cxtnzerotitle{}} documents the Tcl
|
396 |
extensions which have been added to the script interpreters
|
397 |
(\emph{EsrgScripter} and \emph{EsrgConsole}). These extensions form the
|
398 |
``meat'' of \emph{The ESRG Tool Set}, and represent the new ideas or
|
399 |
new effort we are trying to convey. These new ideas and
|
400 |
new effort are embedded into Tcl interpreters to grant
|
401 |
greater flexibility in their application.
|
402 |
|
403 |
\item \textbf{Chapter\;\ref{cdcm0}, \cdcmzerotitle{}} documents the DOS command-line
|
404 |
utilities packaged with the tool set. In many cases, these utilities
|
405 |
perform functions identical or similar to Tcl extensions, but there are advantages to
|
406 |
packaging functionality as a DOS command-line utility.
|
407 |
\end{itemize}
|
408 |
|
409 |
|
410 |
<mv>\textbf{Volume \vsmazeroroman{}: \vsmazerotitle{}}
|
411 |
<sv>\textbf{Part VIII: Solutions To Selected Exercises}
|
412 |
contains solutions for selected exercises
|
413 |
found throughout the work.
|
414 |
|
415 |
Although \marginpar{\textbf{Features For Readers}} I
|
416 |
know that all of my readers will be involved in some way
|
417 |
with technical things---such as mathematics, computer science,
|
418 |
control theory, software quality, or the design and development
|
419 |
of embedded products---I realize that my readers will
|
420 |
vary in what they are trying to obtain from the work. Some readers
|
421 |
will be very research oriented, and may be trying to solve or pose
|
422 |
a particular hard problem.
|
423 |
Other readers may be looking for a specific practical
|
424 |
solution.
|
425 |
|
426 |
For the more practical reader, I have tried to be complete--that
|
427 |
is, I have tried not to omit information that might be
|
428 |
necessary in understanding my work without additional
|
429 |
research effort. In addition, a rich set of helpful materials is
|
430 |
packaged with \emph{The ESRG Tool Set} installation.
|
431 |
|
432 |
For the more research-oriented reader, I have tried to allow the
|
433 |
reader to rapidly find books, technical papers, Web sites,
|
434 |
technical experts,
|
435 |
and researchers. For this reason, books, papers,
|
436 |
Web sites, and individuals
|
437 |
are all cited and referenced using the same
|
438 |
framework in the bibliography. This means the
|
439 |
reader is directed not only to technical documents,
|
440 |
but also to the authors of the
|
441 |
documents.
|
442 |
|
443 |
Since \marginpar{\textbf{Version Identification}}
|
444 |
this book will be maintained on the Web, the issue arises of how
|
445 |
a reader would know one version of this book from another.
|
446 |
I have provided two mechanisms for this.\footnote{\TeX{}
|
447 |
tradition would demand that I pick a transcendental number
|
448 |
and with each successive version reveal another decimal place,
|
449 |
but that is too much work for me, given that
|
450 |
version control systems will handle the task automatically.}
|
451 |
|
452 |
\begin{itemize}
|
453 |
|
454 |
\item The title page indicates when the work was compiled from
|
455 |
\LaTeX{} source code. Two copies of the work with the
|
456 |
same compile date are almost certainly identical.
|
457 |
|
458 |
\item The entire work is maintained under a version control
|
459 |
system (CVS at \emph{SourceForge}),
|
460 |
\index{CVS}\index{SourceForge} and I've included
|
461 |
keyword expansions near the end of the \LaTeX{} source files so that version
|
462 |
control information is included automatically in the document text (for example,
|
463 |
a block of version control information is at the end of each chapter).
|
464 |
Sections or chapters with the same version control information are almost certainly
|
465 |
identical.
|
466 |
|
467 |
\end{itemize}
|
468 |
|
469 |
This \marginpar{\textbf{Book License}}\index{license} book is licensed under the
|
470 |
\emph{Academic Free License v. 2.0}, reproduced below for convenience.\footnote{Please
|
471 |
note that \emph{The ESRG Tool Set} and certain other materials are licensed under the GPL. At this time
|
472 |
only this book is licensed under the \emph{Academic Free License}.}
|
473 |
|
474 |
\begin{it}
|
475 |
This Academic Free License (the ``License'') applies to any original work of authorship
|
476 |
(the ``Original Work'') whose owner (the ``Licensor'') has placed the following
|
477 |
notice immediately following the copyright notice for the Original Work:\\
|
478 |
\\
|
479 |
Licensed under the Academic Free License version 2.0
|
480 |
|
481 |
\begin{enumerate}
|
482 |
\item \textbf{Grant of Copyright License.} Licensor hereby grants You a world-wide, royalty-free,
|
483 |
non-exclusive, perpetual, sublicenseable license to do the following:
|
484 |
|
485 |
\begin{enumerate}
|
486 |
\item to reproduce the Original Work in copies;
|
487 |
\item to prepare derivative works ("Derivative Works") based upon the Original Work;
|
488 |
\item to distribute copies of the Original Work and Derivative Works to the public;
|
489 |
\item to perform the Original Work publicly; and
|
490 |
\item to display the Original Work publicly.
|
491 |
\end{enumerate}
|
492 |
|
493 |
\item \textbf{Grant of Patent License.} Licensor hereby grants You a world-wide, royalty-free, non-exclusive,
|
494 |
perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied
|
495 |
in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the
|
496 |
Original Work and Derivative Works.
|
497 |
|
498 |
\item \textbf{Grant of Source Code License.} The term ``Source Code'' means the preferred form of the
|
499 |
Original Work for making modifications to it and all available documentation describing how to modify the
|
500 |
Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the
|
501 |
Original Work along with each copy of the Original Work that Licensor distributes.
|
502 |
Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of
|
503 |
the Source Code in an information repository reasonably calculated to permit inexpensive and convenient
|
504 |
access by You for as long as Licensor continues to distribute the Original Work, and by publishing the
|
505 |
address of that information repository in a notice immediately following the copyright
|
506 |
notice that applies to the Original Work.
|
507 |
|
508 |
\item \textbf{Exclusions From License Grant.} Neither the names of Licensor, nor the names of any
|
509 |
contributors to the Original Work, nor any of their trademarks or service marks, may
|
510 |
be used to endorse or promote products derived from this Original Work without express prior
|
511 |
written permission of the Licensor. Nothing in this License shall be deemed to grant any
|
512 |
rights to trademarks, copyrights, patents, trade secrets or any other intellectual property
|
513 |
of Licensor except as expressly stated herein. No patent license is granted to make, use,
|
514 |
sell or offer to sell embodiments of any patent claims other than the licensed claims
|
515 |
defined in Section 2. No right is granted to the trademarks of Licensor even if such marks
|
516 |
are included in the Original Work. Nothing in this License shall be interpreted to prohibit
|
517 |
Licensor from licensing under different terms from this License any Original Work that
|
518 |
Licensor otherwise would have a right to license.
|
519 |
|
520 |
\item This section intentionally omitted.
|
521 |
|
522 |
\item \textbf{Attribution Rights.} You must retain, in the Source Code of any Derivative Works that
|
523 |
You create, all copyright, patent or trademark notices from the Source Code of the Original Work,
|
524 |
as well as any notices of licensing and any descriptive text identified therein as an
|
525 |
``Attribution Notice.'' You must cause the Source Code for any Derivative Works that
|
526 |
You create to carry a prominent Attribution Notice reasonably calculated to inform
|
527 |
recipients that You have modified the Original Work.
|
528 |
|
529 |
\item \textbf{Warranty of Provenance and Disclaimer of Warranty.} Licensor warrants that the copyright in
|
530 |
and to the Original Work and the patent rights granted herein by Licensor are owned by the
|
531 |
Licensor or are sublicensed to You under the terms of this License with the permission of
|
532 |
the contributor(s) of those copyrights and patent rights. Except as expressly stated in the
|
533 |
immediately proceeding sentence, the Original Work is provided under this License on an
|
534 |
``AS IS'' BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation,
|
535 |
the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
536 |
THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY
|
537 |
constitutes an essential part of this License. No license to Original Work is granted
|
538 |
hereunder except under this disclaimer.
|
539 |
|
540 |
\item \textbf{Limitation of Liability.} Under no circumstances and under no legal theory, whether in
|
541 |
tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for
|
542 |
any direct, indirect, special, incidental, or consequential damages of any character arising
|
543 |
as a result of this License or the use of the Original Work including, without limitation,
|
544 |
damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all
|
545 |
other commercial damages or losses. This limitation of liability shall not apply to liability
|
546 |
for death or personal injury resulting from Licensor's negligence to the extent applicable law
|
547 |
prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of
|
548 |
incidental or consequential damages, so this exclusion and limitation may not apply to You.
|
549 |
|
550 |
\item \textbf{Acceptance and Termination.} If You distribute copies of the Original Work or a
|
551 |
Derivative Work, You must make a reasonable effort under the circumstances to
|
552 |
obtain the express assent of recipients to the terms of this License. Nothing
|
553 |
else but this License (or another written agreement between Licensor and You)
|
554 |
grants You permission to create Derivative Works based upon the Original Work
|
555 |
or to exercise any of the rights granted in Section 1 herein, and any attempt
|
556 |
to do so except under the terms of this License (or another written agreement
|
557 |
between Licensor and You) is expressly prohibited by U.S. copyright law, the
|
558 |
equivalent laws of other countries, and by international treaty. Therefore,
|
559 |
by exercising any of the rights granted to You in Section 1 herein, You indicate
|
560 |
Your acceptance of this License and all of its terms and conditions.
|
561 |
|
562 |
\item \textbf{Termination for Patent Action.} This License shall terminate automatically
|
563 |
and You may no longer exercise any of the rights granted to You by this License
|
564 |
as of the date You commence an action, including a cross-claim or counterclaim,
|
565 |
for patent infringement (i) against Licensor with respect to a patent applicable
|
566 |
to software or (ii) against any entity with respect to a patent applicable to
|
567 |
the Original Work (but excluding combinations of the Original Work with other
|
568 |
software or hardware).
|
569 |
|
570 |
\item \textbf{Jurisdiction, Venue and Governing Law.} Any action or suit relating to this
|
571 |
License may be brought only in the courts of a jurisdiction wherein the Licensor
|
572 |
resides or in which Licensor conducts its primary business, and under the laws
|
573 |
of that jurisdiction excluding its conflict-of-law provisions. The application
|
574 |
of the United Nations Convention on Contracts for the International Sale of Goods
|
575 |
is expressly excluded. Any use of the Original Work outside the scope of this
|
576 |
License or after its termination shall be subject to the requirements and
|
577 |
penalties of the U.S. Copyright Act, 17 U.S.C. 101 et seq., the equivalent
|
578 |
laws of other countries, and international treaty. This section shall
|
579 |
survive the termination of this License.
|
580 |
|
581 |
\item \textbf{Attorneys Fees.} In any action to enforce the terms of this License or
|
582 |
seeking damages relating thereto, the prevailing party shall be entitled
|
583 |
to recover its costs and expenses, including, without limitation, reasonable
|
584 |
attorneys' fees and costs incurred in connection with such action, including
|
585 |
any appeal of such action. This section shall survive the termination of
|
586 |
this License.
|
587 |
|
588 |
\item \textbf{Miscellaneous.} This License represents the complete agreement
|
589 |
concerning the subject matter hereof. If any provision of this License
|
590 |
is held to be unenforceable, such provision shall be reformed only to
|
591 |
the extent necessary to make it enforceable.
|
592 |
|
593 |
\item \textbf{Definition of ``You'' in This License.} ``You'' throughout this License,
|
594 |
whether in upper or lower case, means an individual or a legal entity
|
595 |
exercising rights under, and complying with all of the terms of, this
|
596 |
License. For legal entities, ``You'' includes any entity that controls,
|
597 |
is controlled by, or is under common control with you. For purposes of
|
598 |
this definition, ``control'' means (i) the power, direct or indirect,
|
599 |
to cause the direction or management of such entity, whether by
|
600 |
contract or otherwise, or (ii) ownership of fifty percent (50%)
|
601 |
or more of the outstanding shares, or (iii) beneficial ownership
|
602 |
of such entity.
|
603 |
|
604 |
\item \textbf{Right to Use.} You may use the Original Work in all ways not
|
605 |
otherwise restricted or conditioned by this License or by law,
|
606 |
and Licensor promises not to interfere with or be responsible
|
607 |
for such uses by You.
|
608 |
\end{enumerate}
|
609 |
\end{it}
|
610 |
|
611 |
|
612 |
I \marginpar{\textbf{Intellectual Property}} believe very
|
613 |
strongly in the notion of intellectual property. I have endeavored
|
614 |
in this book to cite all references and to identify all work and
|
615 |
all ideas that are not my own.\footnote{I've actually gone a step
|
616 |
further---I've tried to provide enough information to allow a
|
617 |
motivated reader to get in touch with the originator of the work
|
618 |
or ideas.} I would request the same courtesy in return (but will
|
619 |
not enforce this courtesy, except by exposure of parties responsible
|
620 |
for the theft of ideas without credit). Plagiarism and theft of intellectual property is a
|
621 |
regrettable but common occurrence, and I can
|
622 |
reliably predict that some student somewhere in the Webbed world
|
623 |
will borrow my ideas or work without citation
|
624 |
for a semester project---such events would earn my scorn
|
625 |
but be relatively insignificant
|
626 |
on my radar screen. However, if any of my work appears without
|
627 |
credit in academic journals, I would take the matter less
|
628 |
jovially and would very likely report the plagiarism to the journal
|
629 |
involved.
|
630 |
|
631 |
I \marginpar{\textbf{Contacting the Author}}\index{contacting the author}
|
632 |
can be contacted at \texttt{dtashley@aol.com}. I invite readers
|
633 |
to contact me about
|
634 |
any material in this book, in \emph{The ESRG Tool Set}, or at
|
635 |
the web site \texttt{http://esrg.sourceforge.net}.
|
636 |
|
637 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
638 |
|
639 |
\noindent\begin{figure}[!b]
|
640 |
\noindent\rule[-0.25in]{\textwidth}{1pt}
|
641 |
\begin{tiny}
|
642 |
\begin{verbatim}
|
643 |
$RCSfile: workprfa.tex,v $
|
644 |
$Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/volshare/workprfa.tex,v $
|
645 |
$Revision: 1.7 $
|
646 |
$Author: dtashley $
|
647 |
$Date: 2003/11/28 23:23:17 $
|
648 |
\end{verbatim}
|
649 |
\end{tiny}
|
650 |
\noindent\rule[0.25in]{\textwidth}{1pt}
|
651 |
\end{figure}
|
652 |
|
653 |
% $Log: workprfa.tex,v $
|
654 |
% Revision 1.7 2003/11/28 23:23:17 dtashley
|
655 |
% Edits to reflect single author, Academic Free License, and other
|
656 |
% changes.
|
657 |
%
|
658 |
% Revision 1.6 2003/05/15 08:25:08 dtashley
|
659 |
% Changes for removal of "Information for Authors" chapter (this has been
|
660 |
% moved to a web page).
|
661 |
%
|
662 |
% Revision 1.5 2003/05/15 04:50:47 dtashley
|
663 |
% Changes pursuant to removal of the quote farm chapter (it has been moved to
|
664 |
% be a web page).
|
665 |
%
|
666 |
% Revision 1.4 2001/08/27 20:06:09 dtashley
|
667 |
% Edits and substantial re-organization.
|
668 |
%
|
669 |
% Revision 1.3 2001/06/18 23:48:41 dtashley
|
670 |
% Changes after move to SourceForge and combining of book with
|
671 |
% tool set.
|
672 |
%
|
673 |
% Revision 1.2 2001/06/17 20:52:50 dtashley
|
674 |
% Modified for CVS.
|
675 |
%
|
676 |
%$History: workprfa.tex $
|
677 |
%
|
678 |
% ***************** Version 16 *****************
|
679 |
% User: Dashley1 Date: 1/31/01 Time: 4:20p
|
680 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
681 |
% Edits.
|
682 |
%
|
683 |
% ***************** Version 15 *****************
|
684 |
% User: Dashley1 Date: 1/01/01 Time: 8:13p
|
685 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
686 |
% Edits.
|
687 |
%
|
688 |
% ***************** Version 14 *****************
|
689 |
% User: Dashley1 Date: 12/22/00 Time: 12:57a
|
690 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
691 |
% Tcl automated method of build refined.
|
692 |
%
|
693 |
% ***************** Version 13 *****************
|
694 |
% User: David T. Ashley Date: 7/29/00 Time: 11:51p
|
695 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
696 |
% Edits, addition of solutions manual volume.
|
697 |
%
|
698 |
% ***************** Version 12 *****************
|
699 |
% User: David T. Ashley Date: 7/11/00 Time: 8:32p
|
700 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
701 |
% Separation and enhancement of quantization chapter.
|
702 |
%
|
703 |
% ***************** Version 11 *****************
|
704 |
% User: David T. Ashley Date: 7/09/00 Time: 11:17p
|
705 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
706 |
% Addition of new chapters, enhancements to preface.
|
707 |
%
|
708 |
% ***************** Version 10 *****************
|
709 |
% User: David T. Ashley Date: 7/08/00 Time: 8:36p
|
710 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
711 |
% Minor edits, plus removal of Beavis and Butthead image until permission
|
712 |
% is obtained from MTV.
|
713 |
%
|
714 |
% ***************** Version 9 *****************
|
715 |
% User: Dashley1 Date: 6/27/00 Time: 7:36p
|
716 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
717 |
% Edits for rationmetric conversion systems.
|
718 |
%
|
719 |
% ***************** Version 8 *****************
|
720 |
% User: Dashley1 Date: 6/15/00 Time: 9:08p
|
721 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
722 |
% Refinement work, including first attempt at adding index.
|
723 |
%
|
724 |
% ***************** Version 7 *****************
|
725 |
% User: Dashley1 Date: 6/15/00 Time: 8:26p
|
726 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
727 |
% Minor omission--emphasis on word missing.
|
728 |
%
|
729 |
% ***************** Version 6 *****************
|
730 |
% User: Dashley1 Date: 6/15/00 Time: 7:40p
|
731 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
732 |
% Proofreading changes.
|
733 |
%
|
734 |
% ***************** Version 5 *****************
|
735 |
% User: Dashley1 Date: 6/14/00 Time: 6:02p
|
736 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
737 |
% Addition of section "Information For Authors", and patch up of
|
738 |
% miscellaneous references.
|
739 |
%
|
740 |
% ***************** Version 4 *****************
|
741 |
% User: Dashley1 Date: 6/13/00 Time: 9:06p
|
742 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
743 |
% Preface enhancements.
|
744 |
%
|
745 |
% ***************** Version 3 *****************
|
746 |
% User: Dashley1 Date: 6/12/00 Time: 8:28p
|
747 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
748 |
% Printable version control information updated, quotes rearranged and
|
749 |
% reformatted.
|
750 |
%
|
751 |
% ***************** Version 2 *****************
|
752 |
% User: David T. Ashley Date: 6/11/00 Time: 4:03p
|
753 |
% Updated in $/uC Software Multi-Volume Book (A)/Shared, Volume Sections, Styles, And Graphics
|
754 |
% VC info added, filenames corrected.
|
755 |
%
|
756 |
%End of file WORKPRFA.TEX
|