February 2023

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728    

Style Credit

Expand Cut Tags

No cut tags
Monday, August 22nd, 2005 01:58 pm
I don't talk about work details much, 'cause either they're so minor they're meaningless, or they're something my company wants to talk about before I talk about it. But every so often there's a tidbit I can share for my geeky friends.

You know you're a real Embedded Systems Programmer when...

...you find and fix a bug that involves changing this code
var--;
to this:
disable_interrupts();
var--;
reenable_interrupts();

Extra bonus geek points if it doesn't happen reliably, doesn't happen in the debugger, and/or takes a long time to reproduce. More extra bonus geek points for not having been the one to put that bug in there in the first place.

That was late last week, and I was pretty proud of it, actually.
Tuesday, August 23rd, 2005 05:56 pm (UTC)
I haven't been programming at this level (very low level) for long enough to have hundreds of these under my belt. Each bug still teaches me something, if only some new trick for how to find 'em.
Tuesday, August 23rd, 2005 06:03 pm (UTC)
I enjoyed the frustration of some of those things myself. :) I still tell the story of the prototype handheld software that worked in the little prototypes in California but wouldn't boot in the prototypes in New Jersey, a sordid tale of an interrupt handler using a byte of memory before it'd been intialized, and an ASIC design that put the LCD contrast control and a "completely reorganize the memory mapping of the device" bits into the same "convienent" write-only control byte. :)
Tuesday, August 23rd, 2005 06:55 pm (UTC)
They're frustrating as anything when you're sleuthing, and then the whole thing always turns into a well-loved story the instant you actually find the bug!