AnsweredAssumed Answered

SysTick_Handler suspended during other interrupts

Question asked by jamie_m on Aug 13, 2013
Latest reply on Aug 13, 2013 by Clive One
Hello Allm

I am prototyping with the STM32 F3 Discovery board and using the ST standard peripheral library.  I am also using some example code that contains a function - Delay() - which uses the SysTick_Handler to decrement a global variable until it hits zero and then program functionality continues.  This all works fine as part of the main body of code.

The problem occurs when I try to call this function from within some other interrupt that I have defined myself.  Specifically, I was trying to use Delay() to toggle a pin when I enter the DMA Transfer Complete interrupt. When I am in this interrupt, breakpoints in the SysTick_Handler show that it is never called again and the program crashes.

Why does this happen?  Shouldn't SysTick automatically, through the core architecture, have a higher priority than any interrupt I define?  Does the SysTick clock get suspended for some reason during interrupt calls?

The use of Delay is not strictly necessary - I am just using it so I can trigger a scope with a pin toggle - and if I take out that function call everything is fine.  But I would like to understand what is happening in case it has a farther-reaching consequences.  Thanks.

-Jamie

Outcomes