BG96 how to count CRC32, CRC16, CRC CCITT

Hello.

Does anybody have solution and can share with me the way how to count CRC32 or CRC16 or CRC CCITT?
Sunshine's Homepage - Online CRC Calculator Javascript <— here I can calculate CRC but what is the Polynominal, Initial Value and Final XOR Value?

AT+QFCRC=“fw.bin”
+QFCRC: 0xFE75C21C,0x25B6,0x73F7
OK

We calculate the CRC 2048bytes each cycle, please calculate crc with this method and test.

do
{
size_left = (readlen > FLASH_PAGE_SIZES) ? FLASH_PAGE_SIZES : readlen;
ret = efs_read(file_handle, buf_prt, size_left); //read size_left <= 2048 every time
if (ret == size_left)

{ crc_32= crc_32_calc(buf_prt, (uint16)size_left * 8, crc_32); //calculate crc with length of size_left (<= 2048) every time readlen -= FLASH_PAGE_SIZES; }
}while(size_left == FLASH_PAGE_SIZES);

Limited by this size (2048 bytes), That is the root cause that the different between the our AT and CRCtools caculated in your PC .

Whenever digital data is stored or interfaced, data corruption might occur. Since the beginning of computer science, people have been thinking of ways to deal with this type of problem. For serial data they came up with the solution to attach a parity bit to each sent byte. This simple detection mechanism works if an odd number of bits in a byte changes, but an even number of false bits in one byte will not be detected by the parity check. To overcome this problem people have searched for mathematical sound mechanisms to detect multiple false bits. The CRC calculation or cyclic redundancy check was the result of this. Nowadays CRC calculations are used in all types of communications. All packets sent over a network connection are checked with a CRC. Also each data block on your hard-disk has a CRC value attached to it. Modern computer world cannot do without these CRC calculation. So let’s see why they are so widely used. The answer is simple, they are powerful, detect many types of errors and are extremely fast to calculate especially when dedicated hardware chips are used.

See my reply to the other thread, here: