annotate crc_wrapper.cpp @ 11:6fba58c4964b

Minor changes done by automatic style checker
author Ideenmodellierer
date Mon, 12 Jan 2026 13:57:24 +0000
parents 115cfa4a3239
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
1 #include "crc_wrapper.h"
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
2
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
3 extern "C" {
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
4 #include "crcmodel.h"
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
5 }
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
6
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
7 CrcWrapper::CrcWrapper(QObject *parent)
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
8 : QObject(parent)
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
9 {}
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
10
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
11 void CrcWrapper::init(p_cm_t p_cm)
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
12 {
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
13 cm_ini(p_cm);
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
14 }
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
15
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
16 void CrcWrapper::cm_next(p_cm_t p_cm, int ch)
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
17 {
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
18 cm_nxt(p_cm, ch);
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
19 }
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
20
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
21 uint32_t CrcWrapper::CRC_CalcBlockCRC(uint32_t *buffer, uint32_t words)
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
22 {
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
23 cm_t crc_model;
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
24 uint32_t word_to_do;
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
25 uint8_t byte_to_do;
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
26 int i;
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
27
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
28 // Values for the STM32F generator.
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
29
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
30 crc_model.cm_width = 32; // 32-bit CRC
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
31 crc_model.cm_poly = 0x04C11DB7; // CRC-32 polynomial
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
32 crc_model.cm_init = 0xFFFFFFFF; // CRC initialized to 1's
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
33 crc_model.cm_refin = FALSE; // CRC calculated MSB first
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
34 crc_model.cm_refot = FALSE; // Final result is not bit-reversed
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
35 crc_model.cm_xorot = 0x00000000; // Final result XOR'ed with this
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
36
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
37 cm_ini(&crc_model);
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
38
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
39 while (words--) {
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
40 // The STM32F10x hardware does 32-bit words at a time!!!
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
41
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
42 word_to_do = *buffer++;
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
43
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
44 // Do all bytes in the 32-bit word.
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
45
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
46 for (i = 0; i < sizeof(word_to_do); i++) {
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
47 // We calculate a *byte* at a time. If the CRC is MSB first we
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
48 // do the next MS byte and vica-versa.
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
49
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
50 if (crc_model.cm_refin == FALSE) {
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
51 // MSB first. Do the next MS byte.
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
52
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
53 byte_to_do = (uint8_t) ((word_to_do & 0xFF000000) >> 24);
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
54 word_to_do <<= 8;
11
6fba58c4964b Minor changes done by automatic style checker
Ideenmodellierer
parents: 5
diff changeset
55 } else {
5
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
56 // LSB first. Do the next LS byte.
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
57
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
58 byte_to_do = (uint8_t) (word_to_do & 0x000000FF);
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
59 word_to_do >>= 8;
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
60 }
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
61
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
62 cm_nxt(&crc_model, byte_to_do);
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
63 }
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
64 }
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
65
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
66 // Return the final result.
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
67
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
68 return (cm_crc(&crc_model));
115cfa4a3239 Added icon upload function for OSTC 4/5
Ideenmodellierer
parents:
diff changeset
69 }