1 Introduction

Test Name: Flash Memory Test

Purpose of test: Detect all single bit faults in Flash memory

Description: A cyclic redundancy check (CRC) is an error detection technique used to find accidental errors in invariable memory. This method is commonly used to determine the data present in the Flash memory and the correctness of its transmission. The test computes a checksum of the data in Flash and stores it in another location in Flash. To detect errors, a new checksum is computed on the same data and compared with the previous one. If they are different, an error has occurred.
  • Two commonly used CRC standards are supported:
    • 16-bit CRC CCITT

    • 32-bit CRC

  • Two software implementations are supported:
    • Look-up Table (LUT): This uses a CRC look-up table to speed up the computations. The look-up table requires 512 (for 16-bit) or 1024 (for 32-bit) bytes of Flash memory.

    • Direct computation: This calculates the checksum for each byte using a polynomial division. This version occupies no space in the Flash memory but is slower than the look-up table method.

Note that the AoUs listed in the Assumption of Use section below shall be followed to ensure correct operation. The Examples section shows how to follow some of the AoUs for different use cases and different devices.

API Documentation: FLASH - 16-bit CRC FLASH - 32-bit CRC