1{ 2 "version" : "2.0", 3 "standard" : "c2012", 4 "title": "Coverity MISRA Configuration", 5 "deviations" : [ 6 { 7 "deviation": "Rule 3.1", 8 "reason": "We post HTTP links in code comments which contain // inside comments blocks." 9 }, 10 { 11 "deviation": "Rule 14.4", 12 "reason": "do while( 0 ) pattern is used in macros to prevent extra semi-colon." 13 }, 14 { 15 "deviation": "Directive 4.4", 16 "reason": "Code snippet is used in comment to help explanation." 17 }, 18 { 19 "deviation": "Directive 4.5", 20 "reason": "Allow names that MISRA considers ambiguous." 21 }, 22 { 23 "deviation": "Directive 4.6", 24 "reason": "Allow port to use primitive type with typedefs." 25 }, 26 { 27 "deviation": "Directive 4.8", 28 "reason": "HeapRegion_t and HeapStats_t are used only in heap files but declared in portable.h which is included in multiple source files. As a result, these definitions appear in multiple source files where they are not used." 29 }, 30 { 31 "deviation": "Directive 4.9", 32 "reason": "FreeRTOS-Kernel is optimised to work on small micro-controllers. To achieve that, function-like macros are used." 33 }, 34 { 35 "deviation": "Rule 2.3", 36 "reason": "FreeRTOS defines types which is used in application." 37 }, 38 { 39 "deviation": "Rule 2.4", 40 "reason": "Allow to define unused tag." 41 }, 42 { 43 "deviation": "Rule 2.5", 44 "reason": "Allow to define unused macro." 45 }, 46 { 47 "deviation": "Rule 5.9", 48 "reason": "Allow to define identifier with the same name in structure and global variable." 49 }, 50 { 51 "deviation": "Rule 8.7", 52 "reason": "API functions are not used by the library outside of the files they are defined; however, they must be externally visible in order to be used by an application." 53 }, 54 { 55 "deviation": "Rule 8.9", 56 "reason": "Allow to object to be defined in wider scope for debug purpose." 57 }, 58 { 59 "deviation": "Rule 8.13", 60 "reason": "Allow to not to use const-qualified type for callback function." 61 }, 62 { 63 "deviation": "Rule 11.4", 64 "reason": "Allow to convert between a pointer to object and an interger type for stack alignment." 65 }, 66 { 67 "deviation": "Rule 15.4", 68 "reason": "Allow to use multiple break statements in a loop." 69 }, 70 { 71 "deviation": "Rule 15.5", 72 "reason": "Allow to use multiple points of exit." 73 }, 74 { 75 "deviation": "Rule 17.8", 76 "reason": "Allow to update the parameters of a function." 77 }, 78 { 79 "deviation": "Rule 18.4", 80 "reason": "Allow to use pointer arithmetic." 81 }, 82 { 83 "deviation": "Rule 19.2", 84 "reason": "Allow to use union." 85 }, 86 { 87 "deviation": "Rule 20.5", 88 "reason": "Allow to use #undef for MPU wrappers." 89 } 90 ] 91} 92