60 enum {eNormal, eReaded, eWritten, eWritten2} m_phase_of_switch;
76 void OnSPRead(
int SP_value);
77 void OnSPWrite(
int new_SP);
80 int GetThreadBySP(
int SP)
const;
82 int GetCurrentThreadForGDB()
const;
83 const Thread * GetThreadFromGDB(
int thread_id)
const;
84 bool IsGDBThreadAlive(
int thread_id)
const;
85 unsigned int GetCount()
const;
100 void CheckReturnPoints();
108 virtual void Push(
unsigned char val)=0;
109 virtual unsigned char Pop()=0;
110 virtual void PushAddr(
unsigned long addr)=0;
111 virtual unsigned long PopAddr()=0;
113 virtual void Reset();
122 void SetReturnPoint(
unsigned long stackPointer,
Funktor *listener);
137 void SetSpl(
unsigned char);
138 void SetSph(
unsigned char);
139 unsigned char GetSpl();
140 unsigned char GetSph();
141 void OnSPReadByTarget();
147 virtual void Push(
unsigned char val);
148 virtual unsigned char Pop();
149 virtual void PushAddr(
unsigned long addr);
150 virtual unsigned long PopAddr();
152 virtual void Reset();
168 virtual void Push(
unsigned char val);
169 virtual unsigned char Pop();
170 virtual void PushAddr(
unsigned long addr);
171 virtual unsigned long PopAddr();
173 virtual void Reset();
uint32_t lowestStackPointer
marker: lowest stackpointer used by program
unsigned long * stackArea
Basic AVR device, contains the core functionality.
void ResetLowestStackpointer(void)
Sets lowest stack marker back to current stackpointer.
Implements a stack with stack register using RAM as stackarea.
uint32_t stackPointer
current value of stack pointer
Implements a stack register with stack logic.
AvrDevice * core
Link to device.
Implements a stack with 3 levels deep (used as returnstack by ATtiny15 an other)
std::vector< Thread * > m_threads
List of known threads. First addition (of main) is special.
Build a register for TraceValue's.
std::multimap< unsigned long, Funktor * > returnPointList
Maps adresses to listeners for return addresses.
IOReg< HWStackSram > sph_reg
unsigned char registers[32]
unsigned long GetLowestStackpointer(void)
Gets back the lowest stack pointer (for measuring stack usage)
unsigned long GetStackPointer() const
Returns current stack pointer value.
int m_ip
address (in bytes, not index)
IOReg< HWStackSram > spl_reg
int m_sp
Stack Pointer. Address 0x0000 is invalid; used for running thread. GDB never sees the 0...
void SetStackPointer(unsigned long val)
Sets current stack pointer value (used by GDB interface)