DRV_W25_BlockErase Function

C

bool DRV_W25_BlockErase( const DRV_HANDLE handle, uint32_t address );

Summary

Erase a block from the specified block start address.

Description

This function schedules a non-blocking block erase operation of Flash memory. The block size can be 8 KB, 32 KB or 64 KB.

The requesting client should call DRV_W25_TransferStatusGet() API to know the current status of the request.

Preconditions

The DRV_W25_Open() routine must have been called for the specified W25 driver instance.

Parameters

ParametersDescription
handleA valid open-instance handle, returned from the driver's open routine
addressBlock start address to be erased

Returns

True:

  • if the erase request is successfully sent to the Flash

False:

  • if Write enable fails before sending sector erase command to Flash
  • if block erase command itself fails

Example

DRV_HANDLE handle; // Returned from DRV_W25_Open
uint32_t blockStart = 0;

if(DRV_W25_SectorErase(handle, blockStart) == false)
{
    // Error handling here
}

// Wait for erase to be completed
while(DRV_W25_TransferStatusGet(handle) == DRV_W25_TRANSFER_BUSY);

Remarks

This routine will block wait until erase request is submitted successfully.

Client should wait until erase is complete to send next transfer request.