|For novel ideas about building embedded systems (both hardware and firmware), join the 27,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. It takes just a few seconds (just enter your email, which is shared with absolutely no one) to subscribe.
Books for Embedded System Developers
Here's links to various reviews of books useful to embedded system developers. They cover subjects from firmware development to hardware. First, one shameless plug - I've written a half dozen embedded books myself. More here.
|Suggestion: Subscribe to my free newsletter which often has reviews of books about embedded systems.|
Agile: The Good, the Hype and the Ugly, Bertrand Meyer - This won't make many agile enthusiats happy.
Agile Estimating and Planning, Mike Cohn - Valuable for anyone building software.
ARM Assembly Language, William Hohl and Christopher Hinds - A pretty decent intro to this subject.
Balancing Agility and Discipline, Barry Boehm and Richard Turner - Agile or more disciplined?
Bebop to the Boolean Boogie, Clive Maxfield - A fun and interesting digital design book.
Better Embedded System Software, Phil Koopman - An essential introduction to all areas of building embedded systems.
Building Parallel, Embedded, and Real-Time Applications with Ada, John McCormick, Frank SInghoff and Jerome Hugues - One of the best books on using Ada effectively in building embedded systems.
C For Everyone, Richard Man and CJ Willrich - an excellent intro to embedded C, the language and its use.
Computer Approximations - The best book on approximations ever. Hart's classic book is a "must have"... if you can find it.
Debugging, David Agans- A well written, quick read packed with war stories. Every new grad should read this.
Design Recipes for FPGAs, Peter Wilson - A good selection of VHDL and Verilog design patterns.
Digital Apollo, David Mindell - An exploration of the relationship between human and computers.
Embedded Ethernet and Internet Complete, Jan Axelson - A good "how to" description of building internet-aware applications.
Embedded Linux Primer, Christopher Hallinan - A Practical Real World Approach- A book about putting the OS into firmware.
Embedded Systems Building Blocks, Jean LaBrosse - If you believe in reuse, well, here's stuff to reuse! Also has his firmware standard.
Embedded Systems Design, Arnold Berger - A great intro to the embedded world, with a focus on tools. Also has good hints on selecting processors.
Embedded Systems Fundamentals with ARM Cortex-M based Microcontrollers - An excellent intro to the world of embedded work. Targeted at engineering students, it covers hardware and software.
Embedded Systems Security, David and Mike Kleidermacher - Practical methods for safe and secure software systems development.
An Embedded Software Primer, David Simon - One of the best introductory books to embedded development around.
Embedded Systems Design using the Rabbit 3000 Microprocessor, Kamal Hyder and Bob Perrin. - Required reading for users of the R3000, and a pretty darn good introduction to the entire realm of embedded systems development as well.
Extreme Programming Explained, Kent Beck - XP is garnering waves of adherents. A very good intro to the ideas and practices.
Extreme Programming Refactored, Matt Stephens and Doug Rosenberg - An infuriating but enlightening expose of eXtreme Programming.
Feature-Driven Development, A Practical Guide to, Stephen Palmer and John Felsing - A development methodology that is much more suited to most embedded efforts. Highly recommended.
The GE Transistor Manual. Everything about transistors, in the 1960s at least. A fascinating and fun book for EE history buffs.
Guidelines for the Use of the C Language in Vehicle Based Software, by MISRA - This is a list of dos and don't dos for writing reliable C code. Not a book per se, but a hundred page list of rules.
Ham Radio for Dummies, by Ward Silver - A great introduction for the newbies to the fascinating world of ham radio.
Hands-on XBEE Lab Manual, Jonathan Titus - Experiments that teach you XBEE wireless communications.
High Integrity Software, John Barnes - A fascinating description of the SPARK programming language.
High Speed Digital Design, Howard Johnson and Martin Graham - The best book around about high-speed issues.
How Computers Do Math, Clive "Max" Maxfield and Alvin Brown - All about the essential workings of computers.
If I Only Changed the Software, Why is the Phone on Fire, Lisa Simone - A fast paced book, interweaving software and hardware.
Introduction to the Personal Software Process, Watts Humphrey - All about the Personal Software Process.
MATH Toolkit for Real-Time Programming, Jack Crenshaw - If you're building approximations, or trying to learn about fixed-point math, this is your bible.
MicroC/OS-II, The Real Time Kernel, Jean Labrosse - The best book on real time operating systems.
MSP430 Microcontroller Basics, John Davies - A great book for novices, as well as experienced developers.
uC/OS-III, The Real-Time Kernel, Jean Labrosse - An entirely rewritten version of a classic.
Peer Reviews in Software, Karl Wiegers - The most readable book on code inspections.
Peopleware, DeMarco and Lister - Perhaps one of the most important books written about being more productive in a software environment.
Principles of Software Engineering Management, Tom Gilb - An interesting book that's essential to anyone planning to manage a software project.
Programming Embedded Systems in C and C++, Michael Barr - A very good intro book, with a focus on the 186 processor.
Real-Time Embedded Multithreading Using ThreadX and MIPS, Edward Lamie - A very organized book with lots of well written code that lends to an excellent presentation of the subject.
Real-Time Embedded Systems, Xiaocong Fan - A very complete and heavy read with lots of worthwhile info..
Real-Time UML Workshop for Embedded Systems, Bruce Powel Douglass - A precise and engaging, humorous at times book, yet clearly focused on getting complex ideas across.
Serial Port Complete, Jan Axelson - A very complete reference to serial communications.
Software Inspection, Tom Gilb and Dorothy Graham - THE book on code inspections.
Software Inspection - An Industry Best Practice, IEEE Collection - A good series of papers on software inspections.
Statistics in a Nutshell, Paul A Watters and Sarah Boslaugh - an ideal self study book, one of the best.
TCP/IP Lean, Jeremy Bentham - An intro to TCP/IP.
Test Driven Development, by Kent Beck - Kent Beck's view of building the system by producing tests first - Flawed but interesting.
Test Driven Development for Embedded C, James Grenning - hands down, the best book written on the subject.
The Art of Designing Embedded Systems, Jack Ganssle - How to go about building an embedded system, from process issues to tech ideas.
The Art of Programming Embedded Systems, Jack Ganssle - This book is now all but out of print.
The Art of Readable Code, Dustin Boswell and Trevor Foucher - A gem with solid advice in this quick read.
The Definitive Guide to the ARM Cortex-M3, Joseph Yiu. A good intro to the very popular Cortex-M3.
The Definitive Guide to the ARM Cortex-M0 and Cortex-M0+, Joseph Yiu. An excellent book about the Cortex-M0 and M0+.
The Digital I/O Handbook, Jon Titus and Tom O'Hanlan. A great introduction to a tough subject.
The Elements of Style, William Strunk and E. B. White - If your comments are lousy, so's your code. Here's a short classic about writing decent comments and prose.
The Embedded Systems Dictionary, by Jack Ganssle and Michael Barr - The only single-source of definitions of words used in our industry.
The Essential Guide to Digital Signal Processing, Richard Lyons and D. Lee Fugal - A book for the vaguely-techie who needs just a bit more that a little familiarity with the subject.
The Existential Pleasures of Engineering, Samuel Florman - If you enjoy the philosophy of engineering, you will like this book.
Understanding and UsingC Pointers, Richard Reese - A surprisingly worthwhile new book on using C pointers
USB Mass Storage, by Jan Axelson. The definitive guide to building memory systems using USB.
When Computers Were Human, David Alan Grier - Computers used to be flesh and blood.
Writing in Software Development, by Al Stavely. How to create great docs with your code.