HSPI::MemoryDevice Class Referenceabstract

Base class for read/write addressable devices. More...

#include <MemoryDevice.h>

Inheritance diagram for HSPI::MemoryDevice:
Collaboration diagram for HSPI::MemoryDevice:

Public Member Functions

virtual size_t getSize () const =0
 
void write (uint32_t address, const void *data, size_t len)
 Write a block of data. More...
 
void write (Request &req, uint32_t address, const void *data, size_t len, Callback callback=nullptr, void *param=nullptr)
 
void write8 (uint32_t address, uint8_t value)
 
void write8 (Request &req, uint32_t address, uint8_t value, Callback callback=nullptr, void *param=nullptr)
 
void write16 (uint32_t address, uint16_t value)
 
void write16 (Request &req, uint32_t address, uint16_t value, Callback callback=nullptr, void *param=nullptr)
 
void write32 (uint32_t address, uint32_t value)
 
void write32 (Request &req, uint32_t address, uint32_t value, Callback callback=nullptr, void *param=nullptr)
 
void writeWord (Request &req, uint32_t address, uint32_t value, unsigned byteCount)
 
void read (uint32_t address, void *buffer, size_t len)
 Read a block of data. More...
 
uint8_t read8 (uint32_t address)
 
uint16_t read16 (uint32_t address)
 
uint32_t read32 (uint32_t address)
 
uint32_t readWord (uint32_t address, unsigned byteCount)
 
void read (Request &req, uint32_t address, void *buffer, size_t len, Callback callback=nullptr, void *param=nullptr)
 
 Device (Controller &controller)
 
Prepare a write request
virtual void prepareWrite (HSPI::Request &req, uint32_t address)=0
 Prepare request without data. More...
 
void prepareWrite (HSPI::Request &req, uint32_t address, const void *data, size_t len)
 Prepare request with data. More...
 
Prepare a read request
virtual void prepareRead (HSPI::Request &req, uint32_t address)=0
 Prepare without buffer. More...
 
void prepareRead (HSPI::Request &req, uint32_t address, void *buffer, size_t len)
 Prepare with buffer. More...
 
- Public Member Functions inherited from HSPI::Device
 Device (Controller &controller)
 
virtual ~Device ()
 
bool begin (PinSet pinSet, uint8_t chipSelect, uint32_t clockSpeed)
 Register device with controller and prepare for action. More...
 
void end ()
 
bool isReady () const
 Determine if the device is initialised. More...
 
PinSet getPinSet () const
 
uint8_t getChipSelect () const
 
uint32_t getSpeed () const
 
void setBitOrder (BitOrder bitOrder)
 
BitOrder getBitOrder () const
 
void setClockMode (ClockMode mode)
 
ClockMode getClockMode () const
 
virtual IoModes getSupportedIoModes () const =0
 Return set of IO modes supported by a device implementation. More...
 
bool isSupported (IoMode mode) const
 Determine if the device/controller combination supports an IO mode Must be called after begin() as other settings (e.g. pinset) can affect support. More...
 
virtual bool setIoMode (IoMode mode)
 
IoMode getIoMode () const
 
size_t getBitsPerClock () const
 
void execute (Request &request)
 
void onTransfer (Callback callback)
 Set a callback to be invoked before a request is started, and when it has finished. More...
 
void wait (Request &request)
 

Additional Inherited Members

- Public Attributes inherited from HSPI::Device
Controllercontroller
 
- Protected Member Functions inherited from HSPI::Device
void transferStarting (Request &request)
 
bool transferComplete (Request &request)
 
- Protected Attributes inherited from HSPI::Device
friend Controller
 

Detailed Description

Base class for read/write addressable devices.

Member Function Documentation

◆ Device()

HSPI::Device::Device
inline

◆ getSize()

virtual size_t HSPI::MemoryDevice::getSize ( ) const
pure virtual

Implemented in HSPI::RAM::PSRAM64, and HSPI::RAM::IS62_65.

◆ prepareRead() [1/2]

virtual void HSPI::MemoryDevice::prepareRead ( HSPI::Request req,
uint32_t  address 
)
pure virtual

Prepare without buffer.

Implemented in HSPI::RAM::PSRAM64, and HSPI::RAM::IS62_65.

◆ prepareRead() [2/2]

void HSPI::MemoryDevice::prepareRead ( HSPI::Request req,
uint32_t  address,
void *  buffer,
size_t  len 
)
inline

Prepare with buffer.

Parameters
bufferWhere to write incoming data
lenSize of buffer

◆ prepareWrite() [1/2]

virtual void HSPI::MemoryDevice::prepareWrite ( HSPI::Request req,
uint32_t  address 
)
pure virtual

Prepare request without data.

Implemented in HSPI::RAM::PSRAM64, and HSPI::RAM::IS62_65.

◆ prepareWrite() [2/2]

void HSPI::MemoryDevice::prepareWrite ( HSPI::Request req,
uint32_t  address,
const void *  data,
size_t  len 
)
inline

Prepare request with data.

Parameters
dataData to send
lenSize of data in bytes

◆ read() [1/2]

void HSPI::MemoryDevice::read ( Request req,
uint32_t  address,
void *  buffer,
size_t  len,
Callback  callback = nullptr,
void *  param = nullptr 
)
inline

◆ read() [2/2]

void HSPI::MemoryDevice::read ( uint32_t  address,
void *  buffer,
size_t  len 
)
inline

Read a block of data.

Parameters
address
data
len
Note
Limited by current operating mode

◆ read16()

uint16_t HSPI::MemoryDevice::read16 ( uint32_t  address)
inline

◆ read32()

uint32_t HSPI::MemoryDevice::read32 ( uint32_t  address)
inline

◆ read8()

uint8_t HSPI::MemoryDevice::read8 ( uint32_t  address)
inline

◆ readWord()

uint32_t HSPI::MemoryDevice::readWord ( uint32_t  address,
unsigned  byteCount 
)
inline

◆ write() [1/2]

void HSPI::MemoryDevice::write ( Request req,
uint32_t  address,
const void *  data,
size_t  len,
Callback  callback = nullptr,
void *  param = nullptr 
)
inline

◆ write() [2/2]

void HSPI::MemoryDevice::write ( uint32_t  address,
const void *  data,
size_t  len 
)
inline

Write a block of data.

Parameters
address
data
len
Note
Limited by current operating mode

◆ write16() [1/2]

void HSPI::MemoryDevice::write16 ( Request req,
uint32_t  address,
uint16_t  value,
Callback  callback = nullptr,
void *  param = nullptr 
)
inline

◆ write16() [2/2]

void HSPI::MemoryDevice::write16 ( uint32_t  address,
uint16_t  value 
)
inline

◆ write32() [1/2]

void HSPI::MemoryDevice::write32 ( Request req,
uint32_t  address,
uint32_t  value,
Callback  callback = nullptr,
void *  param = nullptr 
)
inline

◆ write32() [2/2]

void HSPI::MemoryDevice::write32 ( uint32_t  address,
uint32_t  value 
)
inline

◆ write8() [1/2]

void HSPI::MemoryDevice::write8 ( Request req,
uint32_t  address,
uint8_t  value,
Callback  callback = nullptr,
void *  param = nullptr 
)
inline

◆ write8() [2/2]

void HSPI::MemoryDevice::write8 ( uint32_t  address,
uint8_t  value 
)
inline

◆ writeWord()

void HSPI::MemoryDevice::writeWord ( Request req,
uint32_t  address,
uint32_t  value,
unsigned  byteCount 
)
inline

The documentation for this class was generated from the following file: