Welcome Guest! To enable all features please Login.



Development of Software in Embeded Systems
Crazy Brit
#1 Posted : Monday, January 06, 2014 12:48:25 PM(UTC)
Rank: Newbie

Joined: 1/6/2014(UTC)
Posts: 1

I just joined this website and am hoping to understand how development and testing of embedded software (firmware) differs from my area of expertise. I'm a software quality assurance and process (methodologies, procedures, standards, testing, etc) consultant. I've worked with standard business applications and during the last 8 years in the medical devices field. I just completed a consulting gig for a company that makes implanted defibrillators and catheters used for ablations. Those devices contain embedded software (EPROM's etc). My role only covered the software used to interpret the output from the devices and display diagnostic images used to, for example, show the location of the catheter in the patient. Being involved piqued my curiosity as how to apply my experience to embedded software.

I found an article on your site by Arnold Berger on the basics of embedded software testing which implies to me that the same underlying concepts that I’d apply to development (not just testing) of “application” software would also apply to “embedded software”, i.e.firmware. (There’s also “wetware” – a.k.a. the people involved in the development project!) I’m interested in hearing the thoughts of “embedded wetware” (no offense intended) experts on best practices, techniques, tools, standards used during development of firmware, or references to good sources of information.
Johan Dams
#2 Posted : Thursday, January 09, 2014 6:25:59 PM(UTC)
Rank: Advanced Member

Joined: 9/16/2012(UTC)
Posts: 35


Depending on the type of embedded system, the procedures, rules and standards can either be the same as what you are used to, or vary completely. As always, it depends highly on the application. As you can imagine, some temperature sensor system to monitor a bird house will have different requirements than something like a medical device implanted into a patient.

Things like real time constraints, interrupts, etc. are typical in embedded systems while they might not be in standard computer software. User interfaces are often non-existent or of a different nature than with typical software. Added to that, the development process is often completely different since it is not just the software aspect that has to be take into consideration, but it is also the hardware it runs on. This hardware might itself still be under development.

You also have to deal with aspects that might be alien to someone not familiar with embedded software development. Take for example memory management: in typical software you normally won't hesitate to allocate some memory, say using an malloc() in C. In many embedded systems that is a definite no go; either because memory is limited, or because doing so might cause severe problems. Have a look at the MISRA C and C++ standards for example (http://en.wikipedia.org/wiki/MISRA_C) which outlines those aspects (including the memory allocation I just mentioned).

Since testing is often done with hardware in the loop, test procedures will be different. You can't just write a test suite to test your code since it may need external factors that need to be taken care of while testing. Real time constraints and interrupt latency is something that requires special care when testing, and again might be dependent on external factors.

This is not to say that traditional testing does not apply. There will be test cases, there will be regression tests, performance tests, etc. but the environment in which these tests happen (and thus the requirements on the test case itself as well) will be substantially different. These and other aspects are perhaps not clear in the article you referenced.

This space is a little too small to go into a lot of detail considering that the question is very open, but let me know if you want to know something specific and we can go into detail.

Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 1.520 seconds.