ULINK2 User's Guide

Verify

Summary
unsigned long Verify (
  unsigned long adr,           /* Start address */
  unsigned long sz,            /* Size in bytes */
  unsigned char *buf);         /* Data          */
Description

The Verify function compares the content of the Flash memory with the program code *buf.

Return Value

The Verify function returns:

  • the sum of (adr+sz) - on success.
  • any other number - on failure, and represents the failing address.

 

Example
unsigned long Verify (unsigned long adr, unsigned long sz, unsigned char *buf) {
  unsigned long i, adr_dest, in_page_ofs;

  if (adr < block_size) {               // Verifying 2-nd level bootloader data
    adr_dest = adr + page_usr_size;     // skip page 0 of block 0
  } else {                              // Verifying program data
    FindBlock(adr, 0);
    adr_dest  = nand_block_offset + (adr & (block_size-1));
  }
  in_page_ofs = adr_dest & (page_usr_size-1);

  if (ReadPage_HW(adr_dest, page_usr_size, data_buf)) return (1);
  for (i=0; i<sz; i++)
    if (buf[i] != data_buf[i+in_page_ofs])
      break;

  return (adr+i);
}

Complete example exists in folder \KEIL\ARM\FLASH\LPC31xx_NAND_LP.