HWIrqSystem Class Reference

#include <irqsystem.h>

Inheritance diagram for HWIrqSystem:
Inheritance graph
[legend]
Collaboration diagram for HWIrqSystem:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 HWIrqSystem (AvrDevice *_core, int bytes_per_vector, int number_of_vectors)
unsigned int GetNewPc (unsigned int &vector_index)
 returns a new PC pointer if interrupt occurred, -1 otherwise.
void SetIrqFlag (Hardware *, unsigned int vector_index)
void ClearIrqFlag (unsigned int vector_index)
void IrqHandlerStarted (unsigned int vector_index)
void IrqHandlerFinished (unsigned int vector_index)
void DebugVerifyInterruptVector (unsigned int vector_index, const Hardware *source)
 In datasheets RESET vector is index 1 but we use 0! And not a byte address.
void DebugDumpTable ()

Protected Attributes

int bytesPerVector
int vectorTableSize
 number of entries supported by the device, not bytes
HWSregstatus
std::vector< TraceValue * > irqTrace
std::map< unsigned int,
Hardware * > 
irqPartnerList
 priority queue of pending interrupts (i.e. waiting to be processed)
AvrDevicecore
IrqStatistic irqStatistic
std::vector< const Hardware * > debugInterruptTable

Detailed Description

Definition at line 118 of file irqsystem.h.


Constructor & Destructor Documentation

HWIrqSystem::HWIrqSystem ( AvrDevice _core,
int  bytes_per_vector,
int  number_of_vectors 
)

Member Function Documentation

void HWIrqSystem::ClearIrqFlag ( unsigned int  vector_index  ) 
void HWIrqSystem::DebugDumpTable (  ) 

Definition at line 293 of file irqsystem.cpp.

References avr_message, bytesPerVector, and debugInterruptTable.

void HWIrqSystem::DebugVerifyInterruptVector ( unsigned int  vector_index,
const Hardware source 
)

In datasheets RESET vector is index 1 but we use 0! And not a byte address.

Definition at line 283 of file irqsystem.cpp.

References debugInterruptTable, and vectorTableSize.

Referenced by HWAcomp::HWAcomp(), HWAd::HWAd(), HWEeprom::HWEeprom(), HWSpi::HWSpi(), HWUart::HWUart(), ExternalIRQHandler::registerIrq(), and TimerIRQRegister::registerLine().

Here is the caller graph for this function:

unsigned int HWIrqSystem::GetNewPc ( unsigned int &  vector_index  ) 

returns a new PC pointer if interrupt occurred, -1 otherwise.

Definition at line 203 of file irqsystem.cpp.

References bytesPerVector, Hardware::ClearIrqFlag(), irqPartnerList, Hardware::IsLevelInterrupt(), Hardware::LevelInterruptPending(), and vectorTableSize.

Referenced by AvrDevice::Step().

Here is the call graph for this function:

Here is the caller graph for this function:

void HWIrqSystem::IrqHandlerFinished ( unsigned int  vector_index  ) 

Definition at line 271 of file irqsystem.cpp.

References core, IrqStatistic::entries, SystemClock::GetCurrentTime(), AvrDevice::GetFname(), SystemClock::Instance(), irqStatistic, irqTrace, AvrDevice::trace_on, and traceOut.

Referenced by AvrDevice::Step().

Here is the call graph for this function:

Here is the caller graph for this function:

void HWIrqSystem::IrqHandlerStarted ( unsigned int  vector_index  ) 

Definition at line 259 of file irqsystem.cpp.

References core, IrqStatistic::entries, SystemClock::GetCurrentTime(), AvrDevice::GetFname(), SystemClock::Instance(), irqStatistic, irqTrace, AvrDevice::trace_on, and traceOut.

Referenced by AvrDevice::Step().

Here is the call graph for this function:

Here is the caller graph for this function:

void HWIrqSystem::SetIrqFlag ( Hardware hwp,
unsigned int  vector_index 
)

Member Data Documentation

int HWIrqSystem::bytesPerVector [protected]

Definition at line 121 of file irqsystem.h.

Referenced by DebugDumpTable(), and GetNewPc().

Definition at line 128 of file irqsystem.h.

Referenced by ClearIrqFlag(), IrqHandlerFinished(), IrqHandlerStarted(), and SetIrqFlag().

std::vector<const Hardware*> HWIrqSystem::debugInterruptTable [protected]

Definition at line 130 of file irqsystem.h.

Referenced by DebugDumpTable(), and DebugVerifyInterruptVector().

std::map<unsigned int, Hardware *> HWIrqSystem::irqPartnerList [protected]

priority queue of pending interrupts (i.e. waiting to be processed)

Definition at line 127 of file irqsystem.h.

Referenced by ClearIrqFlag(), GetNewPc(), and SetIrqFlag().

Definition at line 129 of file irqsystem.h.

Referenced by ClearIrqFlag(), IrqHandlerFinished(), IrqHandlerStarted(), and SetIrqFlag().

std::vector<TraceValue*> HWIrqSystem::irqTrace [protected]

Definition at line 124 of file irqsystem.h.

Referenced by HWIrqSystem(), IrqHandlerFinished(), and IrqHandlerStarted().

Definition at line 123 of file irqsystem.h.

number of entries supported by the device, not bytes

Definition at line 122 of file irqsystem.h.

Referenced by DebugVerifyInterruptVector(), GetNewPc(), HWIrqSystem(), and SetIrqFlag().


The documentation for this class was generated from the following files:
Generated on Sun Feb 12 16:51:38 2012 for Simulavr by  doxygen 1.6.3