# CARD_ProgramAndVerifyFlash

## Syntax

  `#include <nitro/card.h>`
  `static inline BOOL CARD_ProgramAndVerifyFlash(u32 dst, const void *src, u32 len);`

## Arguments

dst | The FLASH address of the transfer destination.
src | Transfer source memory address.
len | Byte length of data being written.

## Return Values

TRUE if the process succeeds and the data are the same. FALSE otherwise.

## Description

This function writes data to the FLASH device, and then performs a comparison on that written data. The function does not return control until it has finished processing. If the process succeeds and the data matches, the function returns TRUE. Otherwise, it returns FALSE. To get the detailed result value when processing fails, call the `CARD_GetResultCode` function.

You must use the `CARD_EraseFlashSector` function in advance to erase the contents of the region specified as the destination for writing with this function. We cannot guarantee integrity of the data written to a region that has not been erased.For certain kinds of flash devices you can use the `CARD_WriteFlash` function, which has fewer restrictions than this function.

To use this function, you must first lock the access bus with the `CARD_LockBackup` function.

## Internal Operation

This function communicates with the ARM7 processor internally via PXI.
The process will not end if PXI interrupts are not enabled.

## See Also

`CARD_WaitBackupAsync, CARD_GetResultCode, CARD_IsBackupFlash, CARD_ProgramFlash, CARD_ProgramFlashAsync, CARD_ProgramAndVerifyFlash, CARD_ProgramAndVerifyFlashAsync, CARD_EraseFlashSector, CARD_EraseFlashSectorAsync, CARD_WriteFlashSector, CARD_WriteFlashSectorAsync, CARD_WriteAndVerifyFlashSector, CARD_WriteAndVerifyFlashSectorAsync, CARD_ReadFlash, CARD_WriteFlash, CARD_WriteAndVerifyFlash, CARD_VerifyFlash, CARD_GetThreadPriority`

## Revision History

2007/08/22 Initial version.

CONFIDENTIAL