当前位置:首页 >> 信息与通信 >>

AUTOSAR_SWS_CRCLibrary

Specification of CRC Routines V4.0.0 R4.0 Rev 1

Document Title
Document Owner Document Responsibility Document Identification No Document Classification Document Version Document Status Part of Release Revision

Specification of CRC Routines
AUTOSAR AUTOSAR 016 Standard 4.0.0 Final 4.0 1

Document Change History
Date 02.12.2009 Version Changed by 4.0.0 AUTOSAR Administration Change Description ? Introduction of a new CRC-8 with the polynomial 2Fh ? CRC-8 is now compliant to SAE J1850 ? Legal disclaimer revised ? Separated CRC requirements from Memory Services Requirements ? CRC8 management added ? Separated CRC requirements from Memory Services Requirements ? CRC8 management added ? Document meta information extended ? Small layout adaptations made ? “Advice for users” revised ? “Revision Information” added ? Crc_CalculateCRC16 and Crc_CalculateCRC32 APIs, Crc_DataPtr parameter : void pointer changed to uint8 pointer ? Legal disclaimer revised Document structure adapted to common Release 2.0 SWS Template. ? UML model introduction ? Requirements traceability update ? Reentrancy at calculating CRC with hardware support Initial Release

23.06.2008

3.0.1

AUTOSAR Administration AUTOSAR Administration AUTOSAR Administration AUTOSAR Administration AUTOSAR Administration

22.01.2008

3.0.0

31.10.2007 24.01.2007 15.12.2006

2.1.2 2.1.1 2.1.0

28.04.2006

2.0.0

AUTOSAR Administration

31.05.2005

1.0.0

AUTOSAR Administration

1 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 Disclaimer This specification and the material contained in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the companies that have contributed to it shall not be liable for any use of the specification. The material contained in this specification is protected by copyright and other types of Intellectual Property Rights. The commercial exploitation of the material contained in this specification requires a license to such Intellectual Property Rights. This specification may be utilized or reproduced without any modification, in any form or by any means, for informational purposes only. For any other purpose, no part of the specification may be utilized or reproduced, in any form or by any means, without permission in writing from the publisher. The AUTOSAR specifications have been developed for automotive applications only. They have neither been developed, nor tested for non-automotive applications. The word AUTOSAR and the AUTOSAR logo are registered trademarks.

Advice for users AUTOSAR specifications may contain exemplary items (exemplary reference models, "use cases", and/or references to exemplary technical solutions, devices, processes or software). Any such exemplary items are contained in the specifications for illustration purposes only, and they themselves are not part of the AUTOSAR Standard. Neither their presence in such specifications, nor any later documentation of AUTOSAR conformance of products actually implementing such exemplary items, imply that intellectual property rights covering such exemplary items are licensed under the same rules as applicable to the AUTOSAR Standard.

2 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

Table of Contents
1 2 3 Introduction and functional overview ................................................................... 5 Acronyms and abbreviations ............................................................................... 6 Related documentation........................................................................................ 7 3.1 3.2 4 4.1 4.2 5 6 7 5.1 Input documents........................................................................................... 7 Related standards and norms ...................................................................... 7 Limitations .................................................................................................... 8 Applicability to car domains.......................................................................... 8 File structure ................................................................................................ 9

Constraints and assumptions .............................................................................. 8

Dependencies to other modules.......................................................................... 9 Requirements traceability .................................................................................. 10 Functional specification ..................................................................................... 15 7.1 Basic Concepts of CRC Codes .................................................................. 15 7.1.1 Mathematical Description ....................................................................... 15 7.1.2 Euclidian Algorithm for Binary Polynomials and Bit-Sequences ............. 17 7.1.3 CRC calculation, Variations and Parameter ........................................... 18 7.2 Standard parameters.................................................................................. 18 7.2.1 8-bit CRC calculation .............................................................................. 19 7.2.1.1 8-bit SAE J1850 CRC Calculation................................................ 19 7.2.1.2 8-bit 0x2F polynomial CRC Calculation ....................................... 19 7.2.2 16-bit CRC calculation ............................................................................ 20 7.2.3 32-bit CRC calculation ............................................................................ 20 7.3 General behavior........................................................................................ 21 7.4 Error classification ...................................................................................... 21 7.5 Error detection............................................................................................ 21 7.6 Error notification ......................................................................................... 21 7.7 Version check............................................................................................. 21 7.8 Debugging concept .................................................................................... 21

8

API specification................................................................................................ 22 8.1 Imported types............................................................................................ 22 8.2 Type definitions .......................................................................................... 22 8.3 Function definitions .................................................................................... 22 8.3.1 8-bit CRC Calculation ............................................................................. 22 8.3.1.1 8-bit SAE J1850 CRC Calculation................................................ 22 8.3.1.2 8-bit 0x2F polynomial CRC Calculation ....................................... 23 8.3.2 16-bit CRC Calculation ........................................................................... 24 8.3.3 32-bit CRC Calculation ........................................................................... 25 8.3.4 Crc_GetVersionInfo ................................................................................ 25 8.4 Call-back notifications ................................................................................ 26 8.5 Scheduled functions ................................................................................... 26 8.6 Expected Interfaces.................................................................................... 26 8.6.1 Mandatory Interfaces .............................................................................. 26

3 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 8.6.2 Optional Interfaces.................................................................................. 26 8.6.3 Configurable interfaces........................................................................... 27 9 Sequence diagrams .......................................................................................... 28 9.1 9.2 9.3 9.4 10 Crc_CalculateCRC8 ()................................................................................ 28 Crc_CalculateCRC8H2F ()......................................................................... 28 Crc_CalculateCRC16()............................................................................... 28 Crc_CalculateCRC32()............................................................................... 29 Configuration specification............................................................................. 30

