1 /** \page CORE_MISRA_Exceptions_pg MISRA-C:2004 Compliance Exceptions
\r
2 CMSIS-CORE uses the common coding rules for CMSIS components that are documented under
\r
3 <a href="../../General/html/index.html"><b>Introduction</b></a>.
\r
6 CMSIS-CORE violates the following MISRA-C:2004 rules:
\r
8 - Required Rule 8.5, object/function definition in header file.<br>
\r
9 Violated since function definitions in header files are used for function inlining'.
\r
11 - Advisory Rule 12.4, Side effects on right hand side of logical operator.<br>
\r
12 Violated because volatile is used for core register definitions.
\r
14 - Advisory Rule 14.7, Return statement before end of function.<br>
\r
15 Violated to simplify code logic.
\r
17 - Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
\r
18 Violated since unions are used for effective representation of core registers.
\r
20 - Advisory Rule 19.4, Disallowed definition for macro.<br>
\r
21 Violated since macros are used for assembler keywords.
\r
23 - Advisory Rule 19.7, Function-like macro defined.<br>
\r
24 Violated since function-like macros are used to generate more efficient code.
\r
26 - Advisory Rule 19.16, all preprocessing directives must be valid.<br>
\r
27 Violated to set default settings for macros.
\r
30 <device>.h files generated by <b>SVDConv.exe</b> violate the following MISRA-C:2004 rules:
\r
32 - Advisory Rule 20.2, Re-use of C90 identifier pattern.<br>
\r
33 Violated since CMSIS macros begin with '__'. Since CMSIS is developed and verified with various compilers this approach is acceptable and avoids conflicts with user symbols.
\r
35 - Advisory Rule 19.1, Declaration before \#include.<br>
\r
36 Violated since Interrupt Number Definition Type (IRQn_Type) must be defined before including the core header file.
\r