Embedded Coding
January 6, 2020

How to Improve Embedded Coding with MISRA

Security & Compliance
Coding Best Practices

Embedded coding helps power the systems that are installed into larger devices — such as automobiles, aircraft, or medical devices — and designed to perform a specific dedicated function.

Each dedicated function is powered through embedded coding. This code must be reliable and error-free, as any vulnerabilities can lead to devastating consequences for the safety and security of embedded systems. For that reason, it is essential that you apply a coding standard — like MISRA — to ensure that the code is dependable and of high quality.

Here, we explain how to improve embedded coding with MISRA.

Read along or jump ahead to the section that interests you the most:

➡️ efficiently improve embedded coding

Back to top

Why Reliable Code Is Essential For Embedded Coding

The world's most important systems use embedded software to power their functions.

It’s used in:

  • Automobiles people drive every day.
  • Heart monitors (and other medical devices) that keep people alive.
  • Airplanes that fly around the world.

Coding errors are not an option.

That’s why embedded programming needs to comply with guidelines. This ensures code is safe, secure, and reliable. But these guidelines can vary based on the programming language used.   

Back to top

2 Key Programming Languages For Embedded Coding and Systems

Most embedded systems are programmed in C and C++. 

That’s because C and C++ permit low-level control of hardware. C and C++ can support the complexity of embedded software. At the same time, using these languages leads to efficient code.

Plus, there’s a large percentage of C/C++ programmers. And they can maintain optimal performance — which is key for embedded systems.

Back to top

How to Use MISRA For Embedded Coding

Many embedded industries have strict compliance standards for safety and security. And these standards often require the use of a coding standard.

Embedded software has several different coding standards available for C and C++. But MISRA® is one of the most trusted coding standards. MISRA rules ensure that code complies with industry standards. It helps you reduce cyclomatic complexity. And it improves the quality of the code.  

Here are three examples of how developers in different industries use MISRA to improve code quality.

1. MISRA for Better Embedded Coding in Automotive

Automotive developers trust MISRA to ensure better code. That’s because MISRA is the benchmark of quality and compliance in the automotive industry.

“MISRA is recognized as the de facto benchmark and has been adopted throughout the Japanese automotive industry, spanning the complete supply chain from the OEMS right down to the silicon level."

— Socionext

ISO 26262 Compliance

The automotive industry needs to comply with ISO 26262, a functional safety standard.

ISO 26262 has strict requirements for four Automotive Safety Integrity Levels (ASIL) — A through D. It recommends using a coding standard to ensure compliance with ASIL — and highlights the MISRA coding standard.

Protean Electric uses Helix QAC to apply MISRA C rules. This helps them comply with ISO 26262. Plus, Helix QAC finds issues that other tools miss. So, Protean doesn’t have to worry about false negatives.

Consistent Code Quality

Delphi Automotive uses Helix QAC to apply MISRA C rules, too. This helps developers adopt best coding practices. And it ensures consistent code quality from all developers — regardless of individual experience.

2. MISRA For Better Embedded Coding in Rail

Railway system developers also trust MISRA for better code.

“MISRA is the obvious choice. Originally created by the automotive industry, it is one of the longest established and most respected standards, and has been widely adopted across multiple safety-related markets.”

— Viveris Technologies

EN 50128 Compliance

The rail industry needs to comply with EN 50128, a functional safety standard.

EN 50128 five Software Safety Integrity Levels (SSIL), ranging from SSIL0 to SSIL4. A coding standard is recommended for compliance for all SSILs — but it’s mandatory for SSIL3 and SSIL4.

This coding standard must:

  • Prevent the use of undefined or unspecified behavior.
  • Prevent the programmer from making common mistakes.
  • Limit the use of certain constructs.
  • Remove potential ambiguity.
  • Restrict library usage.

MISRA fulfills these requirements and helps to ensure the quality of your software.

Viveris Technologies uses Helix QAC to apply MISRA rules and fulfill compliance requirements of EN 50128. This ensures that their driverless trains — Lyon Metro — are safe, secure, and reliable.

Accurate Diagnostics

For Viveris, accurate code diagnostics are just as important as compliance.

By using Helix QAC, they get better MISRA C rule coverage than they would with other tools. Real problems are identified — and fixed. And there are fewer false positives.

So, their code is better, and their time is better spent.

3. MISRA For Better Embedded Aerospace Code

Aerospace developers trust MISRA for better code, too.

The MISRA rule-set comes from some of the world’s leading coding experts. It’s suitable for (and widely adopted across) mission-critical and safety-critical industries — including aerospace.

DO-178C Compliance

The aerospace industry needs to comply with DO-178C, a functional safety standard.

DO-178C includes five safety levels — A through E. And complying with these safety levels requires a coding standard, such as MISRA.

Selex ES uses MISRA C++ as their coding standard — and ensures MISRA compliance with Helix QAC.

Quality — Even in Auto-Generated Code

Selex ES also uses Helix QAC and MISRA C and C++ rules to ensure quality in its embedded programming. They even use it on auto-generated code. This means they can ensure embedded software quality — and accelerate development times.

Back to top

How to Achieve MISRA Compliance With Embedded Coding

To comply with the MISRA coding standard, you need to apply MISRA rules. This could be done manually during code reviews. Or it could be automated using a static code analyzer.

However, not all static code analyzers are the same. And when it comes to MISRA, some tools are more accurate than others. Helix QAC, for example, is the most accurate static analyzer for MISRA C and C++.

Learn more about choosing a static code analyzer to enforce MISRA rules. Compare MISRA checkers.

Example of Achieving MISRA Compliance With Helix QAC

Watch this short video to see how Helix QAC makes it easy to code in compliance with MISRA C:2012 rules.

Go further in-depth on Helix QAC for MISRA, register for a free trial. 

➡️ Helix QAC free trial

Back to top