What is this? plz give me some kinda link where i can gain some information(basics). I have searched through google but nothing seems to be understandable. I'm asking this because i've heard a lot of it in my college. I dont want to do any course in it but a small knowledge regarding it will be helpful.
Embedded system - Wikipedia, the free encyclopedia
Embedded C is used to program embedded systems.
Most Embedded systems have very primitive hardware (like 256 bytes RAM). Embedded programming languages are modified to work with such limitations.
Actually, I would say that there is no such thing as "Embedded C" - there is a form of C++ that is called "Embedded C++".
There are embedded systems, and there are C compilers FOR embedded systems, and these compilers and libraries that come with the compiler MAY have things that differ from standard C. But it's there is no standard for those changes.
Embedded devices with 256 byte of RAM are probably not suitable for programming with C. If it's got a few kilobytes, yes, quite plausible. But most C programming for embedded devices is done on machines with many kilobytes up to several megabytes. A mobile phone is certainly an embedded system, and mobile phones have about the same amount of memory as desktop computers did 5-10 years ago - current mobile phones (at the higher end) will have a few dozen megabytes of RAM, and similar amounts of ROM (instead of hard-disk).
Simpler forms of washing machines will have tiny processors in them, probably just a 8-bit processor and a few kilobytes of RAM + ROM. The program is most likely written in Assembler rather than C.
And in between these things come microwave ovens, (modern) land-line phones, computer printers, tills/cash-registers, telephone switches, ATM's, flight control systems in aeroplanes, car navigation systems, Digital TV Recorder and all sorts of other things that come with a computer built into the system.
Programming for a larger embedded system (e.g. one that uses Linux or Windows CE) will be pretty much the same as programming for a PC running the same/similar OS. Programming for a small embedded device often requires that you think about how much memory the code+data uses, how long it will execute.
Some embedded systems are "real-time" in such a way that missing a deadline of an interrupt that happens say every 4ms by more than some dozen microseconds will make the system fail to do what it should in such a way that customers notice. In a PC, you can usually hold off taking an interrupt for several milliseconds, and no one will notice. There are classificiations within real-time systems "Hard real-time" and "soft real-time". Soft realtime would be something like a sat-nav system, where if it takes a fraction longer to draw the screen, nothing bad will happen. Missing a "change to the new frequency" interrupt in a mobile phone system will definitely cause the call to be lost.