10.1 How to read this chapter ............................................................................ 30 10.1.1 Configuration and configuration parameters........................................... 30 10.1.2 Variants .................................................................................................. 30 10.1.3 Containers .............................................................................................. 30 10.2 Containers and configuration parameters .................................................. 31 10.2.1 Variants .................................................................................................. 31 10.2.2 Crc .......................................................................................................... 31 10.3 Published Information................................................................................. 33 11 11.1 11.2 11.3 11.4 Changes to Release 3 ................................................................................... 34 Deleted SWS Items .................................................................................... 34 Replaced SWS Items ................................................................................. 34 Changed SWS Items.................................................................................. 34 Added SWS Items ...................................................................................... 34

4 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

1 Introduction and functional overview
This specification specifies the functionality, API and the configuration of the AUTOSAR Basic Software module CRC. The CRC library contains the following routines for CRC calculation: ? CRC8 SAEJ1850 ? CRC8 0x2F polynomial ? CRC16 ? CRC32 For all routines (CRC8, CRC8H2F, CRC16 and CRC32), the following calculation methods are possible: ? Table based calculation: Fast execution, but larger code size (ROM table) ? Runtime calculation: Slower execution, but small code size (no ROM table) ? Hardware supported CRC calculation (device specific): Fast execution, less CPU time All routines are re-entrant and can be used by multiple applications at the same time. Hardware supported CRC calculation may be supported by some devices in the future.

5 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

2 Acronyms and abbreviations
Acronyms and abbreviations, which have a local scope and therefore are not contained in the AUTOSAR glossary, must appear in a local glossary.
Abbreviation / Acronym:
CRC ALU

Description:
Cyclic Redundancy Check Arithmetic Logic Unit

6 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

3 Related documentation
3.1 Input documents
[1] List of Basic Software Modules, AUTOSAR_TR_BSWModuleList.pdf [2] Layered Software Architecture, AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf [3] General Requirements on Basic Software Modules, AUTOSAR_SRS_BSWGeneral.pdf [4] Requirements on Libraries, AUTOSAR_SRS_Libraries.pdf [5] Specification of ECU Configuration, AUTOSAR_TPS_ECUConfiguration.pdf [6] A Painless Guide To CRC Error Detection Algorithms, Ross N. Williams [7] Basic Software Module Description Template, AUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf [8] Specification of Platform Types, AUTOSAR_SWS_PlatformTypes.pdf [9] Specification of Standard Types, AUTOSAR_SWS_StandardTypes.pdf [10] Specification of C Implementation Rules, AUTOSAR_TR_CImplementationRules.pdf

3.2 Related standards and norms
[7] SAE-J1850 8-bit CRC [8] CCITT 16-bit CRC [9] IEEE 802.3 Ethernet 32-bit CRC

7 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

4 Constraints and assumptions
4.1 Limitations
No known limitations.

4.2 Applicability to car domains
No restrictions.

8 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

5 Dependencies to other modules
5.1 File structure
CRC024: The Crc module shall provide the following files: ? C file Crc_xxx.c containing parts of CRC code ? An API interface Crc.h providing the function prototypes to access the library CRC functions ? A header file Crc_Cfg.h providing specific parameters for the CRC.

in c lu d e s

in c lu d e s

in c lu d e s

C rc _ x x x .c

C rc .h

C rc _ C fg .h

M e m M a p .h

Figure 1: File structure

CRC022: The Crc module shall comply with the following include file structure: ? Crc.h shall include Crc_Cfg.h and MemMap.h ? Crc_xxx.c shall include Crc.h

CRC023: Users of the Crc module (e.g. NVRAM Manager) shall only include Crc.

9 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

6 Requirements traceability
Document: General Requirements on Basic Software
Requirement
[BSW00344] Reference to link-time configuration

Satisfied by

Not applicable (no use case) [BSW00404] Reference to post build time configu- Not applicable ration (no use case) [BSW00405] Reference to multiple configuration Not applicable sets (no use case) [BSW00345] Storage of Pre-compile-time configu- CRC006 ration [BSW159] Tool-based configuration CRC006 [BSW167] Static configuration checking Requirement on configuration tool [BSW171]Configurability of optional functionality CRC006 [BSW170] Data for reconfiguration of AUTOSAR Not applicable SW-components (no use case) [BSW00380] Separate C-Files for configuration Not applicable parameters (no use case) [BSW00419] Separate C-Files for pre-compile CRC006 time configuration parameters [BSW00381] Separate H-Files for configuration CRC006 parameters [BSW00412] Separate H-File for configuration Not applicable parameters (no use case) [BSW00383] List dependencies of configuration Not applicable files (no use case) [BSW00384] List dependencies to other modules Not applicable (no use case) [BSW00387] Specify the configuration class of Not applicable callback function (no use case) [BSW00388] Introduce containers Not applicable (no use case) [BSW00389] Containers shall have names Not applicable (no use case) [BSW00390] Parameter content shall be unique CRC006 within the module [BSW00391] Parameter shall have unique names CRC006 [BSW00392] Parameters shall have a type CRC006 [BSW00393] Parameters shall have a range CRC006 [BSW00394] Specify the scope of the parameters CRC006 [BSW00395] List the required parameters (per Not applicable parameter) (no use case) [BSW00396] Configuration classes CRC006 [BSW00397] Pre-compile-time parameters CRC006 [BSW00398] Link-time parameters Not applicable (no use case) [BSW00399] Loadable Post-build time parameters Not applicable (no use case) [BSW00400] Selectable Post-build time parameNot applicable ters (no use case) [BSW00401] Creating multiplicity Not applicable (no use case) [BSW00402] Published information CRC005, CRC004 [BSW00375] Notification of wake-up reason Not applicable (no use case)
10 of 34 Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Requirement
[BSW101] Initialization interface [BSW00416] Sequence of Initialization [BSW00406] C-Initialization routine [BSW168] Diagnostic Interface of SW components [BSW00407] Function to read out published parameters [BSW00423] Usage of SW-C template to describe BSW modules with AUTOSAR Interfaces [BSW00424] BSW main processing function task allocation [BSW00425] Trigger conditions for schedulable objects [BSW00426] Exclusive areas in BSW modules [BSW00427] ISR description for BSW modules [BSW00428] Execution order dependencies of main processing functions [BSW00429] Restricted BSW OS functionality access [BSW00431] The BSW Scheduler module implements task bodies [BSW00432] Modules should have separate main processing functions for read/receive and write/transmit data path [BSW00433] Calling of main processing functions [BSW00434] The Schedule Module shall provide an API for exclusive areas [BSW00336] Shutdown interface [BSW00337] Classification of errors [BSW00338] Detection and Reporting of development errors [BSW00369] Do not return development error codes via API [BSW00339] Reporting of production relevant errors and exceptions [BSW00421] Reporting of production relevant error events [BSW00422] Debouncing of production relevant error status [BSW00420] Production relevant error event rate detection [BSW00417] Reporting of Error Events by NonBasic Software [BSW00323] API parameter checking [BSW003] Version identification [BSW004] Version check [BSW00409] Header files for production code error IDs [BSW00385] Configuration of error notifications
11 of 34

