Dear,
I am using MPC8270 as our microprocessor for development and configured Port C interrupts PC6 and PC7.
Following is problem Description along with code snippet:
=> I have configured external interrupts for PORT C (PC6 and PC7 configured for High to Low transition)
------------------------------------------------------------------------------------------
pinAdrs = 0x3000000;
*M8260_IOP_PCSO(INTERNAL_MEM_MAP_ADDR) &= ~pinAdrs; //Option register
*M8260_IOP_PCDIR(INTERNAL_MEM_MAP_ADDR) &= ~pinAdrs; //Direction Register
*M8260_IOP_PCPAR(INTERNAL_MEM_MAP_ADDR) &= ~pinAdrs; //Pin assignment register
*M8260_SIEXR(INTERNAL_MEM_MAP_ADDR) |= pinAdrs; // External Interrupt register
*M8260_SIPNR_H(INTERNAL_MEM_MAP_ADDR) |= (pinAdrs); // Interrupt pending register
*M8260_SIMR_H(INTERNAL_MEM_MAP_ADDR) |= pinAdrs; //Interrupt mask register
intConnect (m8260InumToIvec(INUM_PC6), (VOIDFUNCPTR)ISR0, 0); //Connect and ISR to Interrupt vector
intConnect (m8260InumToIvec(INUM_PC7), (VOIDFUNCPTR)ISR1, 0); //Connect and ISR to Interrupt vector
m8260IntEnable (INUM_PC6); // Enable Interrupts, vxworks specific Function
m8260IntEnable (INUM_PC7); // Enable Interrupts, vxworks specific Function
-----------------------------
ISR0 ()
{
printf("ISR0");
}
ISR1 ()
{
printf("ISR1");
}
---------------------------
Note: Both Interrupts works fine individually.
Problem:
Individual External triggers on PC6 and PC7 works fine.
When i trigger both pins PC6 and PC7 at the same time. The processor only executes ISR for PC7 i.e. ISR1 and discards the interrupt on PC6 i.e. ISR0.
Additional Information: Processor also hangs while it is executing an ISR on PC6 and another interrupt occurs on PC6 while the processor was busy executing ISR for previous assertion.
Query:
(1) Why MCP8270 does not handle both interrupts occurs at the same time?
(2) How to make MPC8270 work in this situation, i cannot afford to miss a single interrupt. Is there any software workaround for this problem?
(3) Does MPC8270 supports nested vector interrupt handling?
Regards
Umer Saeed