Implements InterruptService for stand-alone TI board in vxWorks. More...
#include <vxTIInterruptService.hxx>
Public Member Functions | |
vxTIInterruptService (unsigned short *ti_addr=(unsigned short *) TI_BASE_ADDR, int dispatchPriority=TI_DISPATCH_PRIORITY, int interruptLevel=TI_INTERRUPT_LEVEL, short interruptVector=TI_INTERRUPT_VECTOR) | |
Constructor just stores parameters. | |
virtual | ~vxTIInterruptService (void) throw () |
Destructor. | |
virtual bool | setupInterrupt (void) |
Sets up interrupt, resets TI board, spawns dispatcher task, etc. | |
virtual bool | enableInterrupt (void) |
Enables interrupt. | |
virtual bool | pauseInterrupt (void) |
Pauses interrupt, called during pause transition. | |
virtual bool | resumeInterrupt (void) |
Resumes interrupt, called during resume transition. | |
virtual bool | deleteInterrupt (void) |
Disables interrupt, disconnects ISR, deletes dispatcher task, deletes semaphore. | |
virtual int | dispatchInterrupt (void) |
Task waits for semaphore, then reads trigger type, calls interrupt, reenables interrupt. | |
Protected Attributes | |
unsigned short * | myBaseAddr |
Base address of TI board. | |
unsigned short * | myAddr |
Local address of this TI board. | |
int | myInterruptTaskId |
Interrupt task id. | |
SEM_ID | mySemId |
Semaphore id. | |
int | myDispatchPriority |
Priority for dispatch task. | |
int | myInterruptLevel |
Interrupt level. | |
int | myInterruptVector |
Interrupt vector. |
Implements InterruptService for stand-alone TI board in vxWorks.
Definition at line 71 of file vxTIInterruptService.hxx.
vxTIInterruptService::vxTIInterruptService | ( | unsigned short * | base_addr = (unsigned short*)TI_BASE_ADDR , |
|
int | dispatchPriority = TI_DISPATCH_PRIORITY , |
|||
int | interruptLevel = TI_INTERRUPT_LEVEL , |
|||
short | interruptVector = TI_INTERRUPT_VECTOR | |||
) |
Constructor just stores parameters.
base_addr | TI board base address | |
dispatchPriority | Dispatch task priority | |
interruptLevel | Board interrupt level | |
interruptVector | Board interrupt level |
Definition at line 51 of file vxTIInterruptService.cc.
vxTIInterruptService::~vxTIInterruptService | ( | void | ) | throw () [virtual] |
bool vxTIInterruptService::deleteInterrupt | ( | void | ) | [virtual] |
Disables interrupt, disconnects ISR, deletes dispatcher task, deletes semaphore.
Implements codaObject::InterruptService.
Definition at line 178 of file vxTIInterruptService.cc.
References codaObject::intDisconnect(), myAddr, myInterruptTaskId, mySemId, and TI_INTERRUPT_VECTOR.
Referenced by ~vxTIInterruptService().
int vxTIInterruptService::dispatchInterrupt | ( | void | ) | [virtual] |
Task waits for semaphore, then reads trigger type, calls interrupt, reenables interrupt.
Definition at line 90 of file vxTIInterruptService.cc.
References codaObject::InterruptibleObject::interrupt(), myAddr, codaObject::InterruptService::myIntObj, mySemId, and TI_INTERRUPT_REENABLE.
bool vxTIInterruptService::enableInterrupt | ( | void | ) | [virtual] |
Enables interrupt.
Implements codaObject::InterruptService.
Definition at line 156 of file vxTIInterruptService.cc.
References myAddr, codaObject::sysIntEnable(), TI_INTERRUPT_LEVEL, and TI_MODE.
virtual bool codaObject::vxTIInterruptService::pauseInterrupt | ( | void | ) | [inline, virtual] |
Pauses interrupt, called during pause transition.
Implements codaObject::InterruptService.
Definition at line 79 of file vxTIInterruptService.hxx.
virtual bool codaObject::vxTIInterruptService::resumeInterrupt | ( | void | ) | [inline, virtual] |
Resumes interrupt, called during resume transition.
Implements codaObject::InterruptService.
Definition at line 80 of file vxTIInterruptService.hxx.
bool vxTIInterruptService::setupInterrupt | ( | void | ) | [virtual] |
Sets up interrupt, resets TI board, spawns dispatcher task, etc.
Implements codaObject::InterruptService.
Definition at line 120 of file vxTIInterruptService.cc.
References codaObject::intDisconnect(), myAddr, myBaseAddr, myDispatchPriority, myInterruptTaskId, mySemId, codaObject::sysBusToLocalAdrs(), TI_INTERRUPT_VECTOR, TI_RESET, and TI_VME_ACCESS_MODE.
unsigned short* codaObject::vxTIInterruptService::myAddr [protected] |
Local address of this TI board.
Definition at line 92 of file vxTIInterruptService.hxx.
Referenced by deleteInterrupt(), dispatchInterrupt(), enableInterrupt(), and setupInterrupt().
unsigned short* codaObject::vxTIInterruptService::myBaseAddr [protected] |
Base address of TI board.
Definition at line 91 of file vxTIInterruptService.hxx.
Referenced by setupInterrupt().
int codaObject::vxTIInterruptService::myDispatchPriority [protected] |
Priority for dispatch task.
Definition at line 95 of file vxTIInterruptService.hxx.
Referenced by setupInterrupt().
int codaObject::vxTIInterruptService::myInterruptLevel [protected] |
Interrupt level.
Definition at line 96 of file vxTIInterruptService.hxx.
int codaObject::vxTIInterruptService::myInterruptTaskId [protected] |
Interrupt task id.
Definition at line 93 of file vxTIInterruptService.hxx.
Referenced by deleteInterrupt(), and setupInterrupt().
int codaObject::vxTIInterruptService::myInterruptVector [protected] |
Interrupt vector.
Definition at line 97 of file vxTIInterruptService.hxx.
SEM_ID codaObject::vxTIInterruptService::mySemId [protected] |
Semaphore id.
Definition at line 94 of file vxTIInterruptService.hxx.
Referenced by deleteInterrupt(), dispatchInterrupt(), and setupInterrupt().