Satisfied by
Not applicable (no use case) Not applicable (no use case) Not applicable (no use case) Not applicable (no use case) CRC011, CRC012 Not applicable (CRC is not part of service layer) Not applicable (no use case) Not applicable (no use case) CRC008 Not applicable (no use case) Not applicable (no use case) Not applicable (no use case) Not applicable (no use case) Not applicable (no use case) Not applicable (no use case) Not applicable (to be defined in Schedule module SWS) Not applicable (no use case) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module) CRC004 CRC005, CRC004 Not applicable (no error reported by CRC module) Not applicable (no error reported by CRC module)
Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Requirement
[BSW00386] How errors shall be detected [BSW00318] Format of module version numbers [BSW161] Microcontroller abstraction

Satisfied by
Not applicable (no error reported by CRC module) CRC004 Not applicable (Requirement on AUTOSAR architecture, not a single module) Not applicable (Requirement on AUTOSAR architecture, not a single module) Not applicable (architecture decision) Not applicable (Requirement on AUTOSAR architecture, not a single module) Not applicable (CRC doesn't provide restricted access for several modules) Not applicable (this module doesn't implement any ISR) Not applicable (this module doesn't implement any ISR) Not applicable (this module doesn't implement any ISR) Not applicable (Requirement on AUTOSAR architecture, not a single module) Not applicable (no configurable timings) Not applicable (Requirement on documentation, not on specification) Not applicable (Requirement on implementation, not on specification) Chapter 5.1 Conflict: This requirement will have impact on almost all BSW modules, therefore it can not be implemented within the Release 2.0 timeframe. Not applicable (Requirement on implementation, not on specification) Not applicable (no data type definition in this specification) Not applicable (Requirement on implementation, not on specification) Chapter 8.3 Not applicable (no main function available) Not applicable (no error reported by CRC module) Not applicable (no status values available) Not applicable (no error reported by CRC module) Chapter 10

[BSW162] ECU layout abstraction

[BSW324] Do not use HIS I/O Library [BSW005] No hard coded horizontal interfaces within MCAL [BSW00415] User dependent include files

[BSW164] Implementation of interrupt service routines [BSW00325] Runtime of interrupt service routines [BSW00326] Transition from ISRs to OS tasks [BSW00342] Usage of source code and object code [BSW00343] Specification and configuration of time [BSW160] Human-readable configuration data

[BSW007] HIS MISRA C

[BSW00300] Module naming convention [BSW00413] Accessing instances of BSW modules [BSW00347] Naming separation of different instances of BSW drivers [BSW00305] Self-defined data types naming convention [BSW00307] Global variables naming convention

[BSW00310] API naming convention [BSW00373] Main processing function naming convention [BSW00327] Error values naming convention [BSW00335] Status values naming convention [BSW00350] Development error detection keyword [BSW00408] Configuration parameter naming convention
12 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Requirement
[BSW00410] Compiler switches shall have defined values [BSW00411] Get version info keyword [BSW00346] Basic set of module files [BSW158] Separation of configuration from implementation [BSW00314] Separation of interrupt frames and service routines [BSW00370] Separation of callback interface from API

Satisfied by
Not applicable (this module doesn't implement any compiler switch) CRC011, Chapter 10 Chapter 5.1 Chapter 5.1

Not applicable (this module doesn't implement any ISR) Not applicable (this module doesn't implement any callback function) [BSW00348] Standard type header Not applicable (this module simply includes the standard type header via the module header file) [BSW00353] Platform specific type header Not applicable (this module simply includes the standard type header via the module header file) [BSW00361] Compiler specific language extenNot applicable sion header (this module simply includes the standard type header via the module header file) [BSW00301] Limit imported information Chapter 5.1 [BSW00302] Limit exported information Not applicable (Requirement on the implementation, not on the specification) [BSW00328] Avoid duplication of code Not applicable (Requirement on the implementation, not on the specification) [BSW00312] Shared code shall be reentrant Not applicable (Requirement on the implementation, not on the specification) [BSW006] Platform independency Not applicable (Requirement on the implementation, not on the specification) [BSW00357] Standard API return type Chapters 8.2, 8.1 [BSW00377] Module specific API return types Chapter 8.2 [BSW00304] AUTOSAR integer data types Not applicable (Requirement on implementation, not for specification) [BSW00355] Do not redefine AUTOSAR integer Not applicable data types (Requirement on implementation, not for specification) [BSW00378] AUTOSAR boolean type Not applicable (Requirement on implementation, not for specification) [BSW00306] Avoid direct use of compiler and Not applicable platform specific keywords (Requirement on implementation, not for specification) [BSW00308] Definition of global data Not applicable (Requirement on implementation, not for specification) [BSW00309] Global data with read-only constraint Not applicable (Requirement on implementation, not for specification) [BSW00371] Do not pass function pointers via API Not applicable (no function pointers in this specification) [BSW00358] Return type of init() functions Not applicable (no init function in this specification)
13 of 34 Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Requirement
[BSW00414] Parameter of init function

Satisfied by

Not applicable (no init function in this specification) [BSW00376] Return type and parameters of main Not applicable processing functions7 (no main processing function in this specification) [BSW00359] Return type of callback functions Not applicable (no callback function in this specification) [BSW00360] Parameters of callback functions Not applicable (no callback function in this specification) [BSW00329] Avoidance of generic interfaces Chapter 8.3 [BSW00330] Usage of macros / inline functions Not applicable instead of functions Requirement on implementation, not for specification) [BSW00331] Separation of error and status values Not applicable (no error and status values) [BSW009] Module User Documentation Not applicable (Requirement on documentation, not on specification) [BSW00401] Documentation of multiple instances Chapter 10 of configuration parameters [BSW172] Compatibility and documentation of Not applicable scheduling strategy (no scheduling in this specification) [BSW010] Memory resource documentation Not applicable (Requirement on documentation, not on specification) [BSW00333] Documentation of callback function Not applicable context (no callback function in this specification) [BSW00374] Module vendor identification CRC004 [BSW00379] Module identification CRC004 [BSW003] Version identification CRC004 [BSW00318] Format of module version numbers CRC004 [BSW00321] Enumeration of module version Not applicable numbers (Requirement on implementation, not for specification) [BSW00341] Microcontroller compatibility docuNot applicable mentation (Requirement on documentation, not on specification) [BSW00334] Provision of XML file Not applicable (Requirement on documentation, not on specification) [BSW00436] Module Header File Structure for the Chapter 5 Basic Software Memory Mapping

