AnsweredAssumed Answered

PendSV & ISR FIFO Overflow

Question asked by atkinson.andy on Jul 6, 2012

I am using a STM32F103ZG and Keil uVision + RTX. I have a multi-threaded application using interrupts and DMA. The problem I have is an intermittent ISR FIFO overflow and, upon inspection, some odd interrupts / SVC / PendSV / SysTick behaviour.

Everything is fine for quite some time and the software behaves normally, processing multiple interrupts, using isr_xxx to post various IPC messages / event and context switching quite happily. Then, at random times since POR, a ISR FIFO overflow occurs. Upon inspection of the the FIFO it is indeed full (default limit of 16) but the logged interrupt behaviour shows that PendSV is no longer being called.

The NVIC is setup correctly I believe with SVC higher priority (14) than both SysTick and PendSV (both 15).

We have been using STM32F1 series processors for a long time now (mainly 103ZE, never ZG until now) and always with the same interrupts settings, so I cannot understand why we are no longer seeing PendSV being executed.

As we are uisng a far amount of DMA, does the F1 series suffer from the 'no more than 2 simultaneous DMA transfers' being report for F2 and F4?

Any thoughts / direction appreciated.