CANopenNode
CANopen protocol stack
Loading...
Searching...
No Matches
MISRA Compliance

The CANopenNode files conform to the MISRA C:2012 guidelines, with some noted exceptions. Compliance is checked with PC Lint Plus.

A recommendation for MISRA: memory allocation and deallocation functions should not be used. You must define the macro CO_USE_GLOBALS in your driver configuration.

Configuration Inhibits Control

Inhibits: Excluded the OD.c and OD.h files from the check because there are configuration parameters (not source code execution)

-efile( *, CANopenNode\OD.c )
-efile( *, CANopenNode\OD.h )

Inhibits: Excluded the CO_gateway_ascii and CO_fifo (currently static analysis not completed)

-efile( *, CANopenNode\309\CO_gateway_ascii.c )
-efile( *, CANopenNode\309\CO_gateway_ascii.h )
-efile( *, CANopenNode\301\CO_fifo.c )
-efile( *, CANopenNode\301\CO_fifo.h )

Inhibits: C comment contains '://' sequence

ref.: MISRA C 2012 Rule 3.1

-efile( 9259, CANopenNode* )

Inhibits: unknown preprocessor directive 'string' in conditionally excluded region

ref.: MISRA C 2012 Rule 20.13

-efile( 9160, CANopenNode* )

Inhibits: conversion from pointer to void to other pointer type (type)

ref.: MISRA C 2012 Rule 11.5

-efile( 9079, CANopenNode* )

Inhibits: C comment contains C++ comment

ref.: MISRA C 2012 Rule 3.1

-efile( 9059, CANopenNode* )

Inhibits: complete definition of symbol is unnecessary in this translation unit

ref.: MISRA C 2012 Dir 4.8

-efile( 9045, CANopenNode* )

Inhibits: function parameter symbol modified

ref.: MISRA C 2012 Rule 17.8

-efile( 9044, CANopenNode* )

Inhibits: cannot cast essential-type value to essential-type type

ref.: MISRA C 2012 Rule 10.5

-efile( 9030, CANopenNode* )

Inhibits: function-like macro, 'macro', defined

ref.: MISRA C 2012 Dir 4.9

-efile( 9026, CANopenNode* )

Inhibits: pasting/stringize operator used in definition of object-like/function-like macro 'string'

ref.: MISRA C 2012 Rule 20.10

-efile( 9024, CANopenNode* )

Inhibits: performing pointer arithmetic via addition/subtraction

ref.: MISRA C 2012 Rule 18.4

-efile( 9016, CANopenNode* )

Inhibits: local variable symbol could be pointer to const

ref.: MISRA C 2012 Rule 8.13

-efile( 954, CANopenNode* )

Inhibits: return statement before end of function symbol

ref.: MISRA C 2012 Rule 15.5

-efile( 904, CANopenNode* )

Inhibits: the left/right operand to operator always evaluates to 0

ref.: MISRA C 2004 Rule 13.7

-efile( 845, CANopenNode* )

Inhibits: previous value assigned to symbol not used

-efile( 838, CANopenNode* )

Inhibits: zero given as string argument to operator context

-efile( 835, CANopenNode* )

Inhibits: parameter symbol of function symbol could be pointer to const

ref.: MISRA C 2012 Rule 8.13

-efile( 818, CANopenNode* )

Inhibits: constant expression evaluates to 0 in 'unary/binary' operation 'operator'

-efile( 778, CANopenNode* )

Inhibits: boolean condition for 'detail' always evaluates to 'detail'

ref.: MISRA C 2012 Rule 2.2 and Rule 14.3

-efile( 774, CANopenNode* )

Inhibits: local macro 'string' not referenced

ref.: MISRA C 2012 Rule 2.5

-efile( 750, CANopenNode* )

Inhibits: constant value used in Boolean context (string)

-efile( 506, CANopenNode* )