Document: Requirements on CRC Routines
Requirement
[BSW08518] CRC calculation method complexity [BSW08520] CRC routine reentrancy [BSW08521] CRC routine schedulability [BSW08524] Error detection [BSW08525] Support of standard polynomials [BSW08526] CRC Standard calculation methods

Satisfied by
CRC001 CRC008 CRC008 CRC007 CRC002, CRC003 CRC001

14 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

7 Functional specification
7.1 Basic Concepts of CRC Codes
7.1.1 Mathematical Description Let D be a bitwise representation of data with a total number of n bit, i.e. D = (dn-1, dn-2, dn-3, … , d1, d0), with d0,d1,… = 0b,1b. The corresponding Redundant Code C is represented by n+k bit as C =(D, R)= (dn-1, dn-2, dn-3, … , d2, d1, d0, rk-1, … , r2, r1, r0 ) with r0, r1,… = 0b,1b and R = (rk-1, … , r2, r1, r0 ) The code is simply a concatenation of the data and the redundant part. (For our application, we will chose k = 16, 32 and n as a multiple of 16 resp. 32). CRC-Algorithms are related to polynomials with coefficients in the finite field of two element, using arithmetic operations ? and * according to the following tables. The ? operation is identified as the binary operation exclusive-or, that is usually available in the ALU of any CPU.

?
0b 1b

0b 0b 1b

1b 1b 0b

* 0b 1b

0b 0b 0b

1b 0b 1b

For simplicity, we will write ab instead of a*b We introduce some examples for polynomials with coefficients in the field of two elements and give the simplified notation of it. (ex. 1) (ex. 2) p1(X) = 1b X3 + 0b X2 + 1b X1 + 0b X0 = X3
+

X

p2(X) = 1b X2 + 1b X1 + 1b X0 = X2 + X1 + 1b

Any code word, represented by n+k bit can be mapped to a polynomial of order n+k-1 with coefficients in the field of two elements. We use the intuitive mapping of the bits i.e. C(X) = dn-1Xk+n-1 + dn-2Xk+n-2 + … + d2Xk+2 + d1Xk+1 + d0 Xk + rk-1Xk-1 + rk-2Xk-2 + … r1 X + r0 C(X) = Xk(dn-1Xn-1 + dn-2Xn-2 + … + d2X2 + d1X1 + d0) + rk-1Xk-1 + rk-2Xk-2 + … r1 X + r0
15 of 34 Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 C(X) = Xk D(X) ? R(X) This mapping is one-to-one. A certain space CRCG of Cyclic Redundant Code Polynomials is defined to be a multiple of a given Generator Polynomial G(X) = Xk + gk-1 Xk-1 + gk-2 Xk-2 + … + g2 X2 + g1 X + g0. By definition, for any code polynomial C(X) in CRCG there is a polynomial M(X) with C(X) = G(X) M(X). For a fixed irreducible (i.e. prime-) polynomial G(X), the mapping M(X) ? C(X) is one-to-one. Now, how are data of a given codeword verified? This is basically a division of polynomials, using the Euclidian Algorithm. In practice, we are not interested in M(X), but in the remainder of the division, C(X) mod G(X). For a correct code word C, this remainder has to be zero, C(X) mod G(X) = 0. If this is not the case – there is an error in the codeword. Given G(X) has some additional algebraic properties, one can determine the error-location and correct the codeword. Calculating the code word from the data can also be done with the Euclidian Algorithm. For a given data polynomial D(x) = dn-1Xn-1 + dn-2Xn-2 + … + d1X1 + d0 and the corresponding code polynomial C(X) we have C(X) = Xk D(X) ? R(X) = M(X) G(X) Performing the operation “mod G(X)” on both sides, one obtains 0 = C(X) mod G(X) = [Xk D(X)] mod G(X) ? R(X) mod G(X) (*) We denote that the order of the Polynomial R(X) is less than the order of G(X), so the modulo division gives zero with remainder R(X): R(X) mod G(X) = R(X). For polynomial R(X) with coefficients in the finite field with two elements we have the remarkable property R(X) + R(X) = 0. If we add R(X) on both sides of equation (*) we obtain R(X) = Xk D(X) mod G(X). The important implication is that the redundant part of the requested code can be determined by using the Euclidian Algorithm for polynomials. At present, any CRC calculation method is a more or less sophisticated variation of this basic algorithm. Up to this point, the propositions on CRC Codes are summarized as follows: 1. The construction principle of CRC Codes is based on polynomials with coefficients in the finite field of two elements. The ? operation of this field is identical to the binary operation “xor” (exclusive or) 2. There is a natural mapping of bit-sequences into this space of polynomials.
16 of 34 Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 3. Both calculation and verification of the CRC code polynomial is based on division modulo a given generator polynomial. 4. This generator polynomial has to have certain algebraic properties in order to achieve error-detection and eventually error-correction.

