CMSIS-Core (Cortex-M)  
CMSIS-Core support for Cortex-M processor-based devices
 
Loading...
Searching...
No Matches
MISRA-C Deviations

CMSIS-Core (Cortex-M) uses the common coding rules for CMSIS components that are documented in CMSIS Introduction.

CMSIS-Core (Cortex-M) violates the following MISRA-C:2012 rules:

  • Directive 4.2, All usage of assembly language should be documented
    • CMSIS-Core uses assembly statements to access core registers on several places. These locations start with __ASM.
    • Inline assembly statements my be opaque to MISRA Checkers and can cause false-positive warnings.
  • Directive 4.9, function-like macro defined.
    • Violated since function-like macros are used to generate more efficient code.
  • Rule 1.3, multiple use of '#/##' operators in macro definition.
    • Violated since function-like macros are used to generate more efficient code.
  • Rule 11.4, conversion between a pointer and integer type.
    • Violated because of core register access.
  • Rule 11.6, cast from unsigned long to pointer.
    • Violated because of core register access.
  • Rule 13.5, side effects on right hand side of logical operator.
    • Violated because of shift operand is used in macros and functions.
  • Rule 14.4, conditional expression should have essentially Boolean type.
    • Violated since macros with several instructions are used.
  • Rule 15.5, return statement before end of function.
    • Violated to simplify code logic.
  • Rule 20.10, '#/##' operators used.
    • Violated since function-like macros are used to generate more efficient code.
  • Rules 21.1 and 21.2, reserved to the compiler.
    • Violated since macros with leading underscores are used.