Frequent exceptions
Posted by
wlynt3 on April 28, 2010
Hi,
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?
Thanks,
-Will
RE: Frequent exceptions
Posted by
wlynt3 on 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 )
{
portYIELD_WITHIN_API();
}
As soon as it calls portYIELD_WITHIN_API(); I get the following exception in the INTC module:
// Supervisor Call.
_handle_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.
-Will