7.1.2 Euclidian Algorithm for Binary Polynomials and Bit-Sequences Given a Polynomial Pn(X) = pnXn +pn-1Xn-1 + … + p2X2 + p1X + p0 with coefficients in the finite field of two elements. Let Q(X) = Xk + qk-1 Xk-1 + qk-2 Xk-2 + … + q2 X2 + q1 X + q0 be another polynomial of exact order k>0. Let Rn(X) be the remainder of the polynomial division of maximum order k-1 and Mn(X) corresponding so that Rn(X) ? Mn(X) Q(X) = Pn(X). Euclidian Algorithm - Recursive (Termination of recursion) If n < k, then choose Rn(X) = Pn(X) and Mn = 0. (Recursion n+1 ? n) Let Pn+1(X) be of maximum order n+1. If n+1>= k calculate Pn(X) = Pn+1(X) – pn+1 Q(X) Xn-k+1. This polynomial is of maximum order n. Then Pn+1(X) mod Q(X) = Pn(X) mod Q(X). Proof of recursion Choose Rn+1(X) = Pn+1(X) mod Q(X) and Mn+1(X) so that Rn+1(X) ? Mn+1(X) Q(X) = Pn+1(X). Then Rn+1(X) - Rn(X) = Pn+1(X) - Mn+1(X) Q(X) - Pn(X) ? Mn(X) Q(X). With Pn+1(X) - Pn(X) = pn+1 Q(X) Xn-k+1 we obtain Rn+1(X) - Rn(X) = pn+1 Q(X) Xn-k+1 + Mn(X) Q(X) - Mn+1(X) Q(X) Rn+1(X) - Rn(X) = Q(X) [pn+1 Xn-k+1 + Mn(X) - Mn+1(X)] On the left side, there is a polynomial of maximum order k-1. On the right side Q(X) is of exact order k. This implies that both sides are trivial and equal to zero. One obtains Rn+1(X) = Rn(X) Mn+1(X) = Mn(X) + pn+1 Xn-k+1
(end of proof)

(1) (2)

17 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 Example P(X) = P4(X) = X4 + X2 + X + 1b; Q(X) = X2 + X + 1b; n = 4; k = 2 P3(X) = X4 + X2 + X + 1b – 1b(X2 + X + 1b) X2 = X3 + X + 1b. P2(X) = X3 + X + 1b – 1b X (X2 + X + 1b) = X2 + 1b. P1(X) = X2 + 1 – 1b (X2 + X + 1) = X R(X) = P(X) mod Q(X) = R1(X) = P1(X) = X. 7.1.3 CRC calculation, Variations and Parameter Based on the Euclidian Algorithm, some variations have been developed in order to improve the calculation performance. All these variations do not improve the capability to detect or correct errors – the so-called Hamming Distance of the resulting code is determined only by the generator polynomial. Variations simply optimize for different implementing ALUs. CRC-Calculation methods are characterized as follows: 1. Rule for Mapping of Data to a bit sequence (dn-1, dn-2, dn-3, … , d1, d0) and the corresponding data polynomial D(X) (standard or reflected data). 2. Generator polynomial G(X) 3. Start value and corresponding Polynomial S(X) 4. Appendix A(X), also called XOR-value for modifying the final result. 5. Rule for mapping the resulting CRC-remainder R(X) to codeword. (Standard or reflected data) The calculation itself is organized in the follwing steps ? Map Data to D(X) ? Perform Euclidian Algorithm on Xk D(X) + Xn-k-1 S(X) + A(X) and determine R(X) = [ Xk D(X) + Xn-k-1 S(X) + A(X)] mod G(X) ? Map D(X), R(X) to codeword

7.2 Standard parameters
This section gives a rough overview on the standard parameters which are commonly used for 8-bit, 16-bit and 32-bit CRC calculation. ? ? ? ?
18 of 34

CRC result width:

Defines the result data width of the CRC calculation. Defines the generator polynomial which is used for the CRC algorithm. Defines the start condition for the CRC algorithm. Defines whether the bits of each input byte are reflected before being processed.
Document ID 016: AUTOSAR_SWS_CRCLibrary

Polynomial:

Initial value: Input data reflected:

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 ? Result data reflected: Similar to “Input data reflected” this parameter defines whether the bits of the CRC result are reflected. This Value is XORed to the final register value before the value is returned as the official checksum. The CRC checking process calculates the CRC over the entire data block, including the CRC result. An error-free data block will always result in the unique constant polynomial -representing the 'Check' value XORed with XOR value- regardless of the data block content.

?

XOR value:

?

Check:

Example: calculation of SAE-J1850 CRC8 (see detailled parameters in CRC030) over data bytes 0x00 0x00 0x00 0x00: ? CRC generation: CRC over 0x00 0x00 0x00 0x00, start value 0xFF: o CRC-result = 0x59 ? CRC check: CRC over 0x00 0x00 0x00 0x00 0x59, start value 0xFF: o CRC-result = 0x3B o CRC-result = ‘Check’ XORed with ‘XOR value’: 0x3B = 0xC4 xor 0xFF 7.2.1 8-bit CRC calculation 7.2.1.1 8-bit SAE J1850 CRC Calculation CRC030: The Crc_CalculateCRC8() function of the CRC module shall implement the CRC8 routine based on the SAE-J1850 CRC8 Standard: CRC result width: Polynomial: Initial value: Input data reflected: Result data reflected: XOR value: Check: 8 bits 1Dh FFh No No FFh C4h

