1.1.3.4.9 DRV_MEMORY_SyncEraseWrite Function
C
bool DRV_MEMORY_SyncEraseWrite ( const DRV_HANDLE handle, void *sourceBuffer, uint32_t blockStart, uint32_t nBlock );
Summary
Erase and Write data for the specified number of memory blocks in Synchronous mode.
Description
This function combines the step of erasing a sector and then writing the page. The application can use this function if it wants to avoid having to explicitly delete a sector in order to update the pages contained in the sector.
This function schedules a blocking operation to erase and write blocks of data into attached device memory.
Precondition
The DRV_MEMORY_Open() must have been called with DRV_IO_INTENT_WRITE or DRV_IO_INTENT_READWRITE as a parameter to obtain a valid opened device handle.
Parameters
Param | Description |
---|---|
handle | A valid open-instance handle, returned from the driver's open function |
sourceBuffer | The source buffer containing data to be programmed into media device memory |
blockStart | block start where the write should begin. |
nBlock | Total number of blocks to be written. |
Returns
true
If the transfer request is successfully completed.
false
If the sourceBuffer pointer is NULL
If the client opened the driver for read only
If the number of blocks to be written is either zero or more than the number of blocks actually available
If the driver handle is invalid
Example
#define BUFFER_SIZE 4096 uint8_t buffer[BUFFER_SIZE]; // Use DRV_MEMORY_GeometryGet () to find the write region geometry. uint32_t blockStart = 0x0; uint32_t nBlock = BUFFER_SIZE / block_size; // block_size for write geometry // memoryHandle is the handle returned by the DRV_MEMORY_Open function. if(DRV_MEMORY_SyncEraseWrite(memoryHandle, &myBuffer, blockStart, nBlock) == false) { // Error handling here }
Remarks
This API is supported only in RTOS environment.