LPC1756: Interrupt trouble with GPDMA and Timer1

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC1756: Interrupt trouble with GPDMA and Timer1

462 Views
mike16
Contributor I

I have a weird problem where the Timer1 match register interrupt handler is failing to be serviced when a GPDMA terminal count interrupt fires a few microseconds beforehand and the DMA IRQ handler is actively running. The Timer1 IRQ handler is being serviced normally when no other interrupts are pending or actively being serviced, the trouble only happens when the DMA handler is active. My reading of the Cortex-M3 NVIC is that:

  • If the interrupts are the same priority, the Timer1 interrupt should be set to pending and handled after the DMA handler is completed
  • If the Timer1 interrupt is a higher priority, the Timer1 interrupt handler will pre-empt the DMA interrupt handler and execute, returning to the DMA handler when completed

I have confirmed the following:

  1. Both interrupts are enabled in ISER0
  2. Both interrupts are serviced normally when they are not pending at the same time
  3. In case there was a priority problem, I lowered the priority of GPDMA to the lowest value (31) using IPR6 before enabling DMA using ISER0. Timer1 is the highest priority (0).

Has anyone encountered a problem like this? Am I missing something obvious?

Labels (2)
0 Kudos
1 Reply

374 Views
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello Mike Ryan,

Could you please share your project and steps that we can reproduce your issue.

BR

Alice

0 Kudos