I just finished Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development, by Gary Stringham. Gary sent me a review copy of the book, btw, but I get no money for reading or reviewing it. Though if you buy the book via my Amazon link, I get a bit of cash.
Anyway – the book is very good. Gary says, “This book is written by a firmware engineer but is directed primarily to hardware engineers.” I’ve been a hardware engineer and a firmware engineer, and I think both groups should read this book.
Gary has been in the trenches of firmware/hardware co-design for 20+ years and this book shows it. The book gives 300+ “Best Practices” which are actually usable and practical – a departure from many software or hardware design books. Gary talks about low-level concepts like interrupts, register definitions, and debugging, as well as higher level concepts like planning, documentation, and block partitioning across multiple product generations.
Summary: You should read this book if you’re a hardware or firmware engineer.
This is one of the books that I’ll probably revisit a couple of times a year to refresh myself on A Right Way to do hardware/firmware co-design.