peary::interface::SerialMemoryEndpoint

Peary Serial Memory Interface.

#include <peary/interfaces/SerialMemory/serialmemory.hpp>

Inherits from peary::interface::AXI4LiteEndpoint, peary::interface::Endpoint< AXI4LiteInterface, size_t, uintptr_t >

Public Functions

Name
SerialMemoryEndpoint(std::string const & devpath, const utils::memory_map & mem, const size_t reg_addr_write, const size_t reg_value_write, const size_t reg_addr_read, const size_t reg_value_read, const size_t status)Constructor for iface_sermem.
~SerialMemoryEndpoint() =default
SerialMemoryEndpoint() =delete
virtual pair_t write_impl(const pair_t & ) overrideWrite data to a register.
virtual vector_t read_impl(const reg_t & , const unsigned int ) overrideRead multiple data from a register.

Additional inherited members

Public Functions inherited from peary::interface::AXI4LiteEndpoint

Name
AXI4LiteEndpoint(std::string const & devpath, const utils::memory_map & mem)
~AXI4LiteEndpoint()

Protected Functions inherited from peary::interface::AXI4LiteEndpoint

Name
uintptr_t read_word(const reg_t & offset) constRead a word from a memory location.

Public Types inherited from peary::interface::Endpoint< AXI4LiteInterface, size_t, uintptr_t >

Name
using RegisterType reg_t
using DataType data_t
using std::pair< RegisterType, DataType > pair_t
using std::vector< DataType > vector_t

Public Functions inherited from peary::interface::Endpoint< AXI4LiteInterface, size_t, uintptr_t >

Name
Endpoint(const Endpoint & ) =delete
Endpoint & operator=(const Endpoint & ) =delete
Endpoint(Endpoint && ) =delete
Endpoint & operator=(Endpoint && ) =delete
std::string info() constReturn human-readable endpoint information.
data_t write(const data_t & value)Write a single data word to a device which does not contain internal registers.
vector_t write(const vector_t & values)Write multiple data words to a device which does not contain internal registers.
pair_t write(const pair_t & regData)Write a single data word to a device containing internal registers.
vector_t write(const reg_t & reg, const vector_t & values)Write multiple data words to a specific register of a device containing internal registers.
std::vector< pair_t > write(const std::vector< pair_t > & regDataVec)Write multiple data words to multiple registers of a device containing internal registers.
data_t read()Read a single data word from a device which does not contain internal registers.
vector_t read(unsigned int count)Read multiple data words from a device which does not contain internal registers.
vector_t read(const reg_t & reg, unsigned int count)Read a single data word from a specific register of a device containing internal registers.

Protected Functions inherited from peary::interface::Endpoint< AXI4LiteInterface, size_t, uintptr_t >

Name
Endpoint(const std::string & info)
virtual ~Endpoint() =default

Public Functions Documentation

function SerialMemoryEndpoint

  explicit SerialMemoryEndpoint(
    std::string const & devpath,
    const utils::memory_map & mem,
    const size_t reg_addr_write,
    const size_t reg_value_write,
    const size_t reg_addr_read,
    const size_t reg_value_read,
    const size_t status
)
  

Constructor for iface_sermem.

Parameters:

  • devpath The device path for the Serial Memory interface
  • mem The memory map configuration
  • reg_addr_write The register address for writing the target address
  • reg_value_write The register address for writing the target value
  • reg_addr_read The register address for writing the target address for read operations
  • reg_value_read The register address for reading the retrieved value
  • status The status register address

function ~SerialMemoryEndpoint

  ~SerialMemoryEndpoint() =default
  

function SerialMemoryEndpoint

  SerialMemoryEndpoint() =delete
  

function write_impl

  virtual pair_t write_impl(
    const pair_t & 
) override
  

Write data to a register.

Return: A pair containing the memory address and a placeholder value (always zero)

Reimplements: peary::interface::AXI4LiteEndpoint::write_impl

function read_impl

  virtual vector_t read_impl(
    const reg_t & ,
    const unsigned int 
) override
  

Read multiple data from a register.

Reimplements: peary::interface::AXI4LiteEndpoint::read_impl


Updated on 2026-01-30 at 22:01:05 +0100