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...
Thanks