Embedded Office develops self-test library for ARM9 processors

Embedded Office, a specialist company for embedded systems specialising in safety-critical applications, has programmed and tested a software library with the necessary "self-tests" for a customer project that is to be certified according to IEC61508 SIL3. The "IAR Embedded Workbench for ARM" served as the development environment. This is a tool suite certified by TÜV SÜD in accordance with IEC 61508 and ISO 26262 for the development of safety-related embedded applications.

Embedded Office, a specialist company for embedded systems specialising in safety-critical applications, has programmed and tested a software library with the necessary "self-tests" for a customer project that is to be certified according to IEC61508 SIL3. The "IAR Embedded Workbench for " served as the development environment. This is a tool suite certified by TÜV SÜD in accordance with IEC 61508 and ISO 26262 for the development of safety-related embedded applications.

The software library makes it possible for safety-critical applications to run on the ARM9 microcontroller. It contains detailed diagnostic methods, which ensure the perfect functioning of the controller by performing basic tests of the safety technology. These so-called self-tests are used for detecting and clearing faults. These include command and register tests of the CPU, PLL clock, startup RAM, online RAM, software watchdog and flash tests.

During the CPU tests, all the internal units of the CPU (ALU, etc.) are tested via representative computer instructions and the registers via a RAM test algorithm. During the startup RAM test, a given RAM area is checked with a special algorithm. Since the test destroys the contents of the RAM, execution is only possible during system initialisation. The online RAM test checks a given RAM area while the system is running. As such, it is possible to fully test the existing RAM whilst the system uses this RAM during operation. The software watchdog is responsible for a logic and time-controlled program execution check. This allows individual software components to be defined that have to respond within a given period. The sequence of these responses is monitored and used as a basis for checking the program execution. The flash memory can be checked via freely definable CRC32 polynomials. Even for slowly changing signals/variables, an environment is integrated that supports the SEU protection.

The ANSI-C source code of the library has been developed in an object-oriented form of programming. In this regard, attention was paid from the initial design to ensuring maximum testability. The encapsulation and configurability of the objects enable customers to achieve utmost flexibility with an unchanged self-test component in their projects. This in turn allows the component to be deployed relatively easily in various safety-critical projects.

The project has been rounded off by the documentation of the architecture and module design with hardware-specific chapters from the integration test plan through to all the necessary review checklists and complete traceability matrix.

“Within the scope of the project, we were able to draw on our know-how in the development of certified software architectures. We ultimately devised a flexible infrastructure for self-test components, which we can also adapt in line with the requirements of other customers”, said Michael Hillmann, Managing Director of Embedded Office. “Using the self-test library enables developers who work with ARM9 processors to realise safety-critical applications more easily and to reduce the certification process considerably.”

Topics covered in this article