By: Shannon Chevier
Software Engineering Manager
As with any technology element, subsequent product generations typically yield performance, size, integration or cost advantages. This is often driven by the silicon devices used to define the product.
Key to leveraging the advances in silicon has been the equal advances in embedded software. A leading element is the ongoing growth and maturity of Linux as a fully functional and flexible operating system environment as well as a configurable environment for embedded systems. This article will demonstrate why the performance and integrated benefits of contemporary silicon devices coupled with the functionality and cost benefits of Linux are providing embedded developers with options never before available.
I remember working on my first embedded software project. Right out of college - a few years ago now - I was creating critical software that would run unattended on a standalone hardware platform.
I remember writing routines of Assembly code. I remember hours of code review where we - by hand - calculated out the bit manipulations being done in the code. We kept track of how many bytes of memory we used. I remember being a hero for finding two bytes of memory that were being wasted.
That was a long time ago...
Years later, I again find myself working on embedded devices, creating software on standalone hardware platforms. The work is just a little different now. Embedded software has evolved from strict state machines in Assembly code to full operating systems running multi-threaded, object-oriented applications. It's evolved from being very small and specialized to being full and feature rich.
The hardware platforms we have been working with in the embedded world have been advancing at a phenomenal rate. Processing power has grown by orders of magnitude. That precious memory we used to count out byte by byte is now available by the Gig. The capabilities and technologies available in silicon devices are always increasing.
Those of us in software have had to keep up with the ever advancing technology - after all, we can't let the hardware designers get ahead of us. So, our software grew in capabilities and complexity. It grew beyond the Assembly code functions we could walk by hand.
We started working with higher level languages. We started working with tool chains and compilers with built in optimizers. We started leveraging existing software to grow more functionality with every subsequent product release.
Embedded kernels came into wide spread acceptance and use: small, contained, real-time kernels that handled the processor core while we developed customized software to meet the intended application. Embedded software engineers became experts in working with packages such as pSOS and VxWorks.
Now, we are at the next technology level for embedded software; an embedded kernel that is fuller, multi-purpose and can leverage from a vast number of software packages being developed in an open source community.
Previous Page | Next Page
1 | 2 | 3 | 4 | 5
If you found this page useful, bookmark and share it on: