AnsweredAssumed Answered

MPC8270 Nested Interrupt handling

Question asked by Muhammad Umer Saeed on Dec 8, 2019
Latest reply on Dec 10, 2019 by alexander.yakovlev

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

Outcomes