Recent Posts

Software versus Hardware

Friday 24th February 2012

Electronics Hardware

The idea for this post came from an interesting article by Bryan Murdoch who also writes a blog on technology topics. In the article he looked at why some developers can be Averse To Change and made some interesting observations about why that is so. One of those conclusions I agree with very strongly.

 

Before I come to that, let’s look at the basics of the Embedded System.

 

An Embedded System is a computer that lives inside a system and is dedicated to that system. It has specific control functions and can be quite simple or quite complex depending on the system. An Embedded System therefore has Electronics Hardware that Embedded Software runs on.

 

Electronics PCB

Electronics PCB

 

The Electronics Hardware can be as simple as a tiny 8 bit processor such as the Atmel ATtiny13 or a full blown Intel multi-core processor. But the key is that it is dedicated to that system and not a general purpose computing device such as a Windows or Linux PC that we just happen to be using for that purpose today and can use for something else tomorrow.

 

Electronics Hardware is not generally reconfigurable in the field and where it is, such as FPGAs, it is really the software control portion that is changed and not the underlying hardware itself.

 

Embedded Software

 

Embedded Software

Embedded Software

The Embedded Software is therefore the software that runs on the Embedded System. This can be as simple as a few lines of assembler through to a full Information Kiosk product running on Windows Embedded. As usual with software, it can be anything. We are not going to focus on what it is, but why we prefer to use Software for much of a modern system’s functions.

 

Why Software?

The real reason for the focus on software, is that once you deploy the hardware, the only thing you can easily change to improve it is the software. This is one of the core points made by Bryan Murdoch that I agree with.

 

Another point he made in a post on Software Cost is that software becomes more valuable and more usable when we make the effort to make it simple, testable and compact. This makes it more readily reusable and also more easily maintained. These are 2 lifecycle costs not often considered at the front end development phase of a project. It is also a good reason why the number of lines of code is not a good indicator of the real value of a piece of software.

 

Product Development

So this is where the rubber of the New Product Development process hits the road. Amongst other things, you have to be able to decide what you will do in software and what you will do in hardware. And it also depends on your core competencies as a company and those in your supply chain. During the development of the XBOX processor Microsoft told IBM that they were a software company and so any issues with the silicon they would fix in the drivers. This was done to reduce the development timeframe and fits with the comments from Bryan Murdock about one of the primary reasons people use software, its changeability. It also played simultaneously to both IBM’s and Microsoft’s strengths and was a smart business move on Microsoft’s part.

 

Successful Endeavours specialise in Electronics Design and Embedded Software Development. Ray Keefe has developed market leading electronics products in Australia for nearly 30 years. This post is Copyright © 2011 Successful Endeavours Pty Ltd

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.