What's different about Embedded?
This blog is dedicated to the embedded web so I thought I should start out by expressing an opinion about what is different with embedded devices today.
In the past, embedded meant small microcontrollers and real-time custom operating systems with restricted requirements and functionality. But today, embedded is much broader.
Today, many embedded systems have powerful CPUs, more than adequate memory and well connected communications capabilities. Many run mainstay operating systems such as 32-bit Linux. So there really are two embedded worlds:
- Tiny embedded (8 & 16 bit micro-controllers)
- The embedded rest (with 32 bit CPUs)
To illustrate the point, I’ve been playing with my new iPhone and did some benchmarks. I use a Macbook Pro notebook with a fast Intel CPU. Without boring you with too much detail, the iPhone benchmarks at about 1/3 the speed of the Macbook. This is pretty respectable for a phone.
Of course, there is still a vast world of tiny 8 and 16 bit controllers and I’m sure they are very important to some. Just not to me or this column. Please don’t email me and say that you have created a web server doing SSL, and authentication in 32K on some unknown processor and O/S. I’m sure such solutions are possible, but they always involve tradeoffs and compromises.
So why not just use enterprise solutions and stacks? Why not use LAMP: Linux, Apache, MySQL and PHP, or the windows equivalent stack for embedded. Those are pretty capable and proven applications, but embedded devices typically have much less available RAM (think 32 MB instead of 8GB).
This blog is dedicated to the specific solutions that make embedded devices work best. Sometimes it is adapting existing tools and solutions — sometimes it is new technologies entirely.
As the Raspberry Pi for $25 demonstrates, capable 32 bit CPUs, memories and connectivity are inexpensive, powerful and are the future -- this is the future I will focus on.