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. | |
virtual unsigned char | Pop () |
Pops one byte from stack. | |
virtual void | PushAddr (unsigned long addr) |
Pushs a address to stack. | |
virtual unsigned long | PopAddr () |
Pops a address from stack. | |
virtual void | Reset () |
Resets stack pointer and listener table. | |
Protected Attributes | |
unsigned long * | stackArea |
Implements a stack with 3 levels deep (used as returnstack by ATtiny15 an other).
Definition at line 159 of file hwstack.h.
ThreeLevelStack::ThreeLevelStack | ( | AvrDevice * | core | ) |
Definition at line 185 of file hwstack.cpp.
References avr_new, Reset(), stackArea, HWStack::stackPointer, and trace_direct().
ThreeLevelStack::~ThreeLevelStack | ( | ) |
Definition at line 193 of file hwstack.cpp.
References avr_free(), and stackArea.
unsigned char ThreeLevelStack::Pop | ( | ) | [virtual] |
Pops one byte from stack.
Implements HWStack.
Definition at line 207 of file hwstack.cpp.
References avr_error.
unsigned long ThreeLevelStack::PopAddr | ( | ) | [virtual] |
Pops a address from stack.
Implements HWStack.
Definition at line 224 of file hwstack.cpp.
References avr_warning, stackArea, and HWStack::stackPointer.
void ThreeLevelStack::Push | ( | unsigned char | val | ) | [virtual] |
Pushs one byte to stack.
Implements HWStack.
Definition at line 203 of file hwstack.cpp.
References avr_error.
void ThreeLevelStack::PushAddr | ( | unsigned long | addr | ) | [virtual] |
Pushs a address to stack.
Implements HWStack.
Definition at line 212 of file hwstack.cpp.
References avr_warning, HWStack::lowestStackPointer, stackArea, and HWStack::stackPointer.
void ThreeLevelStack::Reset | ( | void | ) | [virtual] |
Resets stack pointer and listener table.
Reimplemented from HWStack.
Definition at line 197 of file hwstack.cpp.
References HWStack::lowestStackPointer, HWStack::returnPointList, and HWStack::stackPointer.
Referenced by ThreeLevelStack().
unsigned long* ThreeLevelStack::stackArea [protected] |
Definition at line 162 of file hwstack.h.
Referenced by PopAddr(), PushAddr(), ThreeLevelStack(), and ~ThreeLevelStack().