Ich verwende beim stm32 den Hardware-CRC32 Check basierend auf das
0x04C11DB7 Polynom. Leider finde ich nichts brauchbares für C#, was mir
die gleichen Ergebnisse liefert. Die Funktion im uC Programm sieht
folgendermaßen aus:
1 | uint32_t
|
2 | crc32_check (char *buf, uint16_t len) {
|
3 |
|
4 | uint32_t* pBuffer = buf;
|
5 | uint32_t BufferLength = (len / 4);
|
6 | uint32_t index = 0;
|
7 |
|
8 | if(!CRCenabledFlag) {
|
9 | RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
|
10 | }
|
11 | CRC_ResetDR();
|
12 |
|
13 | for(index = 0; index < BufferLength; index++) {
|
14 | CRC->DR = pBuffer[index];
|
15 | }
|
16 | return CRC->DR;
|
17 | }
|
Hat jemand zufällig C# oder C Code, mit dem man auf das gleiche Ergebnis
kommt? Ich muss CRC-32/BZIP2 konforme Prüfsummen erstellen und diese
ebenfalls im STM32 auf richtigkeit prüfen.