Paperback: 304 pages
Publisher: Newnes (April 5, 2007)
Product Dimensions: 7.5 x 0.7 x 9.2 inches
Shipping Weight: 1.5 pounds (View shipping rates and policies)
Average Customer Review: 4.6 out of 5 stars See all reviews (10 customer reviews)
Best Sellers Rank: #1,852,697 in Books (See Top 100 in Books) #84 in Books > Computers & Technology > Programming > Languages & Tools > Debugging #202 in Books > Computers & Technology > Hardware & DIY > Microprocessors & System Design > Embedded Systems #211 in Books > Computers & Technology > Hardware & DIY > Microprocessors & System Design > Microprocessor Design
Embedded development isn't like other kinds of programming. Tight memory restrictions (a few dozen to a few hundred bytes for stack and variables) are the least of it. Really, it's the intimate integration of hardware and software that makes the difference. For example, I once made software changes that got the system 3 dB closer to the FCC RF emissions standard - that kind of thing. Add in real-time constraints, a user interface possibly consisting of one LED and a pushbutton, and little to no OS, and it becomes a whole new world.Lots of your old debugging techniques just won't work in that world. Some will, but you'll need lots of new ones, too, and not just the ICE or logic analyzer. That's where this book comes in. Nine chapters present different debugging scenarios, fictional but based on real-world experience. In each Simone walks the reader through the problem, the debug sessions, some source code, and an eventual solution. As always, your brain is your best debugging tool, and Simone offers plenty of ways to use it many programmers won't have seen before.For all the good in this book, I'm really not nuts about it. Each debug session has been scripted into a brief play between the four characters introduced. This mechanism allows Simone to walk through the debug reasoning in a realistic way and also lets her expose some of the human issues in system development. Still, it's a bit too "user friendly" for me - a notoriously unfriendly user. All that he-said/she-said interaction comes across as fluff; I prefer a higher density of technical content, others will prefer this book's chatty, conversational style.That's just me, though.
This is not a great book; it did nothing to change the way I think and I don't remember seeing anything that I had not seen (or done) before. However, it is a pretty nice introduction to the subtle skill of debugging.Debugging is a difficult thing to teach. In fact, it seems to me to be more difficult to teach than to learn: I have never seen an attempt to teach debugging succeed on any greater level than a list of tips and rules of thumb. On the other hand, the most successful debuggers, and the most effective debugging efforts, have completely transcended any tips or rules. The person doing the debugging coupled a deep (if not specific) understanding of the system or at least technology in question to arrive on the trail of the problem almost mystically.If I Only Changed the Software... does not try to present a grand theory of debugging, and it does have a list of tips, but it does more to teach the feeling of debugging than any other work I've read. Perhaps the fictional, narrative-based scheme can teach at least what the process of debugging looks like.One nice (although some may feel otherwise) feature of the book is the use of, well, less than perfect code. Certainly, when I was less experienced than I am now I would have found the code a ghastly horror and a crime against nature. In fact, I would probably have been right. On the other hand, having seen more of other people's code, I now see the examples in the book as pretty typical.The big benefit of the code is that it demonstrates a bug may not be the bug. For example, the function periodic_timer in one chapter appears to be called every ten milliseconds. A bug with the code I immediately spotted involves a comment about "1000 msec"; that code is actually executed every 100 milliseconds.
If I Only Changed the Software, Why is the Phone on Fire?: Embedded Debugging Methods Revealed: Technical Mysteries for Engineers Echo: Get To Know Alexa - An Echo User Guide ( Echo, Fire Phone, Kindle, Fire Stick, Fire Tablet) Echo: What to Know About Your Echo, How To Use It & Get the Most Out Of Your Echo *FREE BONUS INCLUDED* ( Echo, Fire Phone, ... Fire Stick, Fire Tablet Book 1) Fire Stick: The Ultimate Fire TV Stick User Guide - Start Using Fire TV Stick Like A Pro! (Streaming Devices, How To Use Fire Stick, Fire TV Stick User Guide) 7" Fire & Fire HD User Guide: From Beginner To Expert Guide - Everything You Need to Know About 's New Fire Tablets! ( 7" Fire, Fire HD User Guide) Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers (Embedded Technology) DSP Software Development Techniques for Embedded and Real-Time Systems (Embedded Technology) Design Patterns for Embedded Systems in C: An Embedded Software Engineering Toolkit Fire Stick: The Ultimate Guide With Instructions To Unlock The True Potential Of Your Fire Stick (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick) Fire Stick: The Complete User Manual To Starting With And Using Fire TV Stick, Plus Little-Known Tips And Tricks! (Streaming, How To Use Fire Stick, Fire TV Stick User Guide) Fire Stick: How To Unlock The True Potential Of Your Fire Stick - Plus Amazing Tips And Tricks! (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick) Fire Stick: For Beginners! - Learn How To Start Using Your Fire Stick Now! (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick) Fire TV User Guide: Watch TV Shows, Movies, Music, Apps, Games And Learn 7 Amazing Things About Fire TV! ( Fire TV User Guide, Streaming, Fire TV Manual) Fire Stick: Fire TV Stick Made Easy - The Ultimate Step-By-Step User Guide To Mastering Your Fire Stick In Less Than A Day! (How To Use ... Fire TV Stick User Guide, Streaming) Fire Stick: How to Start Using Fire Stick Like A Pro! - The Ultimate Guide to Master Your Fire Stick In Just 30 Minutes! (Streaming Devices, ... TV Stick User Guide, How To Use Fire Stick) Fire Stick: The Ultimate Fire Stick User Guide - Learn How To Start Using Fire Stick, Plus Little-Known Tips And Tricks! (Streaming ... TV Stick User Guide, How To Use Fire Stick) Fire Stick: The Complete Beginners Guide - Learn How To Setup And Master Your Fire Stick Today! (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick) Fire Stick: The Ultimate Fire Stick User Guide To TV, Movies, Apps, Games & Much More! Plus Advanced Tips And Tricks! (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick) Fire Stick: The Complete 2016 User Guide And Manual - How To Easily Install Android Apps On Your Fire Stick (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick) Fire Stick: The Complete Fire Stick User Guide - Learn How To Install Apps, Games, Watch TV And Movies! (Streaming Devices, Fire TV Stick User Guide, How To Use Fire Stick)