7.2.1.2 8-bit 0x2F polynomial CRC Calculation CRC042: The Crc_CalculateCRC8H2F() function of the CRC module shall implement the CRC8 routine based on the generator polynomial 0x2F: CRC result width: Polynomial: Initial value: Input data reflected: Result data reflected:
19 of 34

8 bits 2Fh FFh No No
Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 XOR value: Check: FFh 42h

7.2.2 16-bit CRC calculation CRC002: The CRC module shall implement the CRC16 routine based on the CCITT CRC16 Standard: CRC result width: 16 bits Polynomial: 1021h Initial value: FFFFh Input data reflected: No Result data reflected: No XOR value: 0000h Check: 29B1h

7.2.3 32-bit CRC calculation CRC003: The CRC module shall implement the CRC32 routine based on the IEEE802.3 CRC32 Ethernet Standard: CRC result width: Polynomial: Initial value: Input data reflected: Result data reflected: XOR value: Check: 32 bits 04C11DB7h FFFFFFFFh Yes Yes FFFFFFFFh CBF43926h

20 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

7.3 General behavior
Data blocks are passed to the CRC routines using the parameters “start address”, “size” and “start value”. The return value is the CRC result.

7.4 Error classification
The CRC library functions do not provide any error classification. CRC recalculation and comparison must be done by each module in the upper layer (e.g. NVRAM Manager).

7.5 Error detection
The CRC library functions do not provide any error detection mechanism.

7.6 Error notification
The CRC library functions do not provide any error notification.

7.7 Version check
CRC005: Crc.c shall check if the correct version of Crc.h is included. This shall be done by a preprocessor check of the version number CRC_MAJOR_VERSION and
CRC_MINOR_VERSION.

7.8 Debugging concept
CRC036: Each variable that shall be accessible by AUTOSAR Debugging, shall be defined as global variable. CRC037: All type definitions of variables which shall be debugged, shall be accessible by the header file CrC.h. CRC038: The declaration of variables in the header file shall be such, that it is possible to calculate the size of the variables by C-"sizeof". CRC039: Variables available for debugging shall be described in the respective Basic Software Module Description.

21 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

8 API specification
8.1 Imported types
In this chapter all types included from the following files are listed: CRC018:
Module Std_Types Imported Type Std_VersionInfoType

8.2 Type definitions
None.

8.3 Function definitions
CRC013: If CRC routines are to be used as a library, the CRC modules’ implementer shall develop the CRC module in a way that only those parts of the CRC code that are used by other modules are linked into the final binary. CRC041: When calculating a CRC-result in a single call, the call should use ‘Initial value’ as start value. CRC014: When calculating a CRC-result using multiple calls, the first call should use ‘Initial value’ as start value and then for subsequent calls, the start value shall be the result of the previous call XORed with ‘XOR value’. Example: calculation of SAE-J1850 CRC8 (see detailled parameters in CRC030) over data bytes 0x00 0x00 0x00 0x00: ? In one function call, CRC over 0x00 0x00 0x00 0x00, start value 0xFF: ? CRC-result = 0x59 (final value) ? In two function calls: o CRC over 0x00 0x00, start value 0xFF: ? CRC-result of first call = 0xBE (intermediate value) o CRC over 0x00 0x00, start value: 0xBE xor XOR value (0xFF) = 0x41 CRC-result of final call = 0x59 (final value)

8.3.1 8-bit CRC Calculation 8.3.1.1 8-bit SAE J1850 CRC Calculation CRC031:
Service name: Syntax:
22 of 34

Crc_CalculateCRC8 uint8 Crc_CalculateCRC8(
Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
const uint8* Crc_DataPtr, uint32 Crc_Length, uint8 Crc_StartValue8 Service ID[hex]: Sync/Async: Reentrancy: Parameters (in): ) 0x01 Synchronous Reentrant Crc_DataPtr Crc_Length Crc_StartValue8 None

Pointer to start address of data block to be calculated. Length of data block to be calculated in bytes. Start value when the algorithm starts.

Parameters (inout): Parameters (out): None 8 bit result of CRC calculation. uint8 Return value: This service makes a CRC8 calculation on Crc_Length data bytes, with SAE Description: J1850 parameters

CRC032: The function Crc_CalculateCRC8 shall perform a CRC8 calculation on Crc_Length data bytes, pointed to by Crc_DataPtr, with the starting value of Crc_StartValue8. CRC033: If the CRC calculation within the function Crc_CalculateCRC8 is performed by hardware, then the CRC module’s implementer shall ensure reentrancy of this function by implementing a (software based) locking mechanism. Note: If large data blocks have to be calculated (>32 bytes, depending on performance of processor platform), the table based calculation method should be configured for the function Crc_CalculateCRC8 in order to decrease the calculation time. The function Crc_CalculateCRC8 requires specification of configuration parameters defined in CRC006. 8.3.1.2 8-bit 0x2F polynomial CRC Calculation CRC043:
Service name: Syntax: Crc_CalculateCRC8H2F uint8 Crc_CalculateCRC8H2F( const uint8* Crc_DataPtr, uint32 Crc_Length, uint8 Crc_StartValue8H2F ) 0x05 Synchronous Reentrant Crc_DataPtr Pointer to start address of data block to be calculated. Crc_Length Length of data block to be calculated in bytes. Crc_StartValue8H2F Start value when the algorithm starts. None

Service ID[hex]: Sync/Async: Reentrancy: Parameters (in):

Parameters (inout): Parameters (out): None 8 bit result of CRC calculation. uint8 Return value: This service makes a CRC8 calculation with the Polynomial 0x2F on Crc_Length Description:
23 of 34 Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 CRC044: The function Crc_CalculateCRC8H2F shall perform a CRC8 calculation with the polynomial 0x2F on Crc_Length data bytes, pointed to by Crc_DataPtr, with the starting value of Crc_StartValue8H2F. CRC045: If the CRC calculation within the function Crc_CalculateCRC8H2F is performed by hardware, then the CRC module’s implementer shall ensure reentrancy of this function by implementing a (software based) locking mechanism. Note: If large data blocks have to be calculated (>32 bytes, depending on performance of processor platform), the table based calculation method should be configured for the function Crc_CalculateCRC8H2F in order to decrease the calculation time. The function Crc_CalculateCRC8H2F requires specification of configuration parameters defined CRC006.

8.3.2 16-bit CRC Calculation CRC019:
Service name: Syntax: Crc_CalculateCRC16 uint16 Crc_CalculateCRC16( const uint8* Crc_DataPtr, uint32 Crc_Length, uint16 Crc_StartValue16 ) 0x02 Synchronous Reentrant Crc_DataPtr Pointer to start address of data block to be calculated. Crc_Length Length of data block to be calculated in bytes. Crc_StartValue16 Start value when the algorithm starts. None

Service ID[hex]: Sync/Async: Reentrancy: Parameters (in):

Parameters (inout): Parameters (out): None 16 bit result of CRC calculation. uint16 Return value: This service makes a CRC16 calculation on Crc_Length data bytes. Description:

CRC015: The function Crc_CalculateCRC16 shall perform a CRC16 calculation on Crc_Length data bytes, pointed to by Crc_DataPtr, with the starting value of Crc_StartValue16. CRC009: If the CRC calculation within the function Crc_CalculateCRC16 is performed by hardware, then the CRC module’s implementer shall ensure reentrancy of this function by implementing a (software based) locking mechanism. Note: If large data blocks have to be calculated (>32 bytes, depending on performance of processor platform), the table based calculation method should be configured for the function Crc_CalculateCRC16 in order to decrease the calculation time.
24 of 34 Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 The function Crc_CalculateCRC16 requires specification of configuration parameters defined in CRC006.

8.3.3 32-bit CRC Calculation CRC020:
Service name: Syntax: Crc_CalculateCRC32 uint32 Crc_CalculateCRC32( const uint8* Crc_DataPtr, uint32 Crc_Length, uint32 Crc_StartValue32 ) 0x03 Synchronous Reentrant Crc_DataPtr Pointer to start address of data block to be calculated. Crc_Length Length of data block to be calculated in bytes. Crc_StartValue32 Start value when the algorithm starts. None

Service ID[hex]: Sync/Async: Reentrancy: Parameters (in):

Parameters (inout): Parameters (out): None 32 bit result of CRC calculation. uint32 Return value: This service makes a CRC32 calculation on Crc_Length data bytes. Description:

CRC016: The function Crc_CalculateCRC32 shall perform a CRC32 calculation on Crc_Length data bytes, pointed to by Crc_DataPtr, with the starting value of Crc_StartValue32. CRC010: If the CRC calculation within the function Crc_CalculateCRC32 is performed by hardware, then the CRC module’s implementer shall ensure reentrancy of this function by implementing a (software based) locking mechanism. Note: If large data blocks have to be calculated (>32 bytes, depending on performance of processor platform), the table based calculation method should be configured for the function Crc_CalculateCRC32 in order to decrease the calculation time. The function Crc_CalculateCRC32 requires specification of configuration parameters defined in CRC006.

8.3.4 Crc_GetVersionInfo CRC021:
Service name: Syntax: Crc_GetVersionInfo void Crc_GetVersionInfo( Std_VersionInfoType* Versioninfo ) 0x04 Synchronous
Document ID 016: AUTOSAR_SWS_CRCLibrary

Service ID[hex]: Sync/Async:
25 of 34

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Reentrancy: Parameters (in): Parameters (inout): Parameters (out): Return value: Description: Non Reentrant None None Versioninfo Pointer to where to store the version information of this module. None This service returns the version information of this module.

CRC011: The function Crc_GetVersionInfo shall return the version information of the CRC module. The version information includes: - Module Id - Vendor Id - Vendor specific version numbers (BSW00407). CRC012: The function Crc_GetVersionInfo shall be pre-compile time configurable On/Off by the configuration parameter CRC_VERSION_INFO_API. CRC017: If source code for caller and callee of the function Crc_GetVersionInfo is available, the CRC module should realize this function as a macro, defined in the modules header file.

8.4 Call-back notifications
None.

8.5 Scheduled functions
This chaper lists all functions called directly by the Basic Software Module Scheduler. The Crc module does not have scheduled functions.

8.6 Expected Interfaces
In this chapter, all interfaces required from other modules are listed.

8.6.1 Mandatory Interfaces None

8.6.2 Optional Interfaces None.

26 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1 8.6.3 Configurable interfaces None.

27 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

9 Sequence diagrams
9.1 Crc_CalculateCRC8 ()
The following diagram shows the synchronous function call Crc_CalculateCRC8.
:User ?module? :Crc

Crc_CalculateCRC8(uint8, cons t uint8*, uint32, uint8)

Crc_CalculateCRC8()

Status : propos ed (as per SW S Crc 1.1.16) Des cription: Crc_CalculateCRC8() is performed s ynchronous ly. The res ult is returned within the function call.

9.2 Crc_CalculateCRC8H2F ()
The following diagram Crc_CalculateCRC8H2F.
:Us er

shows

the

synchronous

function

call

?module? :Crc

Crc_CalculateCRC8H2F(uint8, const uint8*, uint32, uint8)

Crc_CalculateCRC8H2F()

Status : propos ed (as per SW S Crc 1.1.16) Des cription: Crc_CalculateCRC8H2F() is performed s ynchronous ly. The res ult is returned within the function call.

9.3 Crc_CalculateCRC16()
The following diagram shows the synchronous function call Crc_CalculateCRC16.

28 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Generic Elements::User ?module? Crc::Crc

Crc_CalculateCRC16(uint16, const uint8*, uint32, uint16)

Crc_CalculateCRC16()

Status: proposed (as per SWS Crc 1.1.6) Description: Crc_Calculate16/32() is performed synchronously. The result is returned with the function call.

9.4 Crc_CalculateCRC32()
The following diagram shows the synchronous function call Crc_CalculateCRC32.
Generic Elements::User ?module? Crc::Crc

Crc_CalculateCRC32(uint32, const uint8*, uint32, uint32)

Crc_CalculateCRC32()

Status: proposed (as per SWS Crc 1.1.6) Description: Crc_Calculate16/32() is performed synchronously. The result is returned with the function call.

29 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

10 Configuration specification
10.1 How to read this chapter
In addition to this section, it is highly recommended to read the documents: - AUTOSAR Layered Architecture [2] - AUTOSAR ECU Configuration Specification [5]: This document describes the AUTOSAR configuration methodology and the AUTOSAR configuration metamodel in detail. The following is only a short survey of the topic and it will not replace the ECU Configuration Specification document.

10.1.1 Configuration and configuration parameters Configuration parameters define the variability of the generic part(s) of an implementation of a module. This means that only generic or configurable module implementation can be adapted to the environment (software/hardware) in use during system and/or ECU configuration. The configuration of parameters can be achieved at different times during the software process: before compile time, before link time or after build time. In the following, the term “configuration class” (of a parameter) shall be used in order to refer to a specific configuration point in time.

10.1.2 Variants Variants describe sets of configuration parameters. E.g., variant 1: only pre-compile time configuration parameters; variant 2: mix of pre-compile- and post build timeconfiguration parameters. In one variant a parameter can only be of one configuration class.

10.1.3 Containers Containers structure the set of configuration parameters. This means: - all configuration parameters are kept in containers. - (sub-) containers can reference (sub-) containers. It is possible to assign a multiplicity to these references. The multiplicity then defines the possible number of instances of the contained parameters.

30 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

10.2 Containers and configuration parameters
The following chapters summarize all configuration parameters. The detailed meanings of the parameters are described in Chapters 7 and Chapter 8.

10.2.1 Variants
CRC040: VARIANT-PRE-COMPILE: allowed in this variant. Only parameters with "Pre-compile time" configuration are

10.2.2 Crc
Module Name Module Description Included Containers Container Name CrcGeneral CrcPublishedInformation Crc Configuration of the Crc (Crc routines) module.

Multiplicity Scope / Dependency 1 General configuration of CRC module Additional published parameters not covered by CommonPublishedInformation container. Note that these parameters do not 1 have any configuration class setting, since they are published information.

CrcGeneral SWS Item

CRC006_Conf : CrcGeneral{CRC_COMMON} Container Name General configuration of CRC module Description Configuration Parameters SWS Item Name Description Multiplicity Type Range CRC025_Conf : Crc16Mode {CRC_16_MODE} Switch to select one of the available CRC16 calculation methods. 1 EcucEnumerationParamDef CRC_16_HARDWARE hardware based CRC16 calculation CRC_16_RUNTIME runtime based CRC16 calculation CRC_16_TABLE table based CRC16 calculation (default selection) X All Variants Pre-compile time -Link time -Post-build time

ConfigurationClass

Scope / Dependency SWS Item Name Description Multiplicity Type Range CRC026_Conf : Crc32Mode {CRC_32_MODE} Switch to select one of the available CRC32 calculation methods. 1 EcucEnumerationParamDef CRC_32_HARDWARE hardware based CRC32 calculation CRC_32_RUNTIME runtime based CRC32 calculation CRC_32_TABLE table based CRC32 calculation (default selection) X All Variants Pre-compile time
Document ID 016: AUTOSAR_SWS_CRCLibrary

ConfigurationClass
31 of 34

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1
Link time Post-build time Scope / Dependency SWS Item Name Description CRC027_Conf : CrcVersionInfoApi {CRC_VERSION_INFO_API} Pre-processor switch to enable / disable the API to read out the modules version information. true: Version info API enabled. false: Version info API disabled. 1 EcucBooleanParamDef -X All Variants Pre-compile time -Link time -Post-build time ---

Multiplicity Type Default value ConfigurationClass

Scope / Dependency No Included Containers

32 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

10.3 Published Information
[CRC001_PI] The standardized common published parameters as required by BSW00402 in the General Requirements on Basic Software Modules [3] shall be published within the header file of this module and need to be provided in the BSW Module Description. The according module abbreviation can be found in the List of Basic Software Modules [1]. Additional module-specific published parameters are listed below if applicable.

33 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -

Specification of CRC Routines V4.0.0 R4.0 Rev 1

11 Changes to Release 3
11.1 Deleted SWS Items
No deleted SWS items.

11.2 Replaced SWS Items
SWS Item CRC026 by CRC030 CRC027 by CRC031 CRC028 by CRC032 CRC029 by CRC033 Rationale CRC026 item identifier was duplicated CRC027 item identifier was duplicated CRC028 item identifier was duplicated CRC029 item identifier was duplicated

11.3 Changed SWS Items
SWS Item CRC021 CRC030 CRC014 CRC034 Rationale Asterisk is missing for pointer parameter in Crc_GetVersionInfo() CRC8 parameters changed CRC calculation with splitted blocks example Crc8Mode range definitions needs to be changed

11.4 Added SWS Items
SWS Item CRC034 CRC035 CRC036 CRC037 CRC038 CRC039 CRC040 CRC041 CRC042 CRC043 CRC044 CRC045 CRC046 CRC047 CRC001_PI Rationale Gave ID to existing text Gave ID to existing text Add Debugging concept Add Debugging concept Add Debugging concept Add Debugging concept Change of Variant requirement descriptions required CRC calculation on a single call Crc_CalculateCRC8H2F polynomial parameters Crc_CalculateCRC8H2F API description Crc_CalculateCRC8H2F function description Crc_CalculateCRC8H2F hardware implementation description Crc8H2FMode configuration parameter description CrcInitialValue8H2F configuration parameter description Rework of Published Information

34 of 34

Document ID 016: AUTOSAR_SWS_CRCLibrary

- AUTOSAR confidential -


相关文章:
更多相关标签: