simulavr
1.1.0
|
Implements a stack with 3 levels deep (used as returnstack by ATtiny15 an other) More...
#include <hwstack.h>
Public Member Functions | |
ThreeLevelStack (AvrDevice *core) | |
~ThreeLevelStack () | |
virtual void | Push (unsigned char val) |
Pushs one byte to stack. More... | |
virtual unsigned char | Pop () |
Pops one byte from stack. More... | |
virtual void | PushAddr (unsigned long addr) |
Pushs a address to stack. More... | |
virtual unsigned long | PopAddr () |
Pops a address from stack. More... | |
virtual void | Reset () |
Resets stack pointer and listener table. More... | |
![]() | |
HWStack (AvrDevice *core) | |
Creates a stack instance. More... | |
virtual | ~HWStack () |
unsigned long | GetStackPointer () const |
Returns current stack pointer value. More... | |
void | SetStackPointer (unsigned long val) |
Sets current stack pointer value (used by GDB interface) More... | |
void | SetReturnPoint (unsigned long stackPointer, Funktor *listener) |
Subscribes a Listener for a return address. More... | |
void | ResetLowestStackpointer (void) |
Sets lowest stack marker back to current stackpointer. More... | |
unsigned long | GetLowestStackpointer (void) |
Gets back the lowest stack pointer (for measuring stack usage) More... | |
![]() | |
TraceValueRegister (TraceValueRegister *parent, const std::string &name) | |
Create a TraceValueRegister, with a scope prefix built on parent scope + name. More... | |
TraceValueRegister () | |
Create a TraceValueRegister, with a empty scope name, single device application. More... | |
virtual | ~TraceValueRegister () |
const std::string | GetTraceValuePrefix (void) |
Returns the scope prefix. More... | |
const std::string | GetScopeName (void) |
Returns the scope name. More... | |
void | RegisterTraceValue (TraceValue *t) |
Registers a TraceValue for this register. More... | |
void | UnregisterTraceValue (TraceValue *t) |
Unregisters a TraceValue, remove it from register. More... | |
TraceValueRegister * | GetScopeGroupByName (const std::string &name) |
Get a here registered TraceValueRegister by it's name. More... | |
virtual TraceValue * | GetTraceValueByName (const std::string &name) |
Get a here registered TraceValue by it's name. More... | |
TraceValueRegister * | FindScopeGroupByName (const std::string &name) |
Seek for a TraceValueRegister by it's name. More... | |
TraceValue * | FindTraceValueByName (const std::string &name) |
Seek for a TraceValue by it's name. More... | |
TraceSet * | GetAllTraceValues (void) |
Get all here registered TraceValue's only (not with descending values) More... | |
TraceSet * | GetAllTraceValuesRecursive (void) |
Get all here registered TraceValue's with descending values. More... | |
Protected Attributes | |
unsigned long * | stackArea |
![]() | |
AvrDevice * | core |
Link to device. More... | |
uint32_t | stackPointer |
current value of stack pointer More... | |
uint32_t | lowestStackPointer |
marker: lowest stackpointer used by program More... | |
std::multimap< unsigned long, Funktor * > | returnPointList |
Maps adresses to listeners for return addresses. More... | |
Additional Inherited Members | |
![]() | |
ThreadList | m_ThreadList |
![]() | |
void | CheckReturnPoints () |
Run functions registered for current stack address and delete them. More... | |
![]() | |
virtual size_t | _tvr_getValuesCount (void) |
Get the count of all TraceValues, that are registered here and descending. More... | |
virtual void | _tvr_insertTraceValuesToSet (TraceSet &t) |
Insert all TraceValues into TraceSet, that registered here and descending. More... | |
Implements a stack with 3 levels deep (used as returnstack by ATtiny15 an other)
ThreeLevelStack::ThreeLevelStack | ( | AvrDevice * | core | ) |
Definition at line 194 of file hwstack.cpp.
References avr_new, Reset(), stackArea, HWStack::stackPointer, and trace_direct().
ThreeLevelStack::~ThreeLevelStack | ( | ) |
Definition at line 202 of file hwstack.cpp.
References avr_free(), and stackArea.
|
virtual |
Pops one byte from stack.
Implements HWStack.
Definition at line 216 of file hwstack.cpp.
References avr_error.
|
virtual |
Pops a address from stack.
Implements HWStack.
Definition at line 233 of file hwstack.cpp.
References avr_warning, stackArea, and HWStack::stackPointer.
|
virtual |
Pushs one byte to stack.
Implements HWStack.
Definition at line 212 of file hwstack.cpp.
References avr_error.
|
virtual |
Pushs a address to stack.
Implements HWStack.
Definition at line 221 of file hwstack.cpp.
References avr_warning, HWStack::lowestStackPointer, stackArea, and HWStack::stackPointer.
|
virtual |
Resets stack pointer and listener table.
Reimplemented from HWStack.
Definition at line 206 of file hwstack.cpp.
References HWStack::lowestStackPointer, HWStack::returnPointList, and HWStack::stackPointer.
Referenced by ThreeLevelStack().
|
protected |
Definition at line 162 of file hwstack.h.
Referenced by PopAddr(), PushAddr(), ThreeLevelStack(), and ~ThreeLevelStack().