ViewVC logotype

Annotation of /pubs/books/ucbka/trunk/c_daa0/c_daa0.tex

Parent Directory Parent Directory | Revision Log Revision Log

Revision 277 - (hide annotations) (download) (as text)
Tue Aug 13 02:35:39 2019 UTC (4 years, 11 months ago) by dashley
File MIME type: application/x-tex
File size: 3782 byte(s)
Change keyword substitution (migration from cvs to svn).
Add quotation.
1 dashley 140 %$Header$
3     \chapter{\cdaazerolongtitle{}}
5     \label{cdaa0}
7     \beginchapterquote{``Without censorship, things can get terribly confused
8     in the public mind.''}{General William Westmoreland}
10     \section{Introduction}
11     %Section Tag: INT
13     In practice, preparing the ROM image of a microcontroller software product
14     is a complex process that exceeds the capabilities of standard development
15     tools such as compilers, assemblers, and linkers. The specific
16     elements of the process that exceed the capabilities of standard ``off-the-shelf''
17     development tools are:
19     \begin{itemize}
20     \item ROM checksums must typically be generated and placed at a specific
21     location in ROM.
22     \item Suspicious conditions that may indicate a software error
23     should be detected. Suspicious conditions include
24     versions of compilers or other development tools that are
25     not the expected versions, files which are not checked into
26     version control, extra files, missing files, etc.
27     \item Coding standards should be automatically enforced during the
28     build process. Violations of coding standards should prevent
29     a production build.
30     \item Product defects should be fed back into the tool set.\footnote{Product
31     defects should also be fed back into the training for software
32     developers, and into the software process.} If the root cause
33     of a product defect is found to be automatically detectable,
34     tools should be enhanced to prevent recurrence of the defect.
35     \item Redundancy should be eliminated or minimized in all of the
36     materials---including the code---which are maintained as
37     part of software developments. Examples of redundancy include:
38     \begin{itemize}
39     \item Network message lists are often redundant with respect to
40     the code. Network message lists often are processed to
41     form data tables in the code, and sometimes even influence
42     the structure of the code.
43     \item Software modules are often redundant with respect to
44     each other. For example, it is common for task schedulers
45     and real-time operating systems to contain lists of
46     function pointers. These lists of function pointers
47     must be maintained to be consistent with the functions
48     (usually in different source files). The maintenance
49     of consistency should be automatic (the lists of function
50     pointers should be maintained automatically).
51     \end{itemize}
52     \item Organizations often maintain ``bookshelves''---collections of
53     re-usable software components. Often, ``customizing'' the
54     software components (i.e. using them from the bookshelf)
55     is a task that exceeds the capabilites of the `C' preprocessor
56     or other simple tools.
57     \item Some mappings that are helpful in code are too complex to
58     be performed by the `C' preprocessor or other simple
59     tools. For example, if one accepts 1.6093 as the
60     ideal conversion factor from miles-per-hour to
61     kilometers-per-hour, the best rational approximation with
62     numerator and denominator not exceeding 255 is 243/151.\footnote{See
63     Chapters \cfryzeroxrefhyphen{}\ref{cfry0},
64     \ccfrzeroxrefhyphen{}\ref{ccfr0},
65     and \cratzeroxrefhyphen{}\ref{crat0}.} The mapping from
66     (1.6093, 255, 255) to (243,151) is too complex to be made
67     by the `C' preprocessor.
68     \end{itemize}
70     In this chapter, we present a solution based around the scripting language
71     Tcl.
73     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74     \noindent\begin{figure}[!b]
75     \noindent\rule[-0.25in]{\textwidth}{1pt}
76     \begin{tiny}
77     \begin{verbatim}
78 dashley 277 $HeadURL$
79     $Revision$
80     $Date$
81     $Author$
82 dashley 140 \end{verbatim}
83     \end{tiny}
84     \noindent\rule[0.25in]{\textwidth}{1pt}
85     \end{figure}
86 dashley 277 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
87 dashley 140 %
88     %End of file C_DAA0.TEX


Name Value
svn:eol-style native
svn:keywords Author Date Id Revision URL Header

ViewVC Help
Powered by ViewVC 1.1.25