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



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 ()






ISR1 ()






Note: Both Interrupts works fine individually.



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. 



(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?




Umer Saeed