]> begriffs open source - cmsis/blob - CMSIS/DoxyGen/Core_A/src/MISRA.txt
DoxyGen: Fixed CMSISD-Driver version in global rev history.
[cmsis] / CMSIS / DoxyGen / Core_A / src / MISRA.txt
1 /** \page coreMISRA_Exceptions_pg MISRA-C Deviations
2 CMSIS-Core (Cortex-A) uses the common coding rules for CMSIS components that are documented under 
3 <a href="../../General/html/index.html"><b>Introduction</b></a>.
4
5
6 CMSIS-Core (Cortex-A) violates the following MISRA-C:2004 rules:
7
8 TO BE EVALUATED
9 */
10 /*  
11 - Required Rule 8.5, object/function definition in header file.<br>
12   Violated since function definitions in header files are used for function inlining'. 
13    
14 - Advisory Rule 12.4, Side effects on right hand side of logical operator.<br>
15   Violated because volatile is used for core register definitions. 
16    
17 - Advisory Rule 14.7, Return statement before end of function.<br>
18   Violated to simplify code logic. 
19
20 - Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
21   Violated since unions are used for effective representation of core registers.
22    
23 - Advisory Rule 19.4, Disallowed definition for macro.<br>
24   Violated since macros are used for assembler keywords. 
25    
26 - Advisory Rule 19.7, Function-like macro defined.<br>
27   Violated since function-like macros are used to generate more efficient code. 
28    
29 - Advisory Rule 19.16, all preprocessing directives must be valid.<br>
30   Violated to set default settings for macros. 
31 */
32
33 /**
34 CMSIS-Core (Cortex-A) violates the following MISRA-C:2012 rules:
35
36 TO BE EVALUATED
37 */
38 /*
39 - Directive 4.9, function-like macro defined.<br>
40   Violated since function-like macros are used to generate more efficient code. 
41    
42 - Rule 1.3, multiple use of '#/##' operators in macro definition.<br>
43   Violated since function-like macros are used to generate more efficient code. 
44    
45 - Rule 11.4, conversion between a pointer and integer type.<br>
46   Violated because of core register access. 
47    
48 - Rule 11.6, cast from unsigned long to pointer.<br>
49   Violated because of core register access. 
50    
51 - Rule 13.5, side effects on right hand side of logical operator.<br>
52   Violated because of shift operand is used in macros and functions. 
53    
54 - Rule 14.4, conditional expression should have essentially Boolean type.<br>
55   Violated since macros with several instructions are used.
56   
57 - Rule 15.5, return statement before end of function.<br>
58   Violated to simplify code logic. 
59
60 - Rule 20.10, '#/##' operators used.<br>
61   Violated since function-like macros are used to generate more efficient code. 
62    
63 - Rule 21.1, reserved to the compiler.<br>
64   Violated since macros with leading underscores are used. 
65 */