For the first two editions of MISRA-C (1998 and 2004) all Guidelines were considered as Rules. With the publication of MISRA C:2012 a new category of Guideline was introduced - the Directive whose compliance is more open to interpretation, or relates to process or procedural matters.
Each Guideline is classified as Mandatory (new for MISRA C:2012), Required or Advisory. Furthermore, the MISRA Compliance document permits Advisory guidelines to be Disapplied.
In 2013, the third edition, MISRA C:2012, was published. MISRA C:2012 extends support to the C99 version of the C language (while maintaining guidelines for C90), in addition to including a number of improvements that can reduce the cost and complexity of compliance, whilst aiding consistent, safe use of C in critical systems.
MISRA-C:2012 contains 143 rules and 16 "directives" (that is, rules whose compliance is more open to interpretation, or relates to process or procedural matters); each of which is classified as mandatory, required, or advisory. They are separately classified as either Single Translation Unit or System. Additionally, the rules are classified as Decidable or Undecidable.
In February 2020, MISRA published (as a free download) MISRA C:2012 - Amendment 2: Updates for ISO/IEC 9899:2011/18 Core functionality which adds mapping for the undefined, unspecified and implementation defined behaviours within C11/C18.
An exemplar suite (for MISRA-C:2004 and MISRA C:2012) is available from the MISRA GitLab repository (login required). This allows tool-users to evaluate and compare the checking support provided by the various MISRA tools; additionally, it gives tool-implementers some guidance as to the intent of the MISRA Guidelines.
This document amends MISRA C:2012 as required to introduce support for ISO/IEC 9899:2011. Subsequent amendments will be used to introduce specific guidance for the features introduced by ISO/IEC 9899:2011
This document contains an updated mapping, following the publication of MISRA C:2012 Amendment 1, of MISRA C coverage of the "C Secure" requirements and shows that for freestanding applications, MISRA C has excellent coverage of the "C Secure" requirements.
Since the publication of MISRA C:2012 and its adoption by industry and the wider C community, a number of issues have arisen, both from discussions within the MISRA C Working Group and in response to feedback via the MISRA C Forum on the bulletin board.
This document is the previous version of MISRA C (MISRA C:2004). This document (Edition 2, July 2008) now incorporates the text of Technical Corrigendum 1. For more details please visit the MISRA C section of this website. MISRA C:2012 (see above) should be used for all new projects.
This document is the original version of MISRA C. It remains available for legacy projects that need to refer to it, but MISRA C:2012 (see above) should be used for all new projects.This new PDF release incorporates the Technical Clarification document of July 2000 as an appendix, in addition to the text of the 1998 MISRA C guidelines.
The coding guideline rules are based on MISRA-C 2012 and are a subset of MISRA-C.The subset is listed in the table below with a summary of the rules, itsseverity and the equivalent rules from other standards for reference.
Parasoft Codescan is an official static code analysis tool used by the Zephyrproject. It is used to automate compliance with a range of coding and securitystandards.The tool is currently set to the MISRA-C:2012 Coding Standard because the ZephyrCoding Guidelines are based on that standard.It is used together with the Coverity Scan tool to achieve the best code healthand precision in bug findings.
Both the HAL and LL APIs are production-ready and have been developed in compliance with CodeSonar®, MISRA C®:2012 guidelines and ISO/TS 16949. Furthermore, STMicroelectronics specific validation processes add a deeper-level qualification.
The first edition of the MISRA C standard, "Guidelines for the use of the C language in vehicle based software", was produced in 1998. In 2004, a second edition was produced with many substantial changes to the guidelines, including a complete renumbering of the rules. Additionally MISRA C:2012 with extended support and MISRA C++:2008 for identifying unsafe code constructs in the C++ standard have also been added to the standards. 2b1af7f3a8