AVR32 Semaphore Scheduler Problem

markusgroh wrote on Saturday, September 25, 2010:

Hi!

I’m relatively new to FreeRTOS. I’m using an Atmel AVR MCU (UC3A0512) on the EVK1100 Evaluation Board. Actually I’m making my first experiences in mutitasking. So I have a serious problem I’m not able to solve :frowning:

I use an GPIO-Interrupt wich evokes an ISR. This ISR works fine (traced it via usart debugging messages). This ISR ‘gives’ an Semaphore (binary) with
xSemaphoreGiveFromISR(gpiointerrupt,&xHighPriorityTaskWoken);

This evokes a high priority task which blocks for this semaphore. I also traced this behavior via usart. This Semaphore was taken, code executes, task wants again take the semaphore….and then everything crashed. The MCU stops, no lower tasks resumed.
Has anybody a tip or a solution for my problem? Something I’m making wrong, but after a lot of tests I didn’t find a solution and it irks me.

Thanks a lot!

markusgroh wrote on Sunday, September 26, 2010:

Ok, I solved my problem. It was an error in the function protoype of the ISR.

I simply forgot the compiler attribute for the AVR-port

__attribute__ ((naked))

Now, everything works fine.