]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS-Plus/Demo/FreeRTOS_Plus_IoT_SDK/task_pool/main.c
New MSVC task pool demo now building both the task pool and TCP libraries.
[freertos] / FreeRTOS-Plus / Demo / FreeRTOS_Plus_IoT_SDK / task_pool / main.c
index fa52947a58a61ecdbe96bc551e5fb913e32549d6..9a93fcd3d7c4b3b9a2995f3f3306751a1dd5c92a 100644 (file)
@@ -339,6 +339,7 @@ uint32_t ulLoggingIPAddress;
        }\r
 \r
 #endif\r
+/*-----------------------------------------------------------*/\r
 \r
 /*\r
  * Callback that provides the inputs necessary to generate a randomized TCP\r
@@ -358,4 +359,55 @@ extern uint32_t ulApplicationGetNextSequenceNumber( uint32_t ulSourceAddress,
 \r
        return uxRand();\r
 }\r
+/*-----------------------------------------------------------*/\r
+\r
+/* configUSE_STATIC_ALLOCATION is set to 1, so the application must provide an\r
+implementation of vApplicationGetIdleTaskMemory() to provide the memory that is\r
+used by the Idle task. */\r
+void vApplicationGetIdleTaskMemory( StaticTask_t** ppxIdleTaskTCBBuffer, StackType_t** ppxIdleTaskStackBuffer, uint32_t* pulIdleTaskStackSize )\r
+{\r
+       /* If the buffers to be provided to the Idle task are declared inside this\r
+       function then they must be declared static - otherwise they will be allocated on\r
+       the stack and so not exists after this function exits. */\r
+       static StaticTask_t xIdleTaskTCB;\r
+       static StackType_t uxIdleTaskStack[configMINIMAL_STACK_SIZE];\r
+\r
+       /* Pass out a pointer to the StaticTask_t structure in which the Idle task's\r
+       state will be stored. */\r
+       *ppxIdleTaskTCBBuffer = &xIdleTaskTCB;\r
+\r
+       /* Pass out the array that will be used as the Idle task's stack. */\r
+       *ppxIdleTaskStackBuffer = uxIdleTaskStack;\r
+\r
+       /* Pass out the size of the array pointed to by *ppxIdleTaskStackBuffer.\r
+       Note that, as the array is necessarily of type StackType_t,\r
+       configMINIMAL_STACK_SIZE is specified in words, not bytes. */\r
+       *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* configUSE_STATIC_ALLOCATION and configUSE_TIMERS are both set to 1, so the\r
+application must provide an implementation of vApplicationGetTimerTaskMemory()\r
+to provide the memory that is used by the Timer service task. */\r
+void vApplicationGetTimerTaskMemory( StaticTask_t** ppxTimerTaskTCBBuffer, StackType_t** ppxTimerTaskStackBuffer, uint32_t* pulTimerTaskStackSize )\r
+{\r
+       /* If the buffers to be provided to the Timer task are declared inside this\r
+       function then they must be declared static - otherwise they will be allocated on\r
+       the stack and so not exists after this function exits. */\r
+       static StaticTask_t xTimerTaskTCB;\r
+       static StackType_t uxTimerTaskStack[configTIMER_TASK_STACK_DEPTH];\r
+\r
+       /* Pass out a pointer to the StaticTask_t structure in which the Timer\r
+       task's state will be stored. */\r
+       *ppxTimerTaskTCBBuffer = &xTimerTaskTCB;\r
+\r
+       /* Pass out the array that will be used as the Timer task's stack. */\r
+       *ppxTimerTaskStackBuffer = uxTimerTaskStack;\r
+\r
+       /* Pass out the size of the array pointed to by *ppxTimerTaskStackBuffer.\r
+       Note that, as the array is necessarily of type StackType_t,\r
+       configMINIMAL_STACK_SIZE is specified in words, not bytes. */\r
+       *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;\r
+}\r
+\r
 \r