1 |
dashley |
140 |
<html> |
2 |
|
|
|
3 |
|
|
<head> |
4 |
|
|
<title>Outline For "A Practitioner's Guide To The Design And Development Of |
5 |
|
|
Small Microcontroller Software"</title> |
6 |
|
|
</head> |
7 |
|
|
|
8 |
|
|
<body BACKGROUND="wbbkgnds/bkblue01.gif" TEXT="#000000"> |
9 |
|
|
|
10 |
|
|
<h1 ALIGN="center">"A Practitioner's Guide To The Design And Development Of Small |
11 |
|
|
Microcontroller Software" (Multi-Volume Book, Work In Progress)</h1> |
12 |
|
|
|
13 |
|
|
<hr> |
14 |
|
|
|
15 |
|
|
<p><b>All source files and .PDF output for this book (a work in progress) are |
16 |
|
|
available over the Internet. ("Source files" include LaTeX |
17 |
|
|
source, graphics, etc.)</b></p> |
18 |
|
|
<p><b>This file contains the major "taxonomy" of the work. Most |
19 |
|
|
sections are as of yet unpopulated.</b></p> |
20 |
|
|
<hr> |
21 |
|
|
<p align="center"><b><font size="5">Click <a href="_readme_.htm">here</a> to |
22 |
|
|
view the _README_.HTM file for this work.</font></b></p> |
23 |
|
|
|
24 |
|
|
<hr> |
25 |
|
|
|
26 |
|
|
<p align="center"><font size="6"><b><a href="svf.pdf">Single-Volume Work</a></b></font></p> |
27 |
|
|
<p align="center">(The single-volume work is everything rolled into one. |
28 |
|
|
It hasn't been decided yet if and how the work will be broken up for |
29 |
|
|
printing. For electronic distribution, the single-volume work is |
30 |
|
|
preferred.)</p> |
31 |
|
|
|
32 |
|
|
<hr> |
33 |
|
|
|
34 |
|
|
<ul> |
35 |
|
|
<li><a href="con0.pdf">Volume I: Concepts (VCON0)</a> <ul> |
36 |
|
|
<li>Introduction To Small Microcontroller Work (CINT0)<ul> |
37 |
|
|
<li>Introduction, Proliferation Of Embedded Software</li> |
38 |
|
|
<li>Embedded Software Quality Problems</li> |
39 |
|
|
<li>Elements Of The Domain<ul> |
40 |
|
|
<li>Criticality Of The Embedded Software Load To The Product</li> |
41 |
|
|
<li>Unchangeability Of The Software And High Cost Of Software Defects</li> |
42 |
|
|
<li>Real-Time Performance Requirements</li> |
43 |
|
|
<li>Operation In An Electrically Volatile Environment</li> |
44 |
|
|
<li>ROM Constraints</li> |
45 |
|
|
<li>RAM Constraints</li> |
46 |
|
|
<li>CPU Cycle Constraints</li> |
47 |
|
|
<li>Self-Tests And Diagnostics</li> |
48 |
|
|
</ul> |
49 |
|
|
</li> |
50 |
|
|
</ul> |
51 |
|
|
</li> |
52 |
|
|
<li>The Holy Grail (CHGR0)<ul> |
53 |
|
|
<li>Technical Goals In The Construction Of Software</li> |
54 |
|
|
<li>Administrative Goals</li> |
55 |
|
|
</ul> |
56 |
|
|
</li> |
57 |
|
|
<li>Appendix: Quote Farm (CRJQ0)</li> |
58 |
|
|
<li>Appendix: Information For Authors (CIAU0)</li> |
59 |
|
|
</ul> |
60 |
|
|
</li> |
61 |
|
|
<li><a href="mfr0.pdf">Volume II: Key Mathematical Frameworks And Results (VMFR0)</a><ul> |
62 |
|
|
<li>Prime Numbers And Related Topics (CPRI0)</li> |
63 |
|
|
<li>Farey Series And Related Topics (CFRY0)<ul> |
64 |
|
|
<li>Introduction, Definition, And History Of The Farey Series</li> |
65 |
|
|
<li>Properties Of The Farey Series</li> |
66 |
|
|
<li>Generation Of Terms Of The Farey Series</li> |
67 |
|
|
<li>Probabilistic Results Of The Farey Series</li> |
68 |
|
|
<li>Case Of Constrained <em>h</em></li> |
69 |
|
|
<li>Choosing <em>h</em> And <em>k</em> Over A Rectangular Region Of The Integer Lattice</li> |
70 |
|
|
<li>Exercises</li> |
71 |
|
|
</ul> |
72 |
|
|
</li> |
73 |
|
|
<li>Continued Fractions And Related Topics (CCFR0)<ul> |
74 |
|
|
<li>Introduction, Definition, And History Of Continued Fractions</li> |
75 |
|
|
<li>Continued Fraction Representation Of Rational Numbers</li> |
76 |
|
|
<li>Euclid's GCD Algorithm</li> |
77 |
|
|
<li>Continued Fraction Representation Of Irrational Numbers</li> |
78 |
|
|
<li>Properties Of Continued Fractions</li> |
79 |
|
|
<li>Continued Fractions As Best Approximations<ul> |
80 |
|
|
<li>Finding The Farey Neighbors Of An Arbitrary Rational Or Irrational Number</li> |
81 |
|
|
</ul> |
82 |
|
|
</li> |
83 |
|
|
<li>Exercises</li> |
84 |
|
|
</ul> |
85 |
|
|
</li> |
86 |
|
|
<li>Error-Detecting And Error-Correcting Codes, With Microcontroller |
87 |
|
|
Applications (CEDC0) |
88 |
|
|
<ul> |
89 |
|
|
<li>Introduction</li> |
90 |
|
|
<li>Coding Concepts |
91 |
|
|
<ul> |
92 |
|
|
<li>Properties Of The Exclusive-OR Function</li> |
93 |
|
|
<li>Bits, Communication Channels, Messages, And Check Bits</li> |
94 |
|
|
<li>Codewords, Codes, And (n,k) Block Codes</li> |
95 |
|
|
<li>Hamming Distance, Minimum Hamming Distance, And Errors</li> |
96 |
|
|
<li>Error-Detecting Versus Error Error-Correcting Codes</li> |
97 |
|
|
<li>Linear Codes</li> |
98 |
|
|
<li>Burst Errors</li> |
99 |
|
|
<li>Metrics Of Goodness</li> |
100 |
|
|
</ul> |
101 |
|
|
</li> |
102 |
|
|
<li>Finite Field Theory</li> |
103 |
|
|
<li>Linear Codes |
104 |
|
|
<ul> |
105 |
|
|
<li>Definition </li> |
106 |
|
|
<li>The Parity Check Matrix</li> |
107 |
|
|
<li>The Generator Matrix</li> |
108 |
|
|
<li>Basic Properties Of Linear Codes</li> |
109 |
|
|
<li>Relationship Between Parity Check Matrix And Minimum Distance</li> |
110 |
|
|
<li>Relationship Between Parity Check Matrix And Burst Error |
111 |
|
|
Detection Capability</li> |
112 |
|
|
<li>Automatic Generation Of The Parity Check Matrix</li> |
113 |
|
|
</ul> |
114 |
|
|
</li> |
115 |
|
|
<li>Combinatoric Observations About (n,k) Block Codes |
116 |
|
|
<ul> |
117 |
|
|
<li>Surface Area And Volume Of Packing Spheres Of Radius Rho</li> |
118 |
|
|
<li>Relationship Between Number Of Check Bits n-k And Minimum |
119 |
|
|
Hamming Distance d |
120 |
|
|
<ul> |
121 |
|
|
<li>Hamming (Sphere Packing) Bound</li> |
122 |
|
|
</ul> |
123 |
|
|
</li> |
124 |
|
|
<li>Perfect Codes</li> |
125 |
|
|
</ul> |
126 |
|
|
</li> |
127 |
|
|
<li>Hamming Codes</li> |
128 |
|
|
<li>Cyclic Codes</li> |
129 |
|
|
<li>Economical Implementation Of Linear Codes In Software</li> |
130 |
|
|
<li>d=2 Codes Useful In Microcontroller Work</li> |
131 |
|
|
<li>d=3 Codes Useful In Microcontroller Work</li> |
132 |
|
|
</ul> |
133 |
|
|
</li> |
134 |
|
|
</ul> |
135 |
|
|
</li> |
136 |
|
|
<li>Acknowledgements</li> |
137 |
|
|
<li>Exercises</li> |
138 |
|
|
</ul> |
139 |
|
|
|
140 |
|
|
<ul> |
141 |
|
|
<li>Boolean Algebra And Simplification Of Boolean Functions (CBAL0)<ul> |
142 |
|
|
<li>Introduction, Definition, And History Of Boolean Algebra</li> |
143 |
|
|
<li>Simplification Of Boolean Functions By Algebraic Manipulation</li> |
144 |
|
|
<li>Karnaugh Maps</li> |
145 |
|
|
<li>The Quine-McCluskey Method</li> |
146 |
|
|
<li>The Scheinman Method</li> |
147 |
|
|
<li>The Multiple Scheinman Method (need to get back with Dr. Singh to get details).</li> |
148 |
|
|
<li>Exercises</li> |
149 |
|
|
</ul> |
150 |
|
|
</li> |
151 |
|
|
<li>Quantization (CQUA0) |
152 |
|
|
<ul> |
153 |
|
|
<li>Introduction</li> |
154 |
|
|
<li>Error Analysis Of Addition Of Quantized Inputs</li> |
155 |
|
|
<li>Error Analysis Of Subtraction Of Quantized Inputs</li> |
156 |
|
|
<li>Error Analysis Of Multiplication Of Quantized Inputs</li> |
157 |
|
|
<li>Error Analysis Of Division Of Quantized Inputs</li> |
158 |
|
|
<li>Error Analysis Of Arbitrary Algebraic Functions</li> |
159 |
|
|
<li>Error Analysis Of Rational Sweeps</li> |
160 |
|
|
</ul> |
161 |
|
|
</li> |
162 |
|
|
<li>Miscellaneous Topics From Number Theory (CMTN0) |
163 |
|
|
<ul> |
164 |
|
|
<li>Introduction</li> |
165 |
|
|
<li>Tests For Divisibility Of Integers</li> |
166 |
|
|
<li>Exercises</li> |
167 |
|
|
</ul> |
168 |
|
|
</li> |
169 |
|
|
<li>Petri Nets (unpopulated)</li> |
170 |
|
|
<li>Timed Automata (unpopulated)</li> |
171 |
|
|
<li>Hybrid Systems (unpopulated)</li> |
172 |
|
|
<li>Error Detection And Correction Codes (unpopulated)</li> |
173 |
|
|
<li>Encryption And Security (unpopulated)</li> |
174 |
|
|
</ul> |
175 |
|
|
|
176 |
|
|
<ul> |
177 |
|
|
<li><a href="csw0.pdf">Volume III: Construction Of Embedded Software (VCSW0)</a> |
178 |
|
|
<ul> |
179 |
|
|
<li>General Practical Construction Of Embedded Software (CPCO0) |
180 |
|
|
<ul> |
181 |
|
|
<li>Measurement Of Time</li> |
182 |
|
|
<li>Interface Styles</li> |
183 |
|
|
<li>Reduction Of Combinational Mappings</li> |
184 |
|
|
<li>Reduction Of Sequential Mappings</li> |
185 |
|
|
<li>Debouncing</li> |
186 |
|
|
<li>Filtering</li> |
187 |
|
|
<li>ROM Reduction Techniques</li> |
188 |
|
|
<li>Initialization</li> |
189 |
|
|
<li>The Interrupt Subsystem</li> |
190 |
|
|
<li>Sleep And Wakeup</li> |
191 |
|
|
</ul> |
192 |
|
|
</li> |
193 |
|
|
<li>Support Of On-Chip Peripherals And Subsystems (CSOC0) |
194 |
|
|
<ul> |
195 |
|
|
<li>Hardware watchdogs</li> |
196 |
|
|
<li>EEPROM</li> |
197 |
|
|
</ul> |
198 |
|
|
</li> |
199 |
|
|
<li>Support Of Off-Chip Peripherals And Subsystems (CSOC1) |
200 |
|
|
<ul> |
201 |
|
|
<li>Potentiometers</li> |
202 |
|
|
<li>Ratiometric Conversion And Measurement Systems</li> |
203 |
|
|
<li>Motion Control Systems</li> |
204 |
|
|
</ul> |
205 |
|
|
</li> |
206 |
|
|
<li>Support Of Networks And Communication Protocols (CSNC0)</li> |
207 |
|
|
<li>Support Of Frequently Occurring Requirements (CSFO0) |
208 |
|
|
<ul> |
209 |
|
|
<li>Diagnostics</li> |
210 |
|
|
</ul> |
211 |
|
|
</li> |
212 |
|
|
<li>Real-Time Analysis (CRTA0) |
213 |
|
|
<ul> |
214 |
|
|
<li>Paradigms For Construction</li> |
215 |
|
|
<li>Rate Monotonic Analysis</li> |
216 |
|
|
<li>Analysis Of The Interrupt Subsystem</li> |
217 |
|
|
</ul> |
218 |
|
|
</li> |
219 |
|
|
</ul> |
220 |
|
|
</li> |
221 |
|
|
<li><a href="alg0.pdf">Volume IV: Embedded System Algorithms And Techniques |
222 |
|
|
(VALG0)</a><ul> |
223 |
|
|
<li>Classic And Simple Integer Algorithms (CIL0) |
224 |
|
|
<ul> |
225 |
|
|
<li>Paradigms Of Microcontroller Numerics |
226 |
|
|
</li> |
227 |
|
|
<li>Integer Addition |
228 |
|
|
<ul> |
229 |
|
|
<li>Hardware Implementation Of Addition</li> |
230 |
|
|
<li>Addition Of Unsigned Operands</li> |
231 |
|
|
<li>Addition Of Signed Operands</li> |
232 |
|
|
<li>Addition Of Arbitrary-Size Operands</li> |
233 |
|
|
<li>Error Analysis Of Addition Of Quantized Inputs</li> |
234 |
|
|
</ul> |
235 |
|
|
</li> |
236 |
|
|
<li>Subtraction |
237 |
|
|
<ul> |
238 |
|
|
<li>Hardware Implementation Of Subtraction</li> |
239 |
|
|
<li>Subtraction Of Unsigned Operands</li> |
240 |
|
|
<li>Subtraction Of Signed Operands</li> |
241 |
|
|
<li>Subtraction Of Arbitrary-Size Operands</li> |
242 |
|
|
</ul> |
243 |
|
|
</li> |
244 |
|
|
<li>Multiplication<ul> |
245 |
|
|
<li>Hardware Implementation Of Multiplication</li> |
246 |
|
|
<li>Multiplication Of Unsigned Operands</li> |
247 |
|
|
<li>Multiplication Of Signed Operands</li> |
248 |
|
|
<li>Multiplication Of Arbitrary-Size Operands</li> |
249 |
|
|
</ul> |
250 |
|
|
</li> |
251 |
|
|
<li>Division<ul> |
252 |
|
|
<li>Hardware Implementation Of Division</li> |
253 |
|
|
<li>Division Of Unsigned Operands</li> |
254 |
|
|
<li>Division Of Signed Operands</li> |
255 |
|
|
<li>Division Of Arbitrary-Size Operands</li> |
256 |
|
|
</ul> |
257 |
|
|
</li> |
258 |
|
|
</ul> |
259 |
|
|
</li> |
260 |
|
|
<li>Rational Approximation (CRAT0)<ul> |
261 |
|
|
<li>Introduction</li> |
262 |
|
|
<li>Frequency Division And Rational Counting Techniques |
263 |
|
|
<ul> |
264 |
|
|
<li>Frequency Division With Rational Ratio a/b <= 1</li> |
265 |
|
|
</ul> |
266 |
|
|
</li> |
267 |
|
|
<li>Analysis Of Approximation Error<ul> |
268 |
|
|
<li>Model Functions</li> |
269 |
|
|
<li>Methods Of Error Analysis</li> |
270 |
|
|
<li>Error Analysis Of Model Functions</li> |
271 |
|
|
<li>Methods Of Choosing <em>h</em> And <em>k</em>.</li> |
272 |
|
|
<li>Tabulated Scaling Factors</li> |
273 |
|
|
<li>Implementation Techniques</li> |
274 |
|
|
<li>Design Examples</li> |
275 |
|
|
<li>Conclusion</li> |
276 |
|
|
<li>Acknowledgements</li> |
277 |
|
|
<li>Exercises</li> |
278 |
|
|
</ul> |
279 |
|
|
</li> |
280 |
|
|
</ul> |
281 |
|
|
</li> |
282 |
|
|
<li>Discrete Time And Complex Integer Algorithms (CDTA0) |
283 |
|
|
<ul> |
284 |
|
|
<li>Filtering</li> |
285 |
|
|
<li>Integration</li> |
286 |
|
|
<li>Differentiation</li> |
287 |
|
|
</ul> |
288 |
|
|
</li> |
289 |
|
|
<li>Non-Numerical Algorithms And Techniques (CNNU0) |
290 |
|
|
<ul> |
291 |
|
|
<li>Data Swapping</li> |
292 |
|
|
<li>Redundant Data Storage</li> |
293 |
|
|
</ul> |
294 |
|
|
</li> |
295 |
|
|
</ul> |
296 |
|
|
</li> |
297 |
|
|
<li><a href="pac0.pdf">Volume V: Practical, Administrative, Incidental, |
298 |
|
|
And Miscellaneous Topics (VPAC0)</a> |
299 |
|
|
<ul> |
300 |
|
|
<li>Management Of Product Development Materials (CMPD0)</li> |
301 |
|
|
<li>Software Design Methods (SDM0, unpopulated)</li> |
302 |
|
|
<li>Practical Interface And Test Circuits (CPIT0)</li> |
303 |
|
|
<li>The CMM Capability-Maturity Model (unpopulated)</li> |
304 |
|
|
<li>Bad Management And Unpleasant Work Situations (CBMA0)</li> |
305 |
|
|
<li>Products Of Exceptional Functionality (CPXF0) <ul> |
306 |
|
|
<li>Computer Equipment <ul> |
307 |
|
|
<li>Optical Mouse</li> |
308 |
|
|
</ul> |
309 |
|
|
</li> |
310 |
|
|
<li>Office Equipment <ul> |
311 |
|
|
<li>Ibico Binding Machine</li> |
312 |
|
|
</ul> |
313 |
|
|
</li> |
314 |
|
|
</ul> |
315 |
|
|
</li> |
316 |
|
|
<li>Open Research Questions (ORQ0)</li> |
317 |
|
|
</ul> |
318 |
|
|
</li> |
319 |
|
|
<li><a href="isk0.pdf">Volume VI: Insektengericht And Lessons Learned (VISK0)</a><ul> |
320 |
|
|
<li>Interrupt-Related Software Defects And Lessons Learned (CIRD0)</li> |
321 |
|
|
<li>Initialization-Related Software Defects And Lessons Learned (CIND0, |
322 |
|
|
unpopulated)</li> |
323 |
|
|
<li>State-Space-Related Software Defects And Lessons Learned (CSSD0, |
324 |
|
|
unpopulated)</li> |
325 |
|
|
<li>Sleep- And Wakeup-Related Software Defects And Lessons Learned (CSWD0, |
326 |
|
|
unpopulated)</li> |
327 |
|
|
<li>Product Build And Configuration-Related Software Defects And Lessons |
328 |
|
|
Learned (CPBC0)</li> |
329 |
|
|
<li>Uncategorized Software Defects And Lessons Learned (CUCD0)</li> |
330 |
|
|
</ul> |
331 |
|
|
</li> |
332 |
|
|
<li><a href="ijt0.pdf">Volume VII: IjuTools Reference Guide (VIJT0)</a> |
333 |
|
|
<ul> |
334 |
|
|
<li>Tool Set Introduction (CTIN0)</li> |
335 |
|
|
<li>Tcl Command Reference (CTCM0)</li> |
336 |
|
|
<li>Tk Command Reference (CTKM0)</li> |
337 |
|
|
<li>Frequently Asked Questions And Frequently Encountered Problems (CFAQ0)</li> |
338 |
|
|
<li>Version Control Extensions (CVCT0)</li> |
339 |
|
|
<li>File Transformation Extensions (CFTE0)</li> |
340 |
|
|
<li>CRC, Checksum, And Hash Function Extensions (CCCH0)</li> |
341 |
|
|
<li>Random Number Generation Extensions (CRND1)</li> |
342 |
|
|
<li>Long Integer Extensions (CLIE0)</li> |
343 |
|
|
<li>Rational Number Extensions (CRNE0)</li> |
344 |
|
|
<li>Number Theory Extensions (CNTH0)</li> |
345 |
|
|
</ul> |
346 |
|
|
</li> |
347 |
|
|
<li><a href="sma0.pdf">Volume VIII: Solutions Manual (VSMA0)</a> |
348 |
|
|
<ul> |
349 |
|
|
<li>Solutions: CFRY0, Farey Series And Related Topics, (CFRS0)</li> |
350 |
|
|
</ul> |
351 |
|
|
</li> |
352 |
|
|
</ul> |
353 |
|
|
|
354 |
|
|
<p><b>Sections Which Appear In Every Volume (some may be omitted from the <i>Solutions |
355 |
|
|
Manual</i>, VSMA0)</b></p> |
356 |
|
|
<ul> |
357 |
|
|
<li>Title Page (in the "shared" directory)</li> |
358 |
|
|
<li>Preface (in the "shared" directory)</li> |
359 |
|
|
<li>Glossary Of Terms(CGLO0)</li> |
360 |
|
|
<li>Glossary Of Mathematical Notation (CGLO1)</li> |
361 |
|
|
<li>Index (generated for each volume)</li> |
362 |
|
|
</ul> |
363 |
|
|
|
364 |
|
|
<hr> |
365 |
|
|
|
366 |
|
|
<p align="center" style="line-height: 100%; margin-top: -6; margin-bottom: -16"><b><u><font size="1">Version |
367 |
|
|
control information:</font></u></b> |
368 |
|
|
<p align="center" style="line-height: 100%; margin-bottom: -8"><font size="1">$RCSfile: index2.htm,v $</font> |
369 |
|
|
<p align="center" style="line-height: 100%; margin-bottom: -8"><font size="1">$Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/dtaipubs/esrgubka/index2.htm,v $</font> |
370 |
|
|
<p align="center" style="line-height: 100%; margin-bottom: -8"><font size="1">$Revision: 1.8 $</font> |
371 |
|
|
<p align="center" style="line-height: 100%; margin-bottom: -8"><font size="1">$Author: dtashley $</font> |
372 |
|
|
<p align="center" style="line-height: 100%; margin-bottom: 0"><font size="1">$Date: 2002/11/21 18:02:49 $</font> |
373 |
|
|
|
374 |
|
|
<hr noshade size="10" color="#000000"> |
375 |
|
|
</body> |
376 |
|
|
</html> |