Developing A New Embedded System? Have You Considered…

There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take a look at these guidelines on what to consider when developing new embedded systems.

      Take the time to build or save time and buy?

    This is quite the debate in the world of embedded system design, with build fans stating that this allows for directly relevant solutions while buy fans continually point out the time saved with quicker access to solutions. However, the final decision is most likely to be biased by the environment into which the final product is required to work, as extreme environments require specialist hardware that may not be available through normal commercial channels.

     

    Don’t forget about the compiler

    Alongside CPU selection, the choice of compiler the most important point to consider as the choice of compiler will affect which families of microprocessors & microcontrollers can be used, and in some cases the real-time operating system. It is worth taking the time to consider standard libraries and the compilers start-up code. Popular choices for embedded compilers are C or C++, as these tend to produce faster more efficient applications.

     

    What about the usual criteria?

    As for all processor based systems consideration needs to be given to the usual criteria (CPU processing power, memory usage, connectivity, etc.), however embedded systems bring a whole host of other factors that need to be considered:

    • Size – the product may need to operate in an enclosed environment where space is premium so the solution needs to be kept as small as possible.
    • Form Factor – the product may need to be rack\wall mounted so the equipment housing would need to take this into account.
    • Weight – the product may need to be installed on equipment where weight restrictions apply (i.e. mobile or satellite equipment).
    • Environment – Embedded systems often have to operate in environments where office computer equipment just would not be suitable for instance areas of extreme temperature\humidity or areas with high levels electro-magnetic interference.

    Will there be limits on power consumption?

    It is often the norm when developing embedded systems to find yourself dealing with harsh system size, weight and power constraints, whilst trying to create an effective solution to a challenge. Reducing power consumption can be quite a challenge, especially when resources are limited and processing demands are high. However, the use of multicore and ARM architectures are a possible solution thanks to their energy saving mechanisms and low power consumption. You need to select a CPU that meets the required performance but isn’t so over specified that it consumes too much power.

     

    How does your system manage failure?

    Depending upon the type of product being developed the application maybe directly responsible for safety (e.g. self-drive vehicles, power station monitoring\control). In these applications, careful analysis of possible failure modes is critical to ensure that equipment failure does not result in wrong side failure, which in turn affects the safety of the overall solution. It is also possible that the product may not be directly responsible for Safety but is instead responsible for monitoring and recording information that can be used to aid analysis of events following the failure of other safety critical\related products. In this case the priority is given to ensuring the reliability of the interfaces from which the data is being gathered and also the safe storage of the data to ensure its recovery following an incident (e.g. aircraft flight recorders).

     

    Do you know how to test your system?

    By their nature, embedded systems tend to have an impact on real-life events when run, making the testing process of these systems a rather complicated affair. As with all software developments a degree of software testing can be performed using the normal software development tools available through the IDE and the use of simulators to emulate the equipment that the product is required to communicate with. However, for embedded systems there comes a point where the product needs to be tested in a more realistic environment and this may require the use of more specialist equipment to enable the interfaces to be tested properly.

    More From The Blog

    Achieving Software Quality During Implementation

    Achieving Software Quality During Implementation

    Achieving Software Quality During ImplementationSoftware quality is not something you can introduce to a system during the final moments before a release, nor should it be something to sacrifice simply to increase the speed of development. Rather it should be given...

    Do You Know If Your Project Failing?

    Do You Know If Your Project Failing?

    Do You Know If Your Project Failing?Did you know that a study by IBM found that only 40% of software projects successfully meet schedule, budget or quality targets? Or that a separate study by the Portland Journal found similarly concerning results, with between 65...

    Is Your Project In A Mess? – Top 5 Solutions To Turn It Around

    Is Your Project In A Mess? – Top 5 Solutions To Turn It Around

    Is Your Project In A Mess? - Top 5 Solutions To Turn It AroundKeeping a project on track is far from a simple task. The mere act of bringing together a group of individuals with unique thoughts and opinions is bound to introduce a whole mix of problems. So is it...

    Developing A New Desktop Application? Have You Considered…

    Developing A New Desktop Application? Have You Considered…

    Developing A New Desktop Application? Have You Considered…There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take...

    Developing A New Web Based System? Have You Considered…

    Developing A New Web Based System? Have You Considered…

    Developing A Web Based System? Have You Considered…There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take a look...

    Why Do You Need Requirements? – 6 Top Reasons

    Why Do You Need Requirements? – 6 Top Reasons

    Why Do You Need Requirements? - 6 Top ReasonsIt would be impossible to spend more than a month in the world of software development and never encounter requirements to some degree. Almost every project is centred around some form of requirements documentation, and...

    The Hazards of Updating Legacy Systems

    The Hazards of Updating Legacy Systems

    The Hazards of Updating Legacy SystemsThere is, of course, only one real hazard – to fix a bug or make an enhancement and, in so doing, to introduce a new problem.  The problem usually manifests itself in an area far away from where the changes have been made and so...