diag_sram_status_t DIAG_SRAM_Checkerboard (uint16_t startAddress, uint16_t length, uint16_t bufferAddress)

**The Checkerboard test implements the Periodic Static memory test (H.2.19.6) defined by the IEC 60730 standard. **

The Checkerboard RAM test writes the checkerboard patterns to a sequence of adjacent memory locations. This test is performed in units (memory chunks) of 4 bytes. This is a non-destructive memory test. This test performs the following major tasks:
  1. 1.

    Saves the contents of the memory locations to be tested in the buffer defined by bufferAddress.

  2. 2.

    Writes the binary value (length is dependent upon architecture) 101010... to the memory location, ā€˜Nā€™, and the inverted binary value, 010101..., to the memory location, ā€˜N+1ā€™, and so on, until the whole memory chunk is filled.

  3. 3.

    Reads the contents of all the memory locations in the current chunk and verifies its contents. If the values match, the function continues; otherwise it stops and returns an error.

  4. 4.

    Step 2 and 3 are repeated by writing the inverted pattern to the same locations.

  5. 5.

    Once a memory chunk is completed the test of the next chunk is started until all of the requested memory area is tested.

in startAddress

- pointer to an array declared in user memory for test [in] length - number of bytes to test [in] bufferAddress - pointer to location in memory where array will be stored during test


SRAM_OK - Success, SRAM_ERROR - Failure