Zephyr API Documentation
2.7.0-rc2
A Scalable Open Source RTOS
|
Functions | |
uint16_t | crc16 (const uint8_t *src, size_t len, uint16_t polynomial, uint16_t initial_value, bool pad) |
Generic function for computing CRC 16. More... | |
uint8_t | crc8 (const uint8_t *src, size_t len, uint8_t polynomial, uint8_t initial_value, bool reversed) |
Generic function for computing CRC 8. More... | |
uint16_t | crc16_ccitt (uint16_t seed, const uint8_t *src, size_t len) |
Compute the CRC-16/CCITT checksum of a buffer. More... | |
uint16_t | crc16_itu_t (uint16_t seed, const uint8_t *src, size_t len) |
Compute the CRC-16/XMODEM checksum of a buffer. More... | |
static uint16_t | crc16_ansi (const uint8_t *src, size_t len) |
Compute ANSI variant of CRC 16. More... | |
uint32_t | crc32_ieee (const uint8_t *data, size_t len) |
Generate IEEE conform CRC32 checksum. More... | |
uint32_t | crc32_ieee_update (uint32_t crc, const uint8_t *data, size_t len) |
Update an IEEE conforming CRC32 checksum. More... | |
uint32_t | crc32_c (uint32_t crc, const uint8_t *data, size_t len, bool first_pkt, bool last_pkt) |
Calculate CRC32C (Castagnoli) checksum. More... | |
uint8_t | crc8_ccitt (uint8_t initial_value, const void *buf, size_t len) |
Compute CCITT variant of CRC 8. More... | |
uint8_t | crc7_be (uint8_t seed, const uint8_t *src, size_t len) |
Compute the CRC-7 checksum of a buffer. More... | |
uint16_t crc16 | ( | const uint8_t * | src, |
size_t | len, | ||
uint16_t | polynomial, | ||
uint16_t | initial_value, | ||
bool | pad | ||
) |
#include <include/sys/crc.h>
Generic function for computing CRC 16.
Compute CRC 16 by passing in the address of the input, the input length and polynomial used in addition to the initial value.
src | Input bytes for the computation |
len | Length of the input in bytes |
polynomial | The polynomial to use omitting the leading x^16 coefficient |
initial_value | Initial value for the CRC computation |
pad | Adds padding with zeros at the end of input bytes |
#include <include/sys/crc.h>
Compute ANSI variant of CRC 16.
ANSI variant of CRC 16 is using 0x8005 as its polynomial with the initial value set to 0xffff.
src | Input bytes for the computation |
len | Length of the input in bytes |
#include <include/sys/crc.h>
Compute the CRC-16/CCITT checksum of a buffer.
See ITU-T Recommendation V.41 (November 1988). Uses 0x1021 as the polynomial, reflects the input, and reflects the output.
To calculate the CRC across non-contiguous blocks use the return value from block N-1 as the seed for block N.
For CRC-16/CCITT, use 0 as the initial seed. Other checksums in the same family can be calculated by changing the seed and/or XORing the final value. Examples include:
seed | Value to seed the CRC with |
src | Input bytes for the computation |
len | Length of the input in bytes |
#include <include/sys/crc.h>
Compute the CRC-16/XMODEM checksum of a buffer.
The MSB first version of ITU-T Recommendation V.41 (November 1988). Uses 0x1021 as the polynomial with no reflection.
To calculate the CRC across non-contiguous blocks use the return value from block N-1 as the seed for block N.
For CRC-16/XMODEM, use 0 as the initial seed. Other checksums in the same family can be calculated by changing the seed and/or XORing the final value. Examples include:
seed | Value to seed the CRC with |
src | Input bytes for the computation |
len | Length of the input in bytes |
#include <include/sys/crc.h>
Calculate CRC32C (Castagnoli) checksum.
crc | CRC32C checksum that needs to be updated. |
*data | Pointer to data on which the CRC should be calculated. |
len | Data length. |
first_pkt | Whether this is the first packet in the stream. |
last_pkt | Whether this is the last packet in the stream. |
#include <include/sys/crc.h>
Generate IEEE conform CRC32 checksum.
*data | Pointer to data on which the CRC should be calculated. |
len | Data length. |
#include <include/sys/crc.h>
Update an IEEE conforming CRC32 checksum.
crc | CRC32 checksum that needs to be updated. |
*data | Pointer to data on which the CRC should be calculated. |
len | Data length. |
#include <include/sys/crc.h>
Compute the CRC-7 checksum of a buffer.
See JESD84-A441. Used by the MMC protocol. Uses 0x09 as the polynomial with no reflection. The CRC is left justified, so bit 7 of the result is bit 6 of the CRC.
seed | Value to seed the CRC with |
src | Input bytes for the computation |
len | Length of the input in bytes |
uint8_t crc8 | ( | const uint8_t * | src, |
size_t | len, | ||
uint8_t | polynomial, | ||
uint8_t | initial_value, | ||
bool | reversed | ||
) |
#include <include/sys/crc.h>
Generic function for computing CRC 8.
Compute CRC 8 by passing in the address of the input, the input length and polynomial used in addition to the initial value.
src | Input bytes for the computation |
len | Length of the input in bytes |
polynomial | The polynomial to use omitting the leading x^8 coefficient |
initial_value | Initial value for the CRC computation |
reversed | Should we use reflected/reversed values or not |
#include <include/sys/crc.h>
Compute CCITT variant of CRC 8.
Normal CCITT variant of CRC 8 is using 0x07.
initial_value | Initial value for the CRC computation |
buf | Input bytes for the computation |
len | Length of the input in bytes |