Frequent exceptions

anonymous wrote on Wednesday, April 28, 2010:

I’m quite new at the whole RTOS thing.  I’m using the AVR32 UC3 port and am getting very frequent exceptions.  At present I have only a few tasks to deal with LEDs and user buttons in my hardware.  The tasks seem to run but when I add a simple taskYIELD() to a task I get an exception.  If I comment it out, the exception goes away.  The exception I’m getting here is “_handle_Supervisor_Call”.

Additionally I have an ISR that monitors a port change of the buttons.  The service routine for that simply looks at which button caused the interrupt and sets a bit accordingly then leaves - it invokes no FreeRTOS functionality but yet when I press a button and the ISR is serviced I get yet another exception.

I tried increasing my heap size and increasing the tasks’ stack sizes with no change.  Any thoughts on what I might be doing wrong?



anonymous wrote on Friday, April 30, 2010:

Hi all - still struggling with this.  Here’s a little more information.  I stepped through the code to see where it was getting caught up.  In vTaskDelayUntil():
/* Force a reschedule if xTaskResumeAll has not already done so, we may
have put ourselves to sleep. */
if( !xAlreadyYielded )
As soon as it calls portYIELD_WITHIN_API(); I get the following exception in the INTC module:
        // Supervisor Call.
        rjmp $
The exception is:  4 _handle_Supervisor_Call() C:\Simple\System Controller 32\src\SOFTWARE_FRAMEWORK\DRIVERS\INTC\exception.x:184 0x8000bb00

Thanks for any advice you might have to shed a sliver of light on this.