3 ms·
The line on "embedded" has blurred. I'll wax on for a moment for folks who aren't clear on the distinction that's grown up. In the most long-lived sense, "embe
by saidajigumi 13y ago
The line on "embedded" has blurred. I'll wax on for a moment for folks who aren't clear on the distinction that's grown up. In the most long-lived sense, "embedded" meant a processor that provided functionality in a non-general purpose device. In this usage, a robot or refrigerator CPU would be embedded while the same hardware running a WIMP desktop system would not. I still consider this usage current.
In the shorter-lived sense, "embedded" referred to low-power, limited functionality processors such as the ARM7/ARM9 CPUs in TFA. These setups often didn't have MMUs, would typically run a very bare-bones RTOS with soft- or hard- realtime support. Remember no MMU means no process isolation. If a task has a stack overrun, it just keeps going into an adjacent task's stack. If a pointer gets corrupted and the software starts writing who-knows-where in RAM, pray it dies early, hard, and reproducibly. The code size, ability to use third-party libraries, etc. were all greatly limited. Very much more the aesthetic of engineering a one-off custom mechanism, albeit in software vs. in the machine shop.
These days, the envelope of "embedded" CPUs has embraced vastly more powerful hardware, while still remaining low power. They have MMUs, they run real Linux (vs. ucLinux or a traditional RTOS) and are much easier to develop for. Think Arduino, Rasberry Pi, and on and on. This has been a huge access revolution for hackers, makers, and anyone who wants to just get down and prototype some ideas.
- jmpe 13y agoEmbedded means bare metal access to everything. An OS like Linux shields such functionality, which is why it's frustrating to implement something as simple as a triac dimmer in a Linux SoC without doing everything in kernelspace to avoid kernel jitter and event delays. Embedded systems typically run on a microcontroller. It almost literally means something that reads an input from the physical world (EXTI, logic level or adc) and uses it to control something. Microprocessors typically implement a bus system and additional units like an MMU. We used to have uC with basic busses, but that was for different reasons (EPROM, LCD, ...) These days the word embedded seems to mean "fits in a small box".
- AceJohnny2 13y agoHah, indeed. I consider myself an "embedded developper", imagine my confusion a few years ago when I started needing mmap() to access registers...