59 operator unsigned char()
const;
62 unsigned char operator=(
unsigned char val);
71 virtual void set_bit(
unsigned int bitaddr ) {
73 unsigned char val = this->
get();
83 unsigned char val = this->
get();
84 val &= ~(1 << bitaddr);
95 virtual void set(
unsigned char nv)=0;
98 virtual unsigned char get()
const=0;
127 unsigned char get()
const {
return value; }
128 void set(
unsigned char v) { value = v; }
143 unsigned int CpuCycle(
void);
146 unsigned char get()
const {
return value; }
147 void set(
unsigned char v);
166 unsigned char get()
const {
return value; }
167 void set(
unsigned char v);
192 unsigned char get()
const {
return value; }
193 void set(
unsigned char v);
208 const size_t maxsize);
211 unsigned char get()
const;
212 void set(
unsigned char);
230 unsigned char get()
const;
231 void set(
unsigned char);
278 unsigned char get()
const;
279 void set(
unsigned char);
289 typedef unsigned char(P::*getter_t)();
290 typedef void (P::*setter_t)(
unsigned char);
291 typedef unsigned char(P::*getter_bit_t)(
unsigned int);
292 typedef void (P::*setter_bit_t)(bool,
unsigned int);
329 virtual void set_bit(
unsigned int bitaddr ) {
331 (p->*sb)( 1, bitaddr);
334 unsigned char val = (p->*g)();
347 (p->*sb)( 0, bitaddr);
350 unsigned char val = (p->*g)();
360 unsigned char get()
const {
368 void set(
unsigned char val) {
372 avr_warning(
"Writing of '%s' (with %d) is not supported.",
tv->
name().c_str(), val);
407 virtual unsigned char set_from_reg(
const IOSpecialReg* reg,
unsigned char nv)=0;
412 virtual unsigned char get_from_client(
const IOSpecialReg* reg,
unsigned char v)=0;
449 unsigned char get()
const;
450 void set(
unsigned char);
Basic AVR device, contains the core functionality.
void Reset(unsigned char val)
GPIORegister(AvrDevice *core, TraceValueRegister *registry, const std::string &tracename)
const std::string & GetTraceName(void)
void hardwareChangeMask(unsigned char val, unsigned char mask)
void hardwareChange(unsigned char val)
TraceValueRegister * registry
virtual ~IOSpecialRegClient()
Implement CLKPR register.
A register in IO register space unrelated to any peripheral. "GPIORx" in datasheets.
void Reset(void)
Register reset functionality, sets internal register value to 0.
TraceValueCoreRegister * corereg
Interface class to connect hardware units to control registers.
void connectSRegClient(IOSpecialRegClient *c)
Registers a client to this IO register to inform this client on read or write access.
unsigned char value
Internal register value.
Memory on which access should be avoided! :-)
IOReg(TraceValueRegister *registry, const std::string &tracename, P *_p, getter_t _g=0, setter_t _s=0, getter_bit_t _gb=0, setter_bit_t _sb=0)
Build a register for TraceValue's.
std::vector< IOSpecialRegClient * > clients
clients-list with registered clients
std::string name() const
Give name (fully qualified), including the index appended if it is >=0.
Member of any memory area in an AVR device.
IO register to be specialized for a certain class/hardware.
unsigned char operator=(unsigned char val)
Write access on memory.
virtual void clear_bit(unsigned int bitaddr)
void hardwareChange(unsigned char val)
void UnregisterTraceValue(TraceValue *t)
Unregisters a TraceValue, remove it from register.
const std::string tracename
bool IsInvalid(void) const
void change(unsigned val)
Log a change on this value.
virtual void set_bit(unsigned int bitaddr)
virtual ~RWMemoryMember()
virtual void clear_bit(unsigned int bitaddr)
Implement OSCCAL register.
An IO register which is not simulated in the moment. Reads and writes are ignored and produce warning...
virtual void set_bit(unsigned int bitaddr)
void releaseTraceValue(void)