The embedded industry has always been one of rapid change, even though it lags 'behind' the IT curve a bit. I have been working in the embedded field with some of the leading builders of embedded systems in telecom, consumer electronics, software defined radio and more and have seen a number of changes happen over the past decade and a bit.
Developers used to be focussed on getting as much performance as possible out of hardware. This with regards to processing power and memory. They counted every Mhz and kilobyte, which dates me somewhat, I have never worked during the Hz and byte time, though I did do limited work on 8 bit micros and TI DSPs.
Next came a period where performance was still important, but managing complexity was the biggest concern. This is when visual modeling tools became big in the market, tools like ObjecTime Developer (now RoseRT), Rhapsody, Real-time Studio, Tau, … <add your favorite modeling tool>. There has been a consolidation of these, with some of them ending up as part of the IBM Rational Software portfolio.
Complexity and performance are still important, but typically not on the forefront of managers minds. Currently, they are more focussed on 'harnessing multicore', that is, for the systems that can benefit from multicore of course. Multicore provides different opportunities for different projects. Benefits like more performance or functionality for less power, consolidating hardware, reducing bill-of-material and so forth.
However, multicore has a cost too, performance really only improves if you are able to parallelize your algortihms, consolidating hardware only works if you can 'section off' a multicore chip in multiple different partitions.
Additional headaches come in when you also want to virtualize your cores, that is, treat a single physical core as multiple virtual cores. Something that allows you to run, for example, Linux and vxWorks on a single core PPC, or one core of a Core 2 Duo.
The complexity of embedded systems, the processing power and memory limitations and the change they have brought into our society are all reasons why I like working in this industry.
This may be a good point to introduce myself. I am a new blogger in the Wind River blogging network and will focus on the on-goings in the multicore and virtualization field. Some of my entries will be related to Wind Rivers Multicore Software Solution and some won't. I have been in the embedded world for over a decade and have spent my time assisting development teams in adopting visual modeling solutions, code generation tools, embedded test technologies, middleware, software defined radio and more.
One of the nice things of working for software vendors is that you get a chance to work with the latests technologies and show them off to customer. Which is what I am doing currently, building demonstrations of the Wind River Multicore Solutions, I hope to be able to post some short recordings soon.