Jump to main content

##

# DRV_W25_Read Function

## C

    bool DRV_W25_Read( const DRV_HANDLE handle, void *rx_data, uint32_t rx_data_length, uint32_t address );

## Summary

Reads n bytes of data from the specified start address of flash memory.

## Description

This function schedules a blocking operation for reading requested number of data bytes from the flash memory.

## Precondition

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

## Parameters

Param | Description
--- | ---
handle | A valid open-instance handle, returned from the driver's open routine
*rx_data | Buffer pointer into which the data read from the W25 Flash memory will be placed.
rx_data_length | Total number of bytes to be read.
address | Read memory start address from where the data should be read.

## Returns

true - if number of bytes requested are read from flash memory

false - if read command itself fails

## Example

    #define BUFFER_SIZE  1024
    #define MEM_ADDRESS  0x0

    DRV_HANDLE handle;  // Returned from DRV_W25_Open
    uint8_t CACHE_ALIGN readBuffer[BUFFER_SIZE];

    if (DRV_W25_Read(handle, (void *)&readBuffer, BUFFER_SIZE, MEM_ADDRESS) == false)
    {
        // Error handling here
    }

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

## Remarks

This routine will block waiting until read request is completed successfully.