Ruth Hendrix

XGATE Help needed !

Discussion created by Ruth Hendrix Employee on Jan 28, 2006
This message contains an entire topic ported from a separate forum. The original message and all replies are in this single message. We have seeded this new forum with selected information that we expect will be of value to you as you search for answers to your questions.
Posted: Thu Dec 08, 2005 7:52 pm    
Hi all !

I've been trying for a couple of days to get the XGate working with no luck. I'm trying to route to the XGate the ATD1 channel. I'm doing it like this :
#define ROUTE_INTERRUPT(vec_adr, cfdata) \ INT_CFADDR= (vec_adr) & 0xF0; \ INT_CFDATA_ARR[((vec_adr) & 0x0F) >> 1]= (cfdata) #define ATD1_VEC 0xD0 void SetupXGATE(void) { XGVBR= (unsigned int)(void*__far)(XGATE_VectorTable - XGATE_VECTOR_OFFSET); ROUTE_INTERRUPT(ATD1_VEC, 0x81); /* RQST=1 and PRIO=1 */ XGMCTL= 0xFBC1; } 

In void main() I call SetupXGATE and then EnableInterrupts. The problem is that after initializing the xgate and enabling interrupts,no matter what procedure or function I call next it jumps to another interrupt (RTI) which is handled by the HCS12 and then it stops.

Any ideas or suggestions would be appreciated.

Posted: Fri Dec 09, 2005 11:20 am  
Check to see if the XGATE vector table is set up correctly and pointing to your XGATE thread handler.
You don't need to enable interrupts on the CPU for the XGATE to work but if the vector table or thread is wrong in some way it will flag an interrupt to the CPU, so the unexpected interrupt may be a sign that XGATE is't happy.
Can you find out where the interrupt is coming from? If so then that could be a help.