NOTICE – The Boston and San Jose Embedded Seminar on April 26 and May 3 are booking fast – see http://www.ganssle.com for more info.

Newbie Books

“C Programming for Embedded Systems” by Kirk Zurell was published a few weeks ago (ISBN 1-929629-04-4, R&D Publications, $29.95). It’s a general introduction to working in C for the complete embedded novice. This tome will not teach you C, but will show someone with limited C experience how to build an embedded system.

Though Zurell makes no attempt to teach C, he wisely does delve into data types and variables, showing how types have real physical implementations (ROM, RAM, etc) and the implications of each.

The book’s focus is entirely on small 8 bit systems. Zurell works for Byte Craft, a Canadian compiler company. Not surprisingly, the book addresses processors Byte Craft supports, like the 6805, 6808 and PIC. Also not surprisingly, examples revolve around Byte Craft’s tools.

Few 8 bit compilers are really ANSI-compliant; the quirks of these small chips mandate various extensions to the language to make C possible and desirable. So some of the keywords used in the book’s examples are Byte Craft-specific and non-portable to other compilers. This does not in any way limit the usefulness of the code snippets or prose discussion.

It comes with a CD that includes a complete (Byte Craft) development system for the 6805.

I’m always looking for books for fledgling embedded systems engineers. Fact is, it’s tough to make the transition from general programmer to embedded developer. This is a good introductory work that will give potential engineers a basic understanding of many of the issues in using C in an embedded app. Working with Byte Craft tools? If so, this is an essential volume for your new engineers.

Another good book for newbies is Michael Barr’s “Programming Embedded Systems in C and C++” (ISBN 1-56592-354-5, O’Reilly & Associates 1999, $29.95). Barr’s book targets more general environments than Zurell’s. C++, after all, is hardly 8 bit friendly!

If you’re working in the 16/32 bit world, especially, Barr’s book is a handy way to get new folks up to speed. He does a good job of covering uniquely embedded issues like generating startup code. His examples use the 188/186 processor, which is a much more ideal C machine than many 8 bitters. But, as an embedded chip, it carries all of the baggage we’ve got to deal with in building firmware in a high level language, like talking to peripherals.

Barr covers more complex memory issues, such as talking to Flash and using DMA.

Each of these works are good references for folks trying to figure out how to use C in an embedded application. I’d pick Barr’s “Programming Embedded Systems in C and C++” if the target environment is 16 bits or bigger, and Zurell’s “C Programming for Embedded Systems” for 8 bit systems.

Embedded Seminars in Boston and San Jose

I’ll present the seminar "The Best Ideas for Developing Better Firmware Faster” in Boston on April 26 and San Jose on May 3.

The focus is uniquely on embedded systems. I'll talk about ways to link the hardware and software, to identify and stamp out bugs, to manage risk, and to meet impossible deadlines. If you’re interested reserve early as these seminars fill completely.

For more information check out http://www.ganssle.com or email mailto:info@ganssle.com.

A lot of folks have asked me to bring this seminar to their company. Email me at mailto:jack@ganssle.com if you’re interested.

Thought for the Week

Dejan Durdenic in Croatia sent this:You know you're working in silicon valley when... * you stop asking how much things cost but, ask "How long will it take?" * Two-thirds of the people you know are from Boston or New York, but you are living in PST. * you know vast differences difference between Thai, Vietnamese, Chinese, Japanese, Cantonese, and Korean food. * Your home computer contains mostly hardware/software that is not on the consumer market yet. * you make $100,000 a year, yet still can't find a place to live. * you go to "The City" on weekends but don't live there because you like your car. * your commute time is 45 minutes and you live 8 miles away from work. * you think that "I'm going to Fry's" is an acceptable excuse to leave the office for a while, and your boss does too. * you lost your alarm clock. You'll get to work when you get there. * you go to an industrial-heavy-metal bar and see two guys get into a fight over what flavor of unix is better. * you own more than 10 articles of clothing that have hardware/software companies printed on them. Bonus for embroidered stuff. * you know where Woz Way, Disk Drive, Infinite Loop, Resistor Ave, and Floppy Dr are located. You've been to meetings on every street. * you know where Woz is. * you know WHAT Woz is. * you know 280North runs west, and 680N runs East. * you see a billboard that says "FGPA2ASIC" and aren't fazed * when you need the updated Diamond Monster 3D drivers, you just walk across the street. * you have more bandwidth in your apartment or condo than most major universities, but you still want wireless Ethernet. * you have to hire security to keep the panhandlers off your terrace (Oakland/Berkeley). * none of the people you work with are bible thumpers. * you scan yard sales for back issues of "Dr. Dobbs." * your favorite computer reseller speaks only Cantonese. * your workplace vending machines dispense "100% natural twig-bars" right next to Jolt cola and Instant Espresso mix. * No one brings radios into work - they just use RealAudio and listen to the dj.com, rebelradio.com, or other out of state stations.

Do you need to eliminate bugs in your firmware? Shorten schedules? My one-day Better Firmware Faster seminar will teach your team how to operate at a world-class level, producing code with far fewer bugs in less time. It's fast-paced, fun, and covers the unique issues faced by embedded developers. Here's information about how this class, taught at your facility, will measurably improve your team's effectiveness.