1
\$\begingroup\$

The STM32's CRC calculation unit has a register named CRC_IDR. This 32 bit register allows the user to store 8bits of data. There seems to be no link between this register and rest of the CRC operation. Does this register have a purpose? Is there some aspect of computing 32 bit CRC that makes this 8bit register useful?

\$\endgroup\$
  • \$\begingroup\$ How does a 32-bit register store only 8 bits? \$\endgroup\$ – Dave Tweed Nov 23 '13 at 22:29
  • \$\begingroup\$ @DaveTweed it occupies a 32-bit location but only the bottom 8 bits are available to the user; the 24 MSB's are flagged as reserved. \$\endgroup\$ – markt Nov 23 '13 at 23:07
  • \$\begingroup\$ @HeskyFisher I can't see any explanation for it in the reference manual, beyond "can be used as a temporary storage location for 1 byte". \$\endgroup\$ – markt Nov 23 '13 at 23:09
1
\$\begingroup\$

According to their reference book

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 General-purpose 8-bit data register bits Can be used as a temporary storage location for one byte. This register is not affected by CRC resets generated by the RESET bit in the CRC_CR register.

I would guess they had plans when making the CRC in silicon to use 4 bytes and in the end only needed the upper 3.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.