Books recomendation for embedded programmer.

We have at work a student doing his internship at this moment (Undergraduate in programming / ICT with a good knowledge of hardware)

We've got this student working on simple embedded software on different targets (LPC2106, Rabbit, PIC's), altough the code he is writting is working, he does have problems in applying basic embedded / 'real-time' concepts.

He has dificulties implementing simple assigments as: 'Parse an incomming string on the RS232, blink a LED every 500mS while polling 2 switches'. It looks like he is implementing these assigments in a very sequential way.

I'm convinced that this student has got the intelectual capacity and motivation to become a good programmer , but i feel that he is missing the basic concepts of 'real time' embedded programing.

Anyone some pointers to books that explain basic concepts as blocking and non-blocking code, preemptive and cooperative multitasking, message queues, state-machines.

I'm looking for some literature on the basic concepts, preferable with examples in C but without going to much into detail on how commercial RTOS works etc...


Reply to
Loading thread data ...

This is a basic book here free for the downloading. "First Steps with Embedded Systems"

formatting link


-- Walter Banks Byte Craft Limited

Reply to
Walter Banks

Jack Ganssle's "The Art of Designing Embedded Systems"

and/or Jack Ganssle's "The Firmware Handbook: Embedded Technology"

and/or Front Panel: niall Murphy's "Designing Software for Embedded User Interfaces"

Not one I have read myself but, "Programming Embedded Systems" by Michael Barr and Anthony Massa might also be useful.

Paul E. Bennett ....................
 Click to see the full signature
Reply to
Paul E. Bennett

Jean LaBrosse's book "MicroC/OS-II: The Real-Time Kernel" includes considerable discussion of these topics and is well written; it includes example code to illustrate topics such as you have specified, with versions to run as tasks under the o/s and independently as monolithic code (no o/s).



Reply to

Burns and Wellings, "Real Time Systems and their Programming Languages". Disclaimer - I've never actually owned the book; I was taught by them from the original notes that became it, 20-ish years ago ;)

That gives a lot of the classical RT programming constructs.

Sutter's "Embedded Systems Firmware Demystified" might be good, it's got loads of examples in it, although I've never tried it on a novice ;)

A *good* computer architecture book - Hennessy & Patterson - is probably a must-read too.

The way to learn C is by writing programs, with Harbison & Steele as a fallback ;)


-- "how many clever men have called the sun a fool?"
Reply to
Pete Fenelon

I recommend "An Embedded Software Primer" by David E. Simon. I give a copy to all new graduate embedded software engineers. Chapter titles are:

  1. A First Look at Embedded Systems
  2. Hardware Fundamentals for th Softwaer Engineer
  3. Advanced hardware Fundamentals
  4. Interrupts
  5. Survey of Software Architectures
  6. Indroduction to Real-Time Operating Systems
  7. More Operating System Services
  8. Basic Design Using a Real-Time Operating System
  9. Embedded Software Development Tools
  10. Debugging Techniques
  11. An Example System


Reply to
Ed Wegner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.