@Sranje... "I thought than anything embedded has no keyboard (or its equivalent)"
In most cases this is true, anything with a keyboard is usually a computer in its own right. But what about (for example) the old Blackberry? it is pretty well certainly embedded, as it's a phone, but it has a keyboard, and not just a numeric one.
I think the functionality is more important than what is used for I/O??
@David I see your point. TI has embedded analog in some of its chips. Micro- controllers are microprocessers with embedded memory and as others have said here an embedded system is a system with some sort of computer embedded in it. I guess the debate revolves around at what point does the functionality of the computer go beyond just the operating requirements of the system and make it a system with a computer instead of an emebedded computer system.
I always thought of a Embedded System as "a computational system dedicated to a fixed set of functions", where "computational system" is used to separate it from machines (electronic or mechanical), but I am also findind it harder and harder to sustain, as lately am thinking more and more of state machines and programmable logic as controllers for simple functions, due to the evolution level of these. It seems everybody think that a fan or oven must have a 32-bit processor running Linux... Maybe you have to connect your oven to an App Store and run Candy Crush on it.
Seems like the discussion about the definition of hardware and software, where, up to now, the best definition I found was "software is what you blame, hardware is what you kick", but this is also blurring...
That's an excellent point. The embedded computer provides (most of) the functionality for the product, but the product manufacturer would be perfectly happy to use something cheaper to get that functionality. So the fact that the product contains a computer is an implementation detail, not a requirement.
mhrackin AKA "s/n 1" suggested: "embedded systems run firmware, not software."
First, I'm very impressed with 709 and PDP-1.
Now regarding firmware: that's a reasonable distinction for some kinds of embedded systems, such as a mouse MCU which runs a program that will never be replaced. However, "firmware" [*] now includes the contents of a PC's boot ROM [**], and we all agree PCs usually aren't embedded systems. Plus, a complex embedded system such as a data communications box generally has both a boot ROM (firmware) and a download image (somewhere between firmware and software). Since it generally takes quite a few releases before the download image of a complex embedded system gets stable enough to call it "firmware", maybe we should call it "Jelloware".
[*] In my experience, the word "firmware" never really caught on and as such Humpty Dumpty's scornful use of words applies.
[**] Yes, I realize that a PC's boot ROM is usually Flash nowadays. Personally, I like the term "read-mostly memory" (RMM) for non-volatile storage that is writable, but it's so slow that you don't want to do it very often. The term "RMM" never caught on either :-)
A Book For All Reasons Bernard Cole1 Comment Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...