Jump to main content

##

# 1.1.13.2.1 How the Library Works

The sst26 driver library is a single-client, single-instance based driver interface.

Abstraction Model

The SST26 driver interface provides read, write and Erase functions that abstract out the internal workings of the SST26 driver and the underlying QSPI/SQI/SPI protocol.

The client can be:

- Application - Directly access the SST26 Flash using the APIs provided by the SST26 Driver library

- Memory Driver - Application can run a file system on the SST26 Flash by connecting it to the Memory Driver which can further be connected to the File System Service

Working flow

- The SST26 Driver performs initialization and puts the driver to ready state. This status of the driver can be checked using DRV_SST26_Status()

- The SST26 driver library performs set of flash operations during DRV_SST26_Open(). If any of the below flash operations fails, an invalid Handle will be returned. DRV_SST26_Open() can be repeatedly called until it returns a valid handle.

  - Resets the Flash
  - Configures the flash device to QUAD IO Mode if underlying peripheral library is running in QSPI/SQI mode
  - Unlocks the flash if it has been opened in write mode

- When the client requests for device geometry, it queries for the JEDEC-Id and populates the geometry table DRV_SST26_GEOMETRY appropriately.

- The driver does not support queuing of more than one requests. The application must check and ensure that any previous request is completed before submitting a new one. This can be done by polling the status of data transfer using DRV_SST26_TransferStatusGet()