The CANopen Slave Protocol Stack is tested against the MISRA™ C:2025 coding standards. The results from this effort are available in these compliance summary tables.
These tables align with the published MISRA™ C:2025 Guidelines for the Use of the C Language in Critical Systems. The MISRA™ C:2025 standard consolidates these guidelines:
- MISRA C:2012 rules and directives
- Clarifications added in MISRA C:2012 Technical Corrigendum 1 (TC1) and Technical Corrigendum 2 (TC2)
- New rules and modifications added in MISRA C:2012 Amendment 1 (AMD1), Amendment 2 (AMD2), Amendment 3 (AMD3), and Amendment 4 (AMD4)
- Further updates and new rules introduced in MISRA C:2023
Directives
The Implementation
| Directive | Category | Tested | Compliance | Remarks |
| Dir 1.1 | Required | No | Compliant | by inspection |
Compilation and Build
| Directive | Category | Tested | Compliance | Remarks |
| Dir 2.1 | Required | No | Compliant | by inspection |
Requirements Traceability
| Directive | Category | Tested | Compliance | Remarks |
| Dir 3.1 | Required | No | Disapplied | |
Code Design
| Directive | Category | Tested | Compliance | Remarks |
| Dir 4.1 | Required | No | Compliant | by inspection |
| Dir 4.3 | Required | No | Disapplied | |
| Dir 4.6 | Advisory | Yes | Compliant | |
| Dir 4.7 | Required | Yes | Compliant | |
| Dir 4.8 | Advisory | Yes | Deviation | DEV-D4.8-01 |
| Dir 4.9 | Advisory | Yes | Compliant | |
| Dir 4.10 | Required | Yes | Compliant | |
| Dir 4.11 | Required | Yes | Compliant | |
| Dir 4.12 | Required | Yes | Compliant | |
| Dir 4.14 | Required | No | Compliant | by inspection |
| Dir 4.15 | Required | Yes | Compliant | |
Rules
Standard C Environment
| Rule | Category | Tested | Compliance | Remarks |
| Rule 1.1 | Required | Yes | Compliant | |
| Rule 1.3 | Required | Yes | Compliant | |
| Rule 1.4 | Required | Yes | Compliant | |
| Rule 1.5 | Required | Yes | Compliant | |
Unused Code
| Rule | Category | Tested | Compliance | Remarks |
| Rule 2.1 | Required | Yes | Compliant | |
| Rule 2.2 | Required | Yes | Compliant | |
| Rule 2.3 | Advisory | Yes | Compliant | |
| Rule 2.4 | Advisory | Yes | Deviation | DEV-2.4-01, DEV-2.4-02, DEV-2.4-03, DEV-2.4-04, DEV-2.4-05 |
| Rule 2.5 | Advisory | Yes | Compliant | |
| Rule 2.6 | Advisory | Yes | Compliant | |
| Rule 2.7 | Advisory | Yes | Compliant | |
Comments
| Rule | Category | Tested | Compliance | Remarks |
| Rule 3.1 | Required | Yes | Compliant | |
| Rule 3.2 | Required | Yes | Compliant | |
Character Sets and Lexical Conventions
| Rule | Category | Tested | Compliance | Remarks |
| Rule 4.1 | Required | Yes | Compliant | |
| Rule 4.2 | Advisory | Yes | Compliant | |
Identifiers
| Rule | Category | Tested | Compliance | Remarks |
| Rule 5.1 | Required | Yes | Compliant | |
| Rule 5.2 | Required | Yes | Compliant | |
| Rule 5.3 | Advisory | Yes | Compliant | |
| Rule 5.4 | Required | Yes | Compliant | |
| Rule 5.5 | Required | Yes | Compliant | |
| Rule 5.6 | Required | Yes | Compliant | |
| Rule 5.7 | Required | Yes | Compliant | |
| Rule 5.8 | Required | Yes | Compliant | |
Types
| Rule | Category | Tested | Compliance | Remarks |
| Rule 6.1 | Required | Yes | Compliant | |
| Rule 6.2 | Required | Yes | Compliant | |
| Rule 6.3 | Required | Yes | Compliant | |
Literals and Constants
| Rule | Category | Tested | Compliance | Remarks |
| Rule 7.1 | Advisory | Yes | Compliant | |
| Rule 7.2 | Readability | Yes | Compliant | |
| Rule 7.3 | Readability | Yes | Compliant | |
| Rule 7.4 | Required | Yes | Compliant | |
| Rule 7.5 | Mandatory | Yes | Compliant | |
Declarations and Definitions
| Rule | Category | Tested | Compliance | Remarks |
| Rule 8.1 | Required | Yes | Compliant | |
| Rule 8.2 | Required | Yes | Compliant | |
| Rule 8.3 | Required | Yes | Compliant | |
| Rule 8.4 | Advisory | Yes | Compliant | |
| Rule 8.5 | Advisory | Yes | Compliant | |
| Rule 8.6 | Required | Yes | Compliant | |
| Rule 8.8 | Required | Yes | Compliant | |
| Rule 8.9 | Advisory | Yes | Deviation | DEV-8.9-01, DEV-8.9-02, DEV-8.9-03, DEV-8.9-04, DEV-8.9-05, DEV-8.9-06 |
| Rule 8.10 | Required | Yes | Compliant | |
| Rule 8.11 | Advisory | Yes | Compliant | |
| Rule 8.12 | Required | Yes | Compliant | |
| Rule 8.14 | Advisory | Yes | Compliant | |
| Rule 8.15 | Required | Yes | Compliant | |
Initialization
| Rule | Category | Tested | Compliance | Remarks |
| Rule 9.1 | Mandatory | Yes | Compliant | |
| Rule 9.2 | Readability | Yes | Compliant | |
| Rule 9.3 | Readability | Yes | Compliant | |
| Rule 9.4 | Required | Yes | Compliant | |
| Rule 9.5 | Readability | Yes | Compliant | |
The Essential Type Model
| Rule | Category | Tested | Compliance | Remarks |
| Rule 10.1 | Advisory | Yes | Compliant | |
| Rule 10.2 | Advisory | Yes | Compliant | |
| Rule 10.3 | Advisory | Yes | Compliant | |
| Rule 10.4 | Advisory | Yes | Compliant | |
| Rule 10.5 | Advisory | Yes | Compliant | |
| Rule 10.6 | Advisory | Yes | Compliant | |
| Rule 10.7 | Advisory | Yes | Compliant | |
| Rule 10.8 | Advisory | Yes | Compliant | |
Pointer Type Conversion
| Rule | Category | Tested | Compliance | Remarks |
| Rule 11.1 | Required | Yes | Compliant | |
| Rule 11.2 | Required | Yes | Compliant | |
| Rule 11.3 | Required | Yes | Compliant | |
| Rule 11.5 | Advisory | Yes | Compliant | |
| Rule 11.6 | Required | Yes | Compliant | |
| Rule 11.7 | Required | Yes | Compliant | |
| Rule 11.8 | Required | Yes | Compliant | |
| Rule 11.9 | Readability | Yes | Compliant | |
Expressions
| Rule | Category | Tested | Compliance | Remarks |
| Rule 12.2 | Required | Yes | Compliant | |
| Rule 12.5 | Mandatory | Yes | Compliant | |
Side Effects
| Rule | Category | Tested | Compliance | Remarks |
| Rule 13.1 | Required | Yes | Compliant | |
| Rule 13.2 | Required | Yes | Compliant | |
| Rule 13.5 | Required | Yes | Compliant | |
| Rule 13.6 | Required | Yes | Compliant | |
Control Statement Expressions
| Rule | Category | Tested | Compliance | Remarks |
| Rule 14.1 | Advisory | Yes | Compliant | |
| Rule 14.2 | Readability | Yes | Compliant | |
| Rule 14.3 | Required | Yes | Compliant | |
| Rule 14.4 | Advisory | Yes | Compliant | |
Control Flow
| Rule | Category | Tested | Compliance | Remarks |
| Rule 15.2 | Advisory | Yes | Compliant | |
| Rule 15.3 | Advisory | Yes | Compliant | |
| Rule 15.6 | Required | Yes | Compliant | |
| Rule 15.7 | Readability | Yes | Compliant | |
Switch Statements
| Rule | Category | Tested | Compliance | Remarks |
| Rule 16.1 | Advisory | Yes | Compliant | |
| Rule 16.2 | Advisory | Yes | Compliant | |
| Rule 16.3 | Advisory | Yes | Compliant | |
| Rule 16.4 | Advisory | Yes | Compliant | |
| Rule 16.5 | Advisory | Yes | Compliant | |
| Rule 16.6 | Advisory | Yes | Compliant | |
| Rule 16.7 | Advisory | Yes | Compliant | |
Functions
| Rule | Category | Tested | Compliance | Remarks |
| Rule 17.1 | Required | Yes | Compliant | |
| Rule 17.2 | Required | Yes | Compliant | |
| Rule 17.3 | Mandatory | Yes | Compliant | |
| Rule 17.4 | Mandatory | Yes | Compliant | |
| Rule 17.5 | Required | Yes | Compliant | |
| Rule 17.6 | Mandatory | Yes | Compliant | |
| Rule 17.7 | Readability | Yes | Compliant | |
| Rule 17.9 | Mandatory | Yes | Compliant | |
| Rule 17.10 | Required | Yes | Compliant | |
| Rule 17.13 | Required | Yes | Compliant | |
Pointers and Arrays
| Rule | Category | Tested | Compliance | Remarks |
| Rule 18.1 | Required | Yes | Compliant | |
| Rule 18.2 | Required | Yes | Compliant | |
| Rule 18.3 | Required | Yes | Compliant | |
| Rule 18.6 | Required | Yes | Compliant | |
| Rule 18.7 | Required | Yes | Compliant | |
| Rule 18.8 | Required | Yes | Compliant | |
| Rule 18.9 | Required | Yes | Compliant | |
Overlapping Storage
| Rule | Category | Tested | Compliance | Remarks |
| Rule 19.1 | Mandatory | Yes | Compliant | |
| Rule 19.2 | Advisory | Yes | Compliant | |
Preprocessing Directives
| Rule | Category | Tested | Compliance | Remarks |
| Rule 20.1 | Advisory | Yes | Compliant | |
| Rule 20.2 | Required | Yes | Compliant | |
| Rule 20.3 | Required | Yes | Compliant | |
| Rule 20.4 | Required | Yes | Compliant | |
| Rule 20.6 | Required | Yes | Compliant | |
| Rule 20.7 | Required | Yes | Compliant | |
| Rule 20.8 | Required | Yes | Compliant | |
| Rule 20.9 | Required | Yes | Compliant | |
| Rule 20.11 | Required | Yes | Compliant | |
| Rule 20.12 | Required | Yes | Compliant | |
| Rule 20.13 | Required | Yes | Compliant | |
| Rule 20.14 | Required | Yes | Compliant | |
Standard Libraries
| Rule | Category | Tested | Compliance | Remarks |
| Rule 21.1 | Required | Yes | Compliant | |
| Rule 21.2 | Required | Yes | Compliant | |
| Rule 21.3 | Required | Yes | Compliant | |
| Rule 21.4 | Required | Yes | Compliant | |
| Rule 21.5 | Required | Yes | Compliant | |
| Rule 21.6 | Required | Yes | Compliant | |
| Rule 21.7 | Required | Yes | Compliant | |
| Rule 21.8 | Required | Yes | Compliant | |
| Rule 21.9 | Required | Yes | Compliant | |
| Rule 21.10 | Required | Yes | Compliant | |
| Rule 21.12 | Required | Yes | Compliant | |
| Rule 21.13 | Mandatory | Yes | Compliant | |
| Rule 21.14 | Required | Yes | Compliant | |
| Rule 21.15 | Required | Yes | Compliant | |
| Rule 21.16 | Required | Yes | Compliant | |
| Rule 21.17 | Mandatory | Yes | Compliant | |
| Rule 21.18 | Mandatory | Yes | Compliant | |
| Rule 21.19 | Mandatory | Yes | Compliant | |
| Rule 21.20 | Mandatory | Yes | Compliant | |
| Rule 21.21 | Required | Yes | Compliant | |
| Rule 21.22 | Mandatory | Yes | Compliant | |
| Rule 21.23 | Required | Yes | Compliant | |
| Rule 21.24 | Required | Yes | Compliant | |
Resources
| Rule | Category | Tested | Compliance | Remarks |
| Rule 22.1 | Required | Yes | Compliant | |
| Rule 22.2 | Mandatory | Yes | Compliant | |
| Rule 22.3 | Required | Yes | Compliant | |
| Rule 22.4 | Mandatory | Yes | Compliant | |
| Rule 22.5 | Mandatory | Yes | Compliant | |
| Rule 22.6 | Mandatory | Yes | Compliant | |
| Rule 22.7 | Required | Yes | Compliant | |
| Rule 22.8 | Required | Yes | Compliant | |
| Rule 22.9 | Required | Yes | Compliant | |
| Rule 22.10 | Required | Yes | Compliant | |
Generic Selections
| Rule | Category | Tested | Compliance | Remarks |
| Rule 23.2 | Required | Yes | Compliant | |
| Rule 23.4 | Required | Yes | Compliant | |
| Rule 23.6 | Required | Yes | Compliant | |
| Rule 23.8 | Required | Yes | Compliant | |