SPRINTF is causing an FIQ exception

nobody wrote on Thursday, March 16, 2006:

Im using the STR711 with FreeRtos and the Idealist IDE ( GCC compiler ).
Using the sprintf function causes an FIQ exception.  The sprintf is performed properly, but the next instruction after the exception. I have core and user level Fiq interrupts disabled.  Also have increased my stack and heap sizes.
-rtosrom.ld
    _STACKSIZE = 2048;
    _STACKSIZE_IRQ = 256;
    _STACKSIZE_FIQ = 256;
    _STACKSIZE_SVC = 0;
    _STACKSIZE_ABT = 0;
    _STACKSIZE_UND = 0;
    _HEAPSIZE = 2048;

#define configTOTAL_HEAP_SIZE((size_t)(20480))

has anyone come across something like this ?

regards.

nobody wrote on Friday, March 17, 2006:

You have an STR711 with 20.5K of RAM?

I think you are probably right in thinking it could be a stack problem as the GCC string handling functions are very stack hungry.  One of the few problems with using GCC on ARM.

The _STACKSIE=2048 I am guessing is setting up the user/system mode stack?  If so then increasing this setting will have no effect once the scheduler has been started as the stack actually allocated to each task is given by the parameter passed to the xTaskCreate() function.  Have you tried increasing the stack allocated to the function that calls sprintf()?  You may be surprised as to how much it needs.