7.3.4 NVM CRC
The NVM Controller features a CRC-32 checksum function that can calculate or verify checksums over multiple 4kB Flash pages, including user programs, user data or information Flash. This function helps ensure the correct programming or erasure of Flash pages by operating at a rate of one 32-bit word per system clock cycle. It allows for integrity checks without exposing the contents of the Flash, as security controls can restrict data reads while permitting CRC checks. The CRC function's address granularity prevents it from revealing protected region contents.
Additionally, the CRC function can detect ECC errors without triggering a CPU trap with ECC DED events during CRC calculations resulting in a manageable CRC error.
- The initial value set in the CRCSEED register with each bit inverted
- No input or output reflection required
- The final XOR value of 0xFFFF_FFFF
For standard CRC-32 calculations, the NVMCRCSEED register is set to 0xFFFF_FFFF. This register is also used for multi-segment calculations to indicate the current CRC state. Flash data are processed using little-endian byte ordering.