Member of any memory area in an AVR device. More...
#include <rwmem.h>
Public Member Functions | |
RWMemoryMember (TraceValueRegister *registry, const std::string &tracename="", const int index=-1) | |
RWMemoryMember (void) | |
operator unsigned char () const | |
Read access on memory. | |
unsigned char | operator= (unsigned char val) |
Write access on memory. | |
unsigned char | operator= (const RWMemoryMember &mm) |
Write access on memory. | |
virtual | ~RWMemoryMember () |
Protected Member Functions | |
virtual void | set (unsigned char nv)=0 |
virtual unsigned char | get () const =0 |
Protected Attributes | |
TraceValue * | tv |
TraceValueRegister * | registry |
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.
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.
registry | pointer to TraceValueRegister instance | |
tracename | name of this memory cell, used by TraceValue | |
index | (optional) index to identify a cell in a group of memory cells |
Definition at line 40 of file rwmem.cpp.
References avr_error, TraceValueRegister::GetTraceValuePrefix(), TraceValueRegister::RegisterTraceValue(), registry, and tv.
RWMemoryMember::RWMemoryMember | ( | void | ) |
RWMemoryMember::~RWMemoryMember | ( | ) | [virtual] |
virtual unsigned char RWMemoryMember::get | ( | ) | const [protected, pure virtual] |
This function as the oppposite to get() is expected to read the real byte.
Implemented in RWSreg, SwigDirector_RWMemoryMember, GPIORegister, RAM, InvalidMem, NotSimulatedRegister, IOReg< P >, IOSpecialReg, RWWriteToFile, RWReadFromFile, RWExit, RWAbort, IOReg< HWTimer16_2C3 >, IOReg< HWTimer8_1C >, IOReg< HWSpi >, IOReg< HWAd >, IOReg< HWStackSram >, IOReg< HWPcir >, IOReg< HWWado >, IOReg< HWEeprom >, IOReg< HWPort >, IOReg< FlashProgramming >, IOReg< HWUsart >, IOReg< HWTimer16 >, IOReg< HWUart >, IOReg< HWPcmsk >, IOReg< AddressExtensionRegister >, IOReg< HWTimer16_3C >, IOReg< HWTimer8 >, IOReg< HWAcomp >, IOReg< HWTimer16_1C >, IOReg< HWAdmux >, IOReg< HWTimer8_2C >, IOReg< HWTimer16_2C2 >, and IOReg< HWTimer8_0C >.
Referenced by operator=().
RWMemoryMember::operator unsigned char | ( | ) | const |
Read access on memory.
Definition at line 60 of file rwmem.cpp.
References TraceValue::read(), and tv.
unsigned char RWMemoryMember::operator= | ( | const RWMemoryMember & | mm | ) |
Write access on memory.
Definition at line 73 of file rwmem.cpp.
References get(), TraceValue::read(), tv, and TraceValue::write().
unsigned char RWMemoryMember::operator= | ( | unsigned char | val | ) |
Write access on memory.
Definition at line 66 of file rwmem.cpp.
References tv, and TraceValue::write().
virtual void RWMemoryMember::set | ( | unsigned char | nv | ) | [protected, pure virtual] |
This function is the function which will be called by the above access operators and is expected to do the real work when writing a byte.
Implemented in RWSreg, SwigDirector_RWMemoryMember, GPIORegister, RAM, InvalidMem, NotSimulatedRegister, IOReg< P >, IOSpecialReg, RWWriteToFile, RWReadFromFile, RWExit, RWAbort, IOReg< HWTimer16_2C3 >, IOReg< HWTimer8_1C >, IOReg< HWSpi >, IOReg< HWAd >, IOReg< HWStackSram >, IOReg< HWPcir >, IOReg< HWWado >, IOReg< HWEeprom >, IOReg< HWPort >, IOReg< FlashProgramming >, IOReg< HWUsart >, IOReg< HWTimer16 >, IOReg< HWUart >, IOReg< HWPcmsk >, IOReg< AddressExtensionRegister >, IOReg< HWTimer16_3C >, IOReg< HWTimer8 >, IOReg< HWAcomp >, IOReg< HWTimer16_1C >, IOReg< HWAdmux >, IOReg< HWTimer8_2C >, IOReg< HWTimer16_2C2 >, and IOReg< HWTimer8_0C >.
TraceValueRegister* RWMemoryMember::registry [protected] |
Definition at line 83 of file rwmem.h.
Referenced by IOReg< HWTimer8_0C >::releaseTraceValue(), and RWMemoryMember().
TraceValue* RWMemoryMember::tv [mutable, protected] |
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 82 of file rwmem.h.
Referenced by IOReg< HWTimer8_0C >::get(), IOSpecialReg::hardwareChange(), IOReg< HWTimer8_0C >::hardwareChange(), IOSpecialReg::hardwareChangeMask(), IOReg< HWTimer8_0C >::IOReg(), operator unsigned char(), operator=(), RAM::RAM(), IOReg< HWTimer8_0C >::releaseTraceValue(), IOSpecialReg::Reset(), RWMemoryMember(), IOReg< HWTimer8_0C >::set(), RWSreg::trigger_change(), and ~RWMemoryMember().