In an embedded system, firmware is the software that directly interfaces with the microcontroller, controlling the systems function. The major forces driving the embedded firmware development process today are reduced development times, increased complexity, and the need to handle multiple tasks simultaneously. These forces translate into strenuous design requirements for embedded engineers and programmers. Many low-level embedded microcontroller designs have insufficient memory and/or architectural limitations that make the use of a real-time operating system impractical. The techniques presented in this book allow the design of robust multitasking firmware through the use of interleaved state machines. This book presents a complete overview of multitasking terminology and basic concepts. Practical criteria for task selection and state machine design are also discussed.
Designing multitasking firmware is arduous, complex and fraught with potential for errors, and there is no one, standard way to do it. This book will present a complete and well-organized design approach with examples and sample source code that designers can follow.
* Covers every aspect of design from the system level to the component level, including system timing, communicating with the hardware, integration and testing.
* Accompanying CD-ROM contains the source code for the text examples and other useful design tools.
About the Author
Keith E. Curtis earned a BSEE from Montana State University. Following graduation, he was employed by Tele-Tech Corporation as a design and project engineer, and also began consulting part-time as an embedded engineer. He was then employed by Bally Gaming in Las Vegas as an engineer and later the electronics engineering manager, working for various Nevada gaming companies in both design and management. In 2000 he began work as a Principal Application Engineer for Microchip, where he is still employed.
He has written a number of articles and regularly gives a popular course on multitasking firmware design at the Embedded Systems Conference.