Keil Logo

Functional safety

Learning Platform

Functional safety standards such as IEC 61508 and ISO 26262 require developers to use a lot of formal methods to verify that the code they are writing is safe for the intended use. It starts with programming guidelines such as MISRA as well as the usage of safety certified compilers and ends with analysis techniques such as static code analysis and code coverage tests.

MDK helps software developers to create safe embedded applications that can be certified against common standards either directly or with the help of third party tools.

Arm Compiler for functional safety applications

Arm Compiler has been used for many years in safety-related applications across a wide range of verticals, including automotive, medical, industrial, avionics and railway. To simplify and accelerate the development of safety-certified systems by our customers, Arm offers a comprehensive safety package for the Arm Compiler C/C++ toolchain. The package provides customers with confidence-building evidence for the toolchain justification argument and, in many cases, can eliminate the need for any further toolchain qualification effort. It is available on selected, externally-certified branches of Arm Compiler and includes safety manual, development process document, test and defect reports, TÜV SÜD certificate with assessment reports and long term support and maintenance contract option.

Arm Compiler 5 fulfills the requirements for development tools classified T3 according to IEC 61508-3. It is qualified to be used in safety-related software development according to IEC 61508 and ISO26262.

Arm Compiler 6 fulfills the requirements for development tools classified T3 according to IEC 61508-3 and EN 50128. It is qualified to be used in safety-related software development according to IEC 61508, EN 50128 and ISO26262. It is suitably validated for use in safety-related development according to IEC 62304. Arm Compiler 6 can be used for any Safety Integrity Level, provided the Safety Component is developed in accordance with the respective requirements.

You can download a Qualification Kit Preview to verify that the contents matches your certification requirements. As an existing MDK-Professional customer, follow these instructions to download the Arm Compiler Safety Package.


The Motor Industry Software Reliability Association (MISRA) has created a set of software development guidelines for the C and C++ programming languages that help to facilitate code safety, security, portability and reliability for embedded systems. MISRA is nowadays widely adopted in industry sectors such as automotive, aerospace, telecom, medical devices, defense, and railway.

While MDK does not offer native support for checking your source against MISRA, you can use the close integration with PC-lint to perform all necessary tasks.

Static code analysis

Static code analysis is usually performed by an automated tool without the execution of the source code itself. Again, you can use PC-lint to do a static code analysis from within MDK. The results of the analysis are presented in µVision so that you do not have to switch your toolchain for this task.


Using PC-Lint for MISRA and static code analysis

This webinar demonstrates how you can configure and use PC-lint easily in µVision to get better code using MISRA and static code analysis. Real-world demos show the seamless integration of PC-lint for fast turn-around times when inspecting your source code.

Code coverage

Instruction trace using ULINKpro enables MDK to provide a complete code coverage of your program. Code coverage identifies your program's execution instruction-by-instruction, ensuring thorough testing of your application. This is an essential requirement for complete software verification and certification.

Execution profiler

You can easily identify code that has not been executed using the execution profiler which shows timing and execution statistics about instructions for the complete program code.


Advanced debug and trace using ULINKpro

The µVision debugger gives you full access to debug and trace of an Cortex-M based system. Trace enables additional debug views such as Logic Analyzer, Event Viewer, Performance Analyzer, Code Coverage, and Instruction Trace. These debug views show the dynamic behavior of your application and let you optimize algorithms or identify sporadic errors. In this webinar, you will learn how to use ULINKpro for advanced debugging and tracing of embedded applications on an NXP's Kinetis K64 MCU.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.