The Firmware Handbook


  • Jack Ganssle, Founder and Principal Consultant, The Ganssle Group, Baltimore,MD, USA; Technical editor and columnist for Embedded Systems Programming magazine

This handbook provides a comprehensive reference for firmware developers looking to increase their skills and productivity. It addresses each critical step of the development process in detail, including how to optimize hardware design for better firmware. Topics covered include real-time issues, interrupts and ISRs, memory management (including Flash memory), handling both digital and analog peripherals, communications interfacing, math subroutines, error handling, design tools, and troubleshooting and debugging. The companion CD-ROM includes all the code used in the design examples and a searchable ebook version of the text.This book is not for the beginner, but rather is an in-depth, comprehensive one-volume reference that addresses all the major issues in firmware design and development, including the pertinent hardware issues.
View full description


Embedded systems developers, programmers and designers, electronics engineers and technicians.


Book information

  • Published: March 2004
  • Imprint: NEWNES
  • ISBN: 978-0-7506-7606-9


This handbook will be the standard reference in the field, it provides a much-needed comprehensive information source for firmware developers looking to increase their skills and productivity. - EDN Magazine This book is edited by Jack Ganssle and includes contributions from a wide range of writters, making this book very broadly based. Any software graduate reading this book would be taking a step in the right direction for learning about software issues that arise in developing production level embedded software. More experienced engineers may find a lot of the material familiar, though I came across a few points that I had not seen elsewhere. The first thing I noticed was that unlike most embedded systems books, this one does not emphasise a particular processor, or RTOS, or technology. This is probably a good thing if you are looking for a broad embedded education, rather than details of one specific technology. The book also has more of a software emphasis than most books on this topic. -

Table of Contents

PrefaceWhat’s on the CD-Rom?Section I: Basic HardwareIntroduction Chapter 1: Basic Electronics Chapter 2: Logic Circuits Chapter 3: Hardware Design TipsSection II: DesignsIntroduction Chapter 4: Tools and Methods for Improving Code Quality Chapter 5: Tips to Improve Functions Chapter 6: Evolutionary Development Chapter 7: Embedded State Machine Implementation Chapter 8: Hierarchical State Machiens Chapter 9: Developing Safety Critical Applications Chapter 10: Installing and Using a Version Control SystemSection III: MathIntroduction Chapter 11: An Introduction to Machine Calculations Chapter 12: Floating Point Approximations Chapter 13: Math Functions Chapter 14: IEEE 754 Floating Point NumbersSection IV: Real-TimeIntroduction Chapter 15: Real-Time Kernels Chapter 16: Reentrancy Chapter 17: Interrupt Latency Chapter 18: Understanding Your C Compiler: How to Minimize Code Size Chapter 19: Optimizing C and C++ Code Chapter 20: Real-Time AssertsSection V: Errors and ChangesIntroduction Chapter 21: Implementing Downloadable Firmware with Flash Memory Chapter 22: Memory Diagnostics Chapter 23: Nonvolatile Memory Chapter 24: Proactive Debugging Chapter 25: Exception Handling in C++ Chapter 26: Building a Great WatchdogAppendix A: ASCII TableAppendix B: Byte Alignment and OrderingIndex