5.6 MISRA Compliance

Library modules source code is compliant with the ‘Required’ rule set of MISRA 2004, with the following exceptions:
Table 5-2. AVR® MCU Acquisition Modules and Exceptions
Acquisition Modules of ATmega32xPB, ATtiny81x, ATtiny161x, ATtiny321x Devices
MISRA Rule Definition Remarks
1.1 All code shall conform to ISO 9899:1990 Programming languages – C, amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2:1996 The compiler is configured to allow extensions
8.5 There shall be no definitions of objects or functions in a header file Inline functions are used in the header files
17.4 Array indexing shall be the only allowed form of pointer arithmetic The pointer of module data structures is passed as a parameter and individual object data are fetched by iterating the data structure as an array index
Table 5-3. AVR® Postprocessing Modules and Exceptions
Touch_key, Binding Layer, Frequency Hop Auto Tune, Frequency Hop, Scroller, 2D Touch Surface and Gesture
MISRA Rule Definition Remarks
17.4 Array indexing shall be the only allowed form of pointer arithmetic The pointer of module data structures is passed as a parameter and individual object data are fetched by iterating the data structure as an array index
Table 5-4. Arm® Acquisition Modules and Postprocessing Modules
Modules
MISRA Rule Definition Remarks
1.1 All code shall conform to ISO 9899:1990 Programming languages – C, amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2:1996 The compiler is configured to allow extensions
17.4 Array indexing shall be the only allowed form of pointer arithmetic The pointer of module data structures is passed as a parameter and individual object data are fetched by iterating the data structure as an array index