The-Software-Experts




Google
 




   catch your bugs!
  Home
  Newsletter
  Forum
  Shop

  SW-Training
  - Software Design
  - Safe Coding in C
  - Software Inspection
  - Software Testing
  

  SW-Design
  - Architecture
  - Module Design
  

  Coding in C
  - Safe Coding in C
  

  Refactoring
  - Principles
  - Methods
  

  SW-Testing
  - Principles
  - Static Analysis
  - Inspections
  - Module Tests
  - Functional Tests
  - Integration Tests
  - Test Documentation
  - Links
  

  SW-Documentation
  - SGML Principles
  - Printing SGML
  - Links
  

  SW-Processes
  - Process Descriptions
  - Process Assessments
  - Self Evaluation
  - Food for Thought
  - Links
  

Safety Software
Design Training

IEC 61508 compliant
Safety Software
Design for Microcontroller

SW Document
Templates

CMMI and SPICE
compliant document
templates

SW Process
Description

CMMI Level 4 and
SPICE compliant SW
development procedure

SGML Package for
Documentation

Edit and print SGML
Documemts. Professional.
fast, easy to use.

Test Bench
for C/C++

Perl based test
environment for easy
component testing

Software Development and Testing
for Embedded Microcontroller Systems

These pages are dedicated to the development of microcontroller software. The systems we are talking about here are sometimes called "embedded systems" or "realtime systems". The expression "embedded systems" is a synonym for those applications where the contained CPU is encapsulated in an own hardware, dedicated to the application. The CPU can be not accessed and controlled from outside and not easily supplied with a new software. The software is "burned" into the system and either not replacable at all or only replacable via special tools. The expression "realtime system" stands for applications which react immediately on external events, contrary to the more traditional computing applications which can run batch jobs and work on data without the requirement to react on external events and without strict timing requirements. The interesting thing is that the expressions "realtime system" and "embedded system" are usually used by those who are not working with microcontrollers. I never heard one of my microcontroller programmer colleagues using those terms to describe the systems they work on.

Microcontroller applications can have a wide variety of size and applications. There are very small systems using e.g. PIC microcontrollers. This is very popular at the moment and you find a lot of valueable literature and examples. There are a lot of hobby applications and student projects, because the systems are cheap and easy to use. But there is the area of the tough industrial work. These are medium sized or large applications with 16 bit or 32 bit CPUs. Resources are usually very limited and we are fighting against runtime, RAM and ROM contraints. And further we are fighting very often against quality problems originating among others in an unlucky design and insufficient testing. I dedicated these pages to the colleagues in this area of microcontroller development. This does not mean however, that there is no benefit from the pages for other areas of computing.

On these pages I want to publish an outline of the knowledge and expertise which I accumulated in almost 30 years of work with computers and microcontroller software. This was not always an individual effort. Most times I was working in teams, most of them really great teams. And at this point I want to give thanks to these good colleagues and friends. We tried to apply the shool book methods for SW processes, design and testing. By this we came across many problems because the microcontroller world is different than the world of the rest of the SW community. But we always managed to find a satisfying solution to apply them with great benefit.





Imprint