Programm ends up in Dummy Handler (Hard Fault)

petegorba wrote on Tuesday, December 15, 2015:

Hi there

After changing only a little in my Code, the Application always ends up in the Dummy_Handler();
the error occurs after that code:
if (xSemaphoreTakeFromISR(uart_irq, portMAX_Delay)) (selfwirtten code)
ldr r0, [r6]
movs r1, #0
mov.w r2, #4294967295
blx r5
cmp ro, #0
beq #250

if(prvISQueueEmpty(pxQueue) != pdFALSE) (out of the FreeRTOS/queue.c)
cmp.w r8, #0
bne 42

from here it jumps into the Dummy Handler.

Unfortunately i have no clue what this error is related to? Could there be a memory fault?

Thanks in advance for any help.

rtel wrote on Tuesday, December 15, 2015:

When you say the code is self written do you mean you wrote a function that tries to block an ISR to wait for a semaphore? If so then that is not a valid thing to do - interrupts are under the control of the hardware, not the FreeRTOS scheduler. Otherwise you are just misusing the second parameter as it is not a block time. Please refer to the API documentation online.