Cyclic redundancy check calculation unit (CRC) RM0091
62/742 Doc ID 018940 Rev 1
5 Cyclic redundancy check calculation unit (CRC)
5.1 Introduction
The CRC (cyclic redundancy check) calculation unit is used to get a CRC code from a 32-bit
data word and a generator polynomial.
Among other applications, CRC-based techniques are used to verify data transmission or
storage integrity. In the scope of the functional safety standards, they offer a means of
verifying the Flash memory integrity. The CRC calculation unit helps compute a signature of
the software during runtime, to be compared with a reference signature generated at link
time and stored at a given memory location.
5.2 CRC main features
● Uses CRC-32 (Ethernet) polynomial: 0x4C11DB7
. X
32
+ X
26
+ X
23
+ X
22
+ X
16
+ X
12
+ X
11
+ X
10
+X
8
+ X
7
+ X
5
+ X
4
+ X
2
+ X +1
● Handles 8,16, 32 bit data size
● Programmable CRC initial value
● Single input/output 32-bit data register
● Input buffer to avoid bus stall during calculation
● CRC computation done in 4 AHB clock cycles (HCLK) for 32-bit data
● General-purpose 8-bit register (can be used for temporary storage)
● Reversibility option on I/O data