manually merged with ARM version

This commit is contained in:
2025-11-13 17:43:55 +03:00
parent f978759ae0
commit 04015fb4cb
463 changed files with 119514 additions and 45 deletions

View File

@ -0,0 +1,75 @@
/*================================================================================================*
* Контрольные суммы CRC-16 и CRC-32 с повышенной скоростью вычислений
*================================================================================================*/
#ifndef FAST_CRC_H_
#define FAST_CRC_H_
#include "fast_crc_cfg.h"
#ifdef __cplusplus
extern "C" {
#endif
/*================================================================================================*/
/* Вычисление CRC16 (CCITT, 0x1021) */
#if FASTCRC_CRC16_ADD8
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Add8 /* Добавление байта */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
FASTCRC_U8_TYPE byte /* (вх) - данные */
);
/*------------------------------------------------------------------------------------------------*/
#endif
#if FASTCRC_CRC16_ADD16
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Add16 /* Добавление 16-битного слова (младший байт первым) */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
FASTCRC_U16_TYPE word /* (вх) - данные */
);
/*------------------------------------------------------------------------------------------------*/
#endif
#if FASTCRC_CRC16_BLOCK8
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Block8 /* Вычисление CRC16 блока байтов */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
const FASTCRC_U8_TYPE* pdata, /* (вх) - данные */
FASTCRC_SIZE_TYPE num_bytes /* (вх) - размер данных */
);
/*------------------------------------------------------------------------------------------------*/
#endif
#if FASTCRC_CRC16_BLOCK16
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U16_TYPE CRC16_Block16 /* Вычисление CRC16 блока 16-битных слов */
(
FASTCRC_U16_TYPE crc, /* (вх) - начальное значение */
const FASTCRC_U16_TYPE* pdata, /* (вх) - данные */
FASTCRC_SIZE_TYPE num_words /* (вх) - размер данных */
);
/*------------------------------------------------------------------------------------------------*/
#endif
/* Вычисление CRC32 (CCITT) */
#if FASTCRC_CRC32_BLOCK8
/*------------------------------------------------------------------------------------------------*/
FASTCRC_U32_TYPE CRC32_Block8 /* Вычисление CRC32 блока байтов */
(
FASTCRC_U32_TYPE crc, /* (вх) - начальное значение (при первом блоке 0) */
const FASTCRC_U8_TYPE* pdata, /* (вх) - данные */
FASTCRC_SIZE_TYPE num_bytes /* (вх) - размер данных */
);
/*------------------------------------------------------------------------------------------------*/
#endif
/*================================================================================================*/
#ifdef __cplusplus
}
#endif
#endif /* FAST_CRC_H_ */