Acknowledgments
Chapter 1: Introduction
Chapter 2: The Project
2.1 Partitioning
2.2 Scheduling
Chapter 3: The Code
3.1 Firmware Standards
3.2 Code Inspections
3.3 Design by Contract ?
3.4 Other Ways to Insure Quality Code
3.5 Encapsulation
Chapter 4: Real Time
4.1 Real Time Means Right Now
4.2 Reentrancy
4.3 eXtreme Instrumenting
4.4 Floating Point Approximations
Chapter 5: The Real World
5.1 Electromagnetics for Firmware People
5.2 Debouncing
Chapter 6: Disciplined Development
6.1 Disciplined Development
6.2 The Seven Step Plan
6.3 The Postmortem
Appendix A: A Firmware Standard
A.1 Scope
A.2 Projects
A.3 Modules
A.4 Variables
A.5 Functions
A.6 Interrupt Service Routines
A.7 Comments
A.8 Coding Conventions
Appendix B: A Simple Drawing System
B.1 Scope
B.2 Drawings and Drawing Storage
B.3 Master Drawing Book
B.4 Confi guration Drawings
B.5 Bills of Materials
B.6 ROMs and PALs
B.7 ROM and PAL File Names
B.8 Engineering Change Orders
B.9 Responsibilities
Appendix C: A Boss ’s Guide to Process Improvement
C.1 Version Control
C.2 Firmware Standards
C.3 Code Inspections
C.4 Chuck Bad Code
C.5 Tools
C.6 Peopleware
C.7 Other Tidbits
Index