Ways Of Reading
-
This e-publication is accessible to the full extent that the file format and types of content allow, on a specific reading device, by default, without necessarily including any additions such as textual descriptions of images or enhanced navigation.
Navigation
-
The contents of the PDF have been tagged to permit access by assistive technologies as per PDF-UA-1 standard.
-
Page breaks included from the original print source
Additional Accessibility Information
-
All (or substantially all) textual matter is arranged in a single logical reading order (including text that is visually presented as separate from the main text flow, e.g., in boxouts, captions, tables, footnotes, endnotes, citations, etc.). Non-textual content is also linked from within this logical reading order. (Purely decorative non-text content can be ignored).
-
The language of the text has been specified (e.g., via the HTML or XML lang attribute) to optimise text-to-speech (and other alternative renderings), both at the whole document level and, where appropriate, for individual words, phrases or passages in a different language.
Conformance
-
The publication was certified on 20250728
-
Accessibility addendum
-
For detailed accessibility information, see Elsevier’s website at https://www.elsevier.com/about/accessibility
-
For queries regarding accessibility information, contact [email protected]
Note
-
This product relies on 3rd party tooling which may impact the accessibility features visible in inspection copies. All accessibility features mentioned would be present in the purchased version of the title.
Description
The Firmware 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.
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.
About the author
By Jack Ganssle, Founder and Principal Consultant, The Ganssle Group, Baltimore,MD, USA; Technical editor and columnist for Embedded Systems Programming magazine
Preface
Section I: Basic Hardware
Introduction
Chapter 1: Basic Electronics
Chapter 2: Logic Circuits
Chapter 3: Hardware Design Tips
Section II: Designs
Introduction
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 System
Section III: Math
Introduction
Chapter 11: An Introduction to Machine Calculations
Chapter 12: Floating Point Approximations
Chapter 13: Math Functions
Chapter 14: IEEE 754 Floating Point Numbers
Section IV: Real-Time
Introduction
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 Asserts
Section V: Errors and Changes
Introduction
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 Watchdog
Appendix A: ASCII Table
Appendix B: Byte Alignment and Ordering
Index
Title Reviews
"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."—Panelsoft.com