simulavr  1.1.0
RWMemoryMember Class Referenceabstract

Member of any memory area in an AVR device. More...

#include <rwmem.h>

Inheritance diagram for RWMemoryMember:

Public Member Functions

 RWMemoryMember (TraceValueRegister *registry, const std::string &tracename="", const int index=-1)
 
 RWMemoryMember (void)
 
 operator unsigned char () const
 Read access on memory. More...
 
unsigned char operator= (unsigned char val)
 Write access on memory. More...
 
unsigned char operator= (const RWMemoryMember &mm)
 Write access on memory. More...
 
virtual ~RWMemoryMember ()
 
virtual void set_bit (unsigned int bitaddr)
 
virtual void clear_bit (unsigned int bitaddr)
 
const std::string & GetTraceName (void)
 
bool IsInvalid (void) const
 

Protected Member Functions

virtual void set (unsigned char nv)=0
 
virtual unsigned char get () const =0
 

Protected Attributes

TraceValuetv
 
TraceValueRegisterregistry
 
const std::string tracename
 
const bool isInvalid
 

Detailed Description

Member of any memory area in an AVR device.

Allows to be read and written byte-wise. Accesses can be traced if necessary.

Definition at line 42 of file rwmem.h.

Constructor & Destructor Documentation

◆ RWMemoryMember() [1/2]

RWMemoryMember::RWMemoryMember ( TraceValueRegister registry,
const std::string &  tracename = "",
const int  index = -1 
)

Constructs a new memory member cell with the given trace value name. Index is used for memory-like structures which have indices.

Parameters
registrypointer to TraceValueRegister instance
tracenamename of this memory cell, used by TraceValue
index(optional) index to identify a cell in a group of memory cells

Definition at line 42 of file rwmem.cpp.

References avr_error, TraceValueRegister::GetTraceValuePrefix(), TraceValueRegister::RegisterTraceValue(), registry, and tv.

◆ RWMemoryMember() [2/2]

RWMemoryMember::RWMemoryMember ( void  )

Constructs a new memory member cell with no trace value name. (for InvalidRam)

Definition at line 60 of file rwmem.cpp.

◆ ~RWMemoryMember()

virtual RWMemoryMember::~RWMemoryMember ( )
inlinevirtual

Definition at line 66 of file rwmem.h.

Member Function Documentation

◆ clear_bit()

virtual void RWMemoryMember::clear_bit ( unsigned int  bitaddr)
inlinevirtual

◆ get()

◆ GetTraceName()

const std::string& RWMemoryMember::GetTraceName ( void  )
inline

Definition at line 88 of file rwmem.h.

References tracename.

◆ IsInvalid()

bool RWMemoryMember::IsInvalid ( void  ) const
inline

Definition at line 89 of file rwmem.h.

References isInvalid.

◆ operator unsigned char()

RWMemoryMember::operator unsigned char ( ) const

Read access on memory.

Definition at line 66 of file rwmem.cpp.

References TraceValue::read(), and tv.

◆ operator=() [1/2]

unsigned char RWMemoryMember::operator= ( unsigned char  val)

Write access on memory.

Definition at line 72 of file rwmem.cpp.

References tv, and TraceValue::write().

◆ operator=() [2/2]

unsigned char RWMemoryMember::operator= ( const RWMemoryMember mm)

Write access on memory.

Definition at line 79 of file rwmem.cpp.

References get(), TraceValue::read(), tv, and TraceValue::write().

◆ set()

◆ set_bit()

virtual void RWMemoryMember::set_bit ( unsigned int  bitaddr)
inlinevirtual

Member Data Documentation

◆ isInvalid

const bool RWMemoryMember::isInvalid
protected

Definition at line 108 of file rwmem.h.

Referenced by IsInvalid().

◆ registry

TraceValueRegister* RWMemoryMember::registry
protected

Definition at line 106 of file rwmem.h.

Referenced by IOReg< HWTimer8_0C >::releaseTraceValue(), and RWMemoryMember().

◆ tracename

const std::string RWMemoryMember::tracename
protected

Definition at line 107 of file rwmem.h.

Referenced by GetTraceName().

◆ tv

TraceValue* RWMemoryMember::tv
mutableprotected

If non-null, this is the tracing value bound to this memory member. All read/write operators on the contents of a memory member will inform the tracing value of changes and accesses, if applicable.

Definition at line 105 of file rwmem.h.

Referenced by IOReg< HWTimer8_0C >::clear_bit(), IOReg< HWTimer8_0C >::get(), IOReg< HWTimer8_0C >::hardwareChange(), IOSpecialReg::hardwareChange(), IOSpecialReg::hardwareChangeMask(), IOReg< HWTimer8_0C >::IOReg(), operator unsigned char(), operator=(), RAM::RAM(), IOReg< HWTimer8_0C >::releaseTraceValue(), IOSpecialReg::Reset(), RWMemoryMember(), IOReg< HWTimer8_0C >::set(), and IOReg< HWTimer8_0C >::set_bit().


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