Firmware Development
The development of high-quality, safety-related, or safety-critical software must be in compliance with international safety standards (e.g. IEC 61508, ISO 26262, DO-178C, etc.) and requires the use of strict quality assurance measures.
Similarly to any other development activities the software development is also an iterative procedure that relies on an appropriate development methodology (for instance Agile, V-Model, etc.) and starts with gathering the 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 without the required experience it becomes frustrating very quickly.
Concerning software development you can rely on our expertise in the following activities:
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
- Device drivers and Hardware Abstraction Layers (HALs) for accessing hardware components like MCU peripherals, external memories, displays, sensors, etc.
- Communication protocols
- Various control and monitoring tasks
In the majority of our projects, we prefer to use 32-bit microcontrollers.
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.