I've just finished a C programming course and want to change my job in the automotive trade to a programmer for a motorsport company. Is embedded C a language in it's own right or is it just a continuation of the C language and does anyone know any good books to learn it from
Thanx guys(and gals)
In most respects, embedded C is like regular C
But there are some differences
1. embedded processors can be short on processor power and/or memory, so you need to think a bit more carefully about how you implement some things.
2. embedded systems have
- no operating system at all
- a minimal operating system (eg. your own)
- a real time commercial operating system (eg. VxWorks)
The compilers usually run on some desktop machine (usually windows or some unix flavour), and they produce code which runs on the embedded processor. These are called cross-compilers
Contrast this with say VC++ which compiles and runs code on the same machine.
Some of the better cross-compilers have a range of tools - such as debuggers and emulators.
The software development environment is much more rigourous - you're not going to be able to download a patch to fix some problem, if the code is burnt into a ROM, and buried inside say a bar-code scanner. You'd better make sure its right before it gets that far.
For a book list, enter "embedded" at this search prompt
For more general reading, perhaps
I'm currently working in automotive and we use C a lot, ANSI C.
Like Salem wrote, programming embedded systems comes up with a number of constraints and problem. And therefore programming embedded systems requires a different approach than for example Windows programming. So I think that embedded C is more a way of programming than it is a "dialect" of C.
Programming Embedded Systems in C and C++
1st Edition January 1999
A link to bookreviews: