Firmware Development

The development of high-quality, safety-related, or safety-critical software needs to comply with safety standards (e.g. IEC 61508, ISO 26262, DO-178C, etc.) and requires the use of strict quality assurance measures.

Software development is an iterative procedure that relies on an appropriate development methodology (for instance Agile, V-Model, etc.) and starts with gathering the correct requirements. Requirements are indispensable not only for verification and validation but also for the specification of the software architecture. In our view, it is highly recommended to plan as much as reasonably possible – for instance by creating an architecture document – before writing any code. In a real project, the requirement and architecture specifications are evolving documents and are therefore subject to frequent changes. This is a normal procedure but sometimes it can be very demanding.

You can count on our expertise in the following subject areas:

Requirement specification

We can help you to create requirements specifications for embedded software especially in a project that needs to comply with the safety standards as follows:

    • IEC 61508
    • ISO 26262
    • IEC 62061
    • ISO 13849

Architecture specification

“Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be canceled.” (Eoin Woods)

In our view a decent software architecture specification shall document at least:

    • the structure of the software system ideally on several abstraction layers
    • the interaction between the software components
    • the description of the interfaces between the software components
    • the design decisions (including risks) and rationales
    • the quality targets
    • the stakeholders and responsibilities

Implementation

We have experience in writing high-quality embedded C code for safety-related systems. In the past we helped our clients to implement software modules as follows:

    • Time-triggered schedulers
    • C libraries (also called HALs) for accessing hardware components like MCU peripherals, memories, displays, sensors, etc.
    • Communication protocols
    • Various control and monitoring tasks

In the majority of our projects, we prefer to use 32-bit microcontrollers, but in some cases, especially for simple tasks we usually apply 8- or 16-bit devices.

In software projects where our resources are no longer sufficient, we rely on our reliable partner SafeTTy-Systems Ltd., with whom we have been working effectively for many years.

Testing

Currently, ASRP-Systems does not offer software testing services, but in cases where independent software testing is required, we are happy to put you or your organization in contact with one of our partners who has the appropriate experience and resources.

Consultancy and Review

We are happy to assist you also in form of consultancy and review services in connection with the above activities. Please feel free to contact us.