Many products for such markets as household appliances, automotive, industrial and healthcare have regulatory requirements to be certified against functional safety standards. For example IEC 61508 for electrical systems, ISO 26262 for automotive industry and EN 50128 for railway applications.
Within the standards, there are multiple safety integrity levels (SIL) that specify formal methods to be used during development for verifying that the application code, software components and toolchains are safe for the intended use.
Arm offers a set of components for Cortex-M microcontrollers that lets developers use the highest safety integrity levels (SIL) for their end applications. These components are:
- Run-time system with safety-qualified versions of:
- RTX5 real-time operating system (RTOS)
- C library with most commonly used functions
- Safety-qualified Arm Compiler toolchain
- Arm MDK-Professional containing IDE and debugger with built-in tools for
These components provide a reliable, more secure, and highly optimized software platform that enable engineers to shift their efforts from low-level software layers onto the value-add application code.
Safety-qualified Keil RTX5 RTOS
Keil RTX5 is a royalty-free, deterministic real-time operating system for Arm Cortex-M processor-based devices.
The use of an RTOS in a safety-critical system demands that the RTOS component also undergoes rigorous verification. In cases when regulatory certification is mandatory this also implies specific documentation and testing processes against required safety standards.
To simplify and accelerate software development for safety applications and to enable the product certification where required, Arm has been working with TÜV to qualify RTX according to safety standards ISO 26262 up to ASIL D for automotive and IEC 61508 up to SIL 3 for industrial.
More about Keil RTX5 RTOS safety aspects...
Safety-qualified C library
Arm provides a special C library targeting functional safety applications.The library implements a restricted subset of functions specified in the ISO C99 C language standard and comes with usage guidelines and examples on how to work effectively with it.
More about Arm safety-qualified C library...
Arm C/C++ Compiler toolchain 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.
Arm offers a comprehensive safety package for the Arm Compiler C/C++ toolchain that 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.
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.
More about Arm C/C++ Compiler for functional safety...
MDK developement tools
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.
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.
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.