The Motor Industry Software Reliability Association (MISRA®[1] ) has established guidelines for the use of the C Language in Critical Systems (MISRA C®).
For information about MISRA C, see www.misra.org.uk
.
In 1998, MIRA Ltd. published MISRA C (MISRA C:1998) to provide a restricted subset of a standardized, structured language that met Safety Integrity Level (SIL) 2 and higher. A major update based on feedback was published in 2004 (MISRA C:2004), followed by a minor update in 2007 known as Technical Corrigendum (TC1).
In 2007, MIRA Ltd. published the MISRA AC AGC standard, “MISRA AC AGC: Guidelines for the Application of MISRA-C:2004 in the Context of Automatic Code Generation.” MISRA AC AGC does not change MISRA C:2004 rules, rather it modifies the adherence recommendation.
In 2013, MIRA Ltd. published the MISRA C:2012 standard, “Guidelines for the use of the C language in critical systems.” MISRA C:2012 provides improvements based on user feedback and includes guidance on automatic code generation.
Embedded Coder® and Simulink® offer capabilities to minimize the potential for MISRA C rule violations. Capabilities include:
Code Generation Advisor, which helps you configure a model or subsystem so that the code generator is most likely to produce MISRA C:2012 compliant code. For more information, see Configure Model for Code Generation Objectives by Using Code Generation Advisor.
Model Advisor checks, which you can use as you developed your model or subsystem to increase the likelihood of generating MISRA C:2012 compliant code. To execute the MISRA C:2012 compliance checks your model or subsystem:
Open the Model Advisor.
Navigate to By Task > Modeling Guidelines for MISRA C:2012.
Run the checks in the folder.
For more information on using the Model Advisor, see Check Your Model Using the Model Advisor.
When using MISRA C:2012 coding guidelines to evaluate the quality of your generated C code, you are required per section 5.3 of the MISRA C:2012 Guidelines for the Use of C Language in Critical Systems document to prepare a compliance statement for the project being evaluated. To assist you in the development of this compliance statement, MathWorks® evaluates the MISRA C:2012 guidelines against C code generated by using Embedded Coder. The results of the evaluation are published as:
Compliance Summary Tables, which identify the method used to obtain compliance for each rule and directive.
Deviations, which identify rules or directives that are not compliant.
For more information, see Developing a MISRA C:2012 Compliance Statement.
[1] MISRA and MISRA C are registered trademarks of MIRA Ltd., held on behalf of the MISRA Consortium.