void vApplicationStackOverflowHook()

in Debug_extra/FreeRTOS_demo/main.c [96:166]


void vApplicationStackOverflowHook( TaskHandle_t pxTask,
									char *pcTaskName );
void vApplicationTickHook( void );
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer,
									StackType_t **ppxIdleTaskStackBuffer,
									uint32_t *pulIdleTaskStackSize );
void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer,
									 StackType_t **ppxTimerTaskStackBuffer,
									 uint32_t *pulTimerTaskStackSize );

/*
 * Writes trace data to a disk file when the trace recording is stopped.
 * This function will simply overwrite any trace files that already exist.
 */
static void prvSaveTraceFile( void );

/*-----------------------------------------------------------*/

/* When configSUPPORT_STATIC_ALLOCATION is set to 1 the application writer can
use a callback function to optionally provide the memory required by the idle
and timer tasks.  This is the stack that will be used by the timer task.  It is
declared here, as a global, so it can be checked by a test that is implemented
in a different file. */
StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];

/* Notes if the trace is running or not. */
static BaseType_t xTraceRunning = pdTRUE;

/*-----------------------------------------------------------*/

int main( void )
{
	/* Do not include trace code when performing a code coverage analysis. */
	#if ( projCOVERAGE_TEST != 1 )
	{
		/* Initialise the trace recorder.  Use of the trace recorder is optional.
		See http://www.FreeRTOS.org/trace for more information. */
		vTraceEnable( TRC_START );

		/* Start the trace recording - the recording is written to a file if
		configASSERT() is called. */
		printf( "\r\nTrace started.\r\nThe trace will be dumped to disk if a call to configASSERT() fails.\r\n" );
		printf( "\r\nThe trace will be dumped to disk if Enter is hit.\r\n" );
		uiTraceStart();
	}
	#endif

	console_init();
	#if ( mainSELECTED_APPLICATION == ECHO_CLIENT_DEMO )
	{
		console_print("Starting echo client demo\n");
		main_tcp_echo_client_tasks();
	}
	#elif ( mainSELECTED_APPLICATION == BLINKY_DEMO )
	{
		console_print("Starting echo blinky demo\n");
		main_blinky();
	}
	#elif ( mainSELECTED_APPLICATION == FULL_DEMO)
	{
		console_print("Starting full demo\n");
		main_full();
	}
	#else
	{
		#error "The selected demo is not valid"
	}
	#endif /* if ( mainSELECTED_APPLICATION ) */

	return 0;
}