1.9 Memory Driver Asynchronous - SST26 QSPI Flash Read Write

This example application shows how to use the Memory driver in asynchronous mode of operation in both RTOS and Bare-Metal environment on the SST26 QSPI flash media.

Description

This application uses Memory driver to communicate with the SST26 QSPI flash memories in asynchronous mode of operation in Bare-Metal environment and RTOS environment.

It performs block Erase/Write/Read operations on QSPI flash media.

The application consists of three tasks which are called through the SYS_Tasks() routine in Bare-Metal environment and though RTOS thread context in RTOS environment.

DRV_MEMORY_0_Tasks(): Manages the state machine of the Memory driver instance 0.

APP_SST26_Tasks(): Performs operations on the SST26 QSPI Flash memory.

APP_MONITOR_Tasks(): Monitors the state of above Task.

Downloading and Building the Application

To clone or download this application from Github, go to the main page of this repository and then click Clone button to clone this repository or download as zip file. This content can also be downloaded using content manager by following these instructions.

Path of the application within the repository is apps/driver/memory/async/sst26_read_write/firmware.

To build the application, refer to the following table and open the project using its IDE.

Project NameDescription
sama5d29_curiosity.XMPLABX project for SAMA5D29 Curiosity Development Board
sama5d29_curiosity_freertos.XMPLABX project for SAMA5D29 Curiosity Development Board

Setting Up AT91Bootstrap loader

To load the application binary onto the target device, we need to use at91bootstrap loader. Refer to the at91bootstrap loader documentation for details on how to configure, build and run bootstrap loader project and use it to bootstrap the application binaries.

Setting Up the Hardware

The following table shows the target hardware for the application projects.

Project NameDescription
sama5d29_curiosity.XSAMA5D29 Curiosity Development Board

sama5d29_curiosity_freertos.X

SAMA5D29 Curiosity Development Board

Setting Up SAMA5D29 Curiosity Development Board

  • Connect the USB_A port on board to the computer using a USB-C type cable.
  • Make sure that the jumper J10 is connected

Running the Application

  1. Build and program the application using its IDE
  2. LED is turned ON when the data read from each media matches with the data written in them
Refer to the following table for LED name:
BoardLED Name
SAMA5D29 Curiosity Development BoardRGB_LED (Green)