Cyclic Redundancy Check#

Functions that provide access to cyclic redundancy code (CRC) calculation.

See crc.h for source code.

Functions#

uint16_t
halCommonCrc16(uint8_t newByte, uint16_t prevResult)

Calculates 16-bit cyclic redundancy code (CITT CRC 16).

uint32_t
halCommonCrc32(uint8_t newByte, uint32_t prevResult)

Calculates 32-bit cyclic redundancy code.

Macros#

#define
INITIAL_CRC 0xFFFFFFFFL
#define
CRC32_START INITIAL_CRC
#define
CRC32_END 0xDEBB20E3L

Function Documentation#

halCommonCrc16#

uint16_t halCommonCrc16 (uint8_t newByte, uint16_t prevResult)

Calculates 16-bit cyclic redundancy code (CITT CRC 16).

Parameters
N/AnewByte

The new byte to be run through CRC.

N/AprevResult

The previous CRC result.

Applies the standard CITT CRC 16 polynomial to a single byte. It should support being called first with an initial value, then repeatedly until all data is processed.

Returns

  • The new CRC result.


Definition at line 43 of file platform/service/legacy_hal/inc/crc.h

halCommonCrc32#

uint32_t halCommonCrc32 (uint8_t newByte, uint32_t prevResult)

Calculates 32-bit cyclic redundancy code.

Parameters
N/AnewByte

The new byte to be run through CRC.

N/AprevResult

The previous CRC result.

Note

  • On some radios or micros, the CRC for error detection on packet data is calculated in hardware.

Applies a CRC32 polynomial to a single byte. It should support being called first with an initial value, then repeatedly until all data is processed.

Returns

  • The new CRC result.


Definition at line 60 of file platform/service/legacy_hal/inc/crc.h

Macro Definition Documentation#

INITIAL_CRC#

#define INITIAL_CRC
Value:
0xFFFFFFFFL

Definition at line 63 of file platform/service/legacy_hal/inc/crc.h

CRC32_START#

#define CRC32_START
Value:
INITIAL_CRC

Definition at line 64 of file platform/service/legacy_hal/inc/crc.h

CRC32_END#

#define CRC32_END
Value:
0xDEBB20E3L

Definition at line 65 of file platform/service/legacy_hal/inc/crc.h