From: rtel Date: Wed, 13 Jun 2018 16:50:16 +0000 (+0000) Subject: Add the option to specify a stack size in the standard demo MessageBuffer tests. X-Git-Tag: V10.1.0~18 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=668ed677bf69b01ea0cb834dd4c83c5e46cfe4a3;p=freertos Add the option to specify a stack size in the standard demo MessageBuffer tests. Add stream and message buffer tests into the Zynq demo project. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2547 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project index 5dcf587a9..783ec0112 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.project @@ -219,7 +219,7 @@ - 1461598461900 + 1528755597221 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -228,7 +228,7 @@ - 1461598461910 + 1528755597236 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -237,7 +237,7 @@ - 1461598461930 + 1528755597244 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -246,7 +246,7 @@ - 1461598461940 + 1528755597250 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -255,7 +255,7 @@ - 1461598461940 + 1528755597254 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -264,7 +264,7 @@ - 1461598461950 + 1528755597258 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -273,7 +273,7 @@ - 1461598461960 + 1528755597263 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -282,7 +282,7 @@ - 1461598461960 + 1528755597267 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -291,7 +291,7 @@ - 1461598461980 + 1528755597271 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -300,7 +300,7 @@ - 1461598461990 + 1528755597278 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -309,7 +309,7 @@ - 1461598461990 + 1528755597282 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -318,7 +318,7 @@ - 1461598462000 + 1528755597288 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -327,7 +327,7 @@ - 1461598462000 + 1528755597292 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -336,7 +336,7 @@ - 1461598462020 + 1528755597302 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -345,7 +345,7 @@ - 1461598462020 + 1528755597306 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -354,7 +354,7 @@ - 1461598462030 + 1528755597310 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -363,7 +363,7 @@ - 1461598462040 + 1528755597314 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -372,7 +372,7 @@ - 1461598462040 + 1528755597318 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -381,7 +381,7 @@ - 1461598462050 + 1528755597321 src/Full_Demo/Standard-Demo-Tasks/Minimal 5 @@ -389,6 +389,42 @@ 1.0-name-matches-false-false-AbortDelay.c + + 1528755597325 + src/Full_Demo/Standard-Demo-Tasks/Minimal + 5 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-MessageBufferAMP.c + + + + 1528755597330 + src/Full_Demo/Standard-Demo-Tasks/Minimal + 5 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-MessageBufferDemo.c + + + + 1528755597334 + src/Full_Demo/Standard-Demo-Tasks/Minimal + 5 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-StreamBufferDemo.c + + + + 1528755597338 + src/Full_Demo/Standard-Demo-Tasks/Minimal + 5 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-StreamBufferInterrupt.c + + 1461598705091 src/lwIP_Demo/lwip-1.4.0/src/core diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h index 12b5f4af8..2c61dd6fe 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h @@ -78,7 +78,7 @@ #define configUSE_TICK_HOOK 1 #define configMAX_PRIORITIES ( 7 ) #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 250 ) /* Large in case configUSE_TASK_FPU_SUPPORT is 2 in which case all tasks have an FPU context. */ -#define configTOTAL_HEAP_SIZE ( 90 * 1024 ) +#define configTOTAL_HEAP_SIZE ( 125 * 1024 ) #define configMAX_TASK_NAME_LEN ( 10 ) #define configUSE_TRACE_FACILITY 1 #define configUSE_16_BIT_TICKS 0 diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c index 5e25957f6..601776de3 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/Full_Demo/main_full.c @@ -110,6 +110,10 @@ #include "IntSemTest.h" #include "StaticAllocation.h" #include "AbortDelay.h" +#include "MessageBufferDemo.h" +#include "StreamBufferDemo.h" +#include "StreamBufferInterrupt.h" +#include "MessageBufferAMP.h" /* Priorities for the demo application tasks. */ @@ -149,6 +153,9 @@ purpose of ensuring parameters are passed into tasks correctly. */ /* The base period used by the timer test tasks. */ #define mainTIMER_TEST_PERIOD ( 50 ) +/* Base stack size of tasks created in the message buffer demos. */ +#define mainMESSAGE_BUFFER_STACK_SIZE ( configMINIMAL_STACK_SIZE * 2 ) + /*-----------------------------------------------------------*/ @@ -221,6 +228,10 @@ void main_full( void ) vStartInterruptSemaphoreTasks(); vStartStaticallyAllocatedTasks(); vCreateAbortDelayTasks(); + vStartMessageBufferTasks( mainMESSAGE_BUFFER_STACK_SIZE ); + vStartStreamBufferTasks(); + vStartStreamBufferInterruptDemo(); + vStartMessageBufferAMPTasks( mainMESSAGE_BUFFER_STACK_SIZE ); /* Start the tasks that implements the command console on the UART, as described above. */ @@ -372,17 +383,37 @@ unsigned long ulErrorFound = pdFALSE; ulErrorFound |= 1UL << 16UL; } + if( xAreStreamBufferTasksStillRunning() != pdTRUE ) + { + ulErrorFound |= 1UL << 17UL; + } + + if( xAreMessageBufferTasksStillRunning() != pdTRUE ) + { + ulErrorFound |= 1UL << 18UL; + } + + if( xIsInterruptStreamBufferDemoStillRunning() != pdPASS ) + { + ulErrorFound |= 1UL << 19UL; + } + + if( xAreMessageBufferAMPTasksStillRunning() != pdPASS ) + { + ulErrorFound |= 1UL << 20UL; + } + /* Check that the register test 1 task is still running. */ if( ulLastRegTest1Value == ulRegTest1LoopCounter ) { - ulErrorFound |= 1UL << 17UL; + ulErrorFound |= 1UL << 21UL; } ulLastRegTest1Value = ulRegTest1LoopCounter; /* Check that the register test 2 task is still running. */ if( ulLastRegTest2Value == ulRegTest2LoopCounter ) { - ulErrorFound |= 1UL << 18UL; + ulErrorFound |= 1UL << 22UL; } ulLastRegTest2Value = ulRegTest2LoopCounter; diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c index 0e73951f6..eac082158 100644 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c +++ b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c @@ -76,6 +76,8 @@ #include "EventGroupsDemo.h" #include "TaskNotify.h" #include "IntSemTest.h" +#include "StreamBufferInterrupt.h" +#include "StreamBufferDemo.h" /* Xilinx includes. */ #include "platform.h" @@ -293,6 +295,14 @@ void vApplicationTickHook( void ) /* Use mutexes from interrupts. */ vInterruptSemaphorePeriodicTest(); + /* Writes to stream buffer byte by byte to test the stream buffer trigger + level functionality. */ + vPeriodicStreamBufferProcessing(); + + /* Writes a string to a string buffer four bytes at a time to demonstrate + a stream being sent from an interrupt to a task. */ + vBasicStreamBufferSendFromISR(); + /* Test flop alignment in interrupts - calling printf from an interrupt is BAD! */ #if( configASSERT_DEFINED == 1 ) diff --git a/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c index ccfe58b4d..435b62554 100644 --- a/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c +++ b/FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c @@ -220,7 +220,7 @@ int main( void ) vStartQueuePeekTasks(); vStartQueueSetTasks(); vStartEventGroupTasks(); - vStartMessageBufferTasks(); + vStartMessageBufferTasks( configMINIMAL_STACK_SIZE ); vStartStreamBufferTasks(); /* Exclude some tasks if using the kickstart version to ensure we stay within @@ -244,8 +244,8 @@ int main( void ) or not the correct/expected number of tasks are running at any given time. */ vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); - /* Uncomment the following line to configure the high frequency interrupt - used to measure the interrupt jitter time. + /* Uncomment the following line to configure the high frequency interrupt + used to measure the interrupt jitter time. vSetupHighFrequencyTimer(); */ /* Start the scheduler. */ @@ -497,7 +497,7 @@ void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, Stack function then they must be declared static - otherwise they will be allocated on the stack and so not exists after this function exits. */ static StaticTask_t xTimerTaskTCB; -static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ]; +static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ]; /* Pass out a pointer to the StaticTask_t structure in which the Timer task's state will be stored. */ diff --git a/FreeRTOS/Demo/CORTEX_M4_SimpleLink_CC3220SF_CCS/Full_Demo/main_full.c b/FreeRTOS/Demo/CORTEX_M4_SimpleLink_CC3220SF_CCS/Full_Demo/main_full.c index 21a30d125..b46668866 100644 --- a/FreeRTOS/Demo/CORTEX_M4_SimpleLink_CC3220SF_CCS/Full_Demo/main_full.c +++ b/FreeRTOS/Demo/CORTEX_M4_SimpleLink_CC3220SF_CCS/Full_Demo/main_full.c @@ -191,7 +191,7 @@ void main_full( void ) vStartTaskNotifyTask(); vStartInterruptSemaphoreTasks(); vStartStreamBufferTasks(); - vStartMessageBufferTasks(); + vStartMessageBufferTasks( configMINIMAL_STACK_SIZE ); /* Create the register check tasks, as described at the top of this file */ xTaskCreate( prvRegTestTaskEntry1, "Reg1", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_1_PARAMETER, tskIDLE_PRIORITY, NULL ); diff --git a/FreeRTOS/Demo/Common/Minimal/MessageBufferAMP.c b/FreeRTOS/Demo/Common/Minimal/MessageBufferAMP.c index dd7a209c7..2fa8ed0ba 100644 --- a/FreeRTOS/Demo/Common/Minimal/MessageBufferAMP.c +++ b/FreeRTOS/Demo/Common/Minimal/MessageBufferAMP.c @@ -126,18 +126,18 @@ BaseType_t xDemoStatus = pdPASS; /*-----------------------------------------------------------*/ -void vStartMessageBufferAMPTasks( void ) +void vStartMessageBufferAMPTasks( configSTACK_DEPTH_TYPE xStackSize ) { BaseType_t x; xControlMessageBuffer = xMessageBufferCreate( mbaCONTROL_MESSAGE_BUFFER_SIZE ); - xTaskCreate( prvCoreATask, /* The function that implements the task. */ - "AMPCoreA", /* Human readable name for the task. */ - configMINIMAL_STACK_SIZE, /* Stack size (in words!). */ - NULL, /* Task parameter is not used. */ - tskIDLE_PRIORITY, /* The priority at which the task is created. */ - NULL ); /* No use for the task handle. */ + xTaskCreate( prvCoreATask, /* The function that implements the task. */ + "AMPCoreA", /* Human readable name for the task. */ + xStackSize, /* Stack size (in words!). */ + NULL, /* Task parameter is not used. */ + tskIDLE_PRIORITY, /* The priority at which the task is created. */ + NULL ); /* No use for the task handle. */ for( x = 0; x < mbaNUMBER_OF_CORE_B_TASKS; x++ ) { @@ -149,7 +149,7 @@ BaseType_t x; ulCycleCounters and xCoreBMessageBuffers arrays. */ xTaskCreate( prvCoreBTasks, "AMPCoreB1", - configMINIMAL_STACK_SIZE, + xStackSize, ( void * ) x, tskIDLE_PRIORITY + 1, NULL ); diff --git a/FreeRTOS/Demo/Common/Minimal/MessageBufferDemo.c b/FreeRTOS/Demo/Common/Minimal/MessageBufferDemo.c index 819600db1..cbcff88e5 100644 --- a/FreeRTOS/Demo/Common/Minimal/MessageBufferDemo.c +++ b/FreeRTOS/Demo/Common/Minimal/MessageBufferDemo.c @@ -62,9 +62,6 @@ priority tasks, and from high to low priority tasks. */ /* A block time of 0 means "don't block". */ #define mbDONT_BLOCK ( 0 ) -/* The size of the stack allocated to the tasks that run as part of this demo/ -test. The stack size is over generous in most cases. */ -#define mbSTACK_SIZE ( configMINIMAL_STACK_SIZE + ( configMINIMAL_STACK_SIZE >> 1 ) ) /*-----------------------------------------------------------*/ /* @@ -122,33 +119,38 @@ static uint32_t ulNonBlockingRxCounter = 0; message buffer to test writing different lengths at different offsets. */ static const char *pc55ByteString = "One two three four five six seven eight nine ten eleve"; +/* Remember the required stack size so tasks can be created at run time (after +initialisation time. */ +static configSTACK_DEPTH_TYPE xBlockingStackSize = 0; /*-----------------------------------------------------------*/ -void vStartMessageBufferTasks( void ) +void vStartMessageBufferTasks( configSTACK_DEPTH_TYPE xStackSize ) { MessageBufferHandle_t xMessageBuffer; + xBlockingStackSize = ( xStackSize + ( xStackSize >> 1U ) ); + /* The echo servers sets up the message buffers before creating the echo client tasks. One set of tasks has the server as the higher priority, and the other has the client as the higher priority. */ - xTaskCreate( prvEchoServer, "1EchoServer", mbSTACK_SIZE, NULL, mbHIGHER_PRIORITY, NULL ); - xTaskCreate( prvEchoServer, "2EchoServer", mbSTACK_SIZE, NULL, mbLOWER_PRIORITY, NULL ); + xTaskCreate( prvEchoServer, "1EchoServer", xBlockingStackSize, NULL, mbHIGHER_PRIORITY, NULL ); + xTaskCreate( prvEchoServer, "2EchoServer", xBlockingStackSize, NULL, mbLOWER_PRIORITY, NULL ); /* The non blocking tasks run continuously and will interleave with each other, so must be created at the lowest priority. The message buffer they use is created and passed in using the task's parameter. */ xMessageBuffer = xMessageBufferCreate( mbMESSAGE_BUFFER_LENGTH_BYTES ); - xTaskCreate( prvNonBlockingReceiverTask, "NonBlkRx", configMINIMAL_STACK_SIZE, ( void * ) xMessageBuffer, tskIDLE_PRIORITY, NULL ); - xTaskCreate( prvNonBlockingSenderTask, "NonBlkTx", configMINIMAL_STACK_SIZE, ( void * ) xMessageBuffer, tskIDLE_PRIORITY, NULL ); + xTaskCreate( prvNonBlockingReceiverTask, "NonBlkRx", xStackSize, ( void * ) xMessageBuffer, tskIDLE_PRIORITY, NULL ); + xTaskCreate( prvNonBlockingSenderTask, "NonBlkTx", xStackSize, ( void * ) xMessageBuffer, tskIDLE_PRIORITY, NULL ); #if( configSUPPORT_STATIC_ALLOCATION == 1 ) { /* The sender tasks set up the message buffers before creating the receiver tasks. Priorities must be 0 and 1 as the priority is used to index into the xStaticMessageBuffers and ucBufferStorage arrays. */ - xTaskCreate( prvSenderTask, "1Sender", mbSTACK_SIZE, NULL, mbHIGHER_PRIORITY, NULL ); - xTaskCreate( prvSenderTask, "2Sender", mbSTACK_SIZE, NULL, mbLOWER_PRIORITY, NULL ); + xTaskCreate( prvSenderTask, "1Sender", xBlockingStackSize, NULL, mbHIGHER_PRIORITY, NULL ); + xTaskCreate( prvSenderTask, "2Sender", xBlockingStackSize, NULL, mbLOWER_PRIORITY, NULL ); } #endif /* configSUPPORT_STATIC_ALLOCATION */ } @@ -567,11 +569,11 @@ char cRxString[ 12 ]; /* Here prvSingleTaskTests() performs various tests on a message buffer that was created statically. */ prvSingleTaskTests( xMessageBuffer ); - xTaskCreate( prvReceiverTask, "MsgReceiver", mbSTACK_SIZE, ( void * ) xMessageBuffer, mbHIGHER_PRIORITY, NULL ); + xTaskCreate( prvReceiverTask, "MsgReceiver", xBlockingStackSize, ( void * ) xMessageBuffer, mbHIGHER_PRIORITY, NULL ); } else { - xTaskCreate( prvReceiverTask, "MsgReceiver", mbSTACK_SIZE, ( void * ) xMessageBuffer, mbLOWER_PRIORITY, NULL ); + xTaskCreate( prvReceiverTask, "MsgReceiver", xBlockingStackSize, ( void * ) xMessageBuffer, mbLOWER_PRIORITY, NULL ); } for( ;; ) diff --git a/FreeRTOS/Demo/Common/Minimal/StreamBufferDemo.c b/FreeRTOS/Demo/Common/Minimal/StreamBufferDemo.c index 8250b13d9..04a93a03f 100644 --- a/FreeRTOS/Demo/Common/Minimal/StreamBufferDemo.c +++ b/FreeRTOS/Demo/Common/Minimal/StreamBufferDemo.c @@ -652,7 +652,7 @@ BaseType_t xNonBlockingReceiveError = pdFALSE; static void prvReceiverTask( void *pvParameters ) { - StreamBufferHandle_t * const pxStreamBuffer = ( StreamBufferHandle_t * ) pvParameters; + StreamBufferHandle_t const pxStreamBuffer = ( StreamBufferHandle_t ) pvParameters; char cRxString[ 12 ]; /* Large enough to hold a 32-bit number in ASCII. */ const TickType_t xTicksToWait = pdMS_TO_TICKS( 5UL ); const size_t xStringLength = strlen( pc55ByteString ); diff --git a/FreeRTOS/Demo/Common/include/MessageBufferAMP.h b/FreeRTOS/Demo/Common/include/MessageBufferAMP.h index 80fdfc733..bd001ce64 100644 --- a/FreeRTOS/Demo/Common/include/MessageBufferAMP.h +++ b/FreeRTOS/Demo/Common/include/MessageBufferAMP.h @@ -28,7 +28,7 @@ #ifndef MESSAGE_BUFFER_AMP_H #define MESSAGE_BUFFER_AMP_H -void vStartMessageBufferAMPTasks( void ); +void vStartMessageBufferAMPTasks( configSTACK_DEPTH_TYPE xStackSize ); BaseType_t xAreMessageBufferAMPTasksStillRunning( void ); void vGenerateCoreBInterrupt( void * xUpdatedMessageBuffer ); diff --git a/FreeRTOS/Demo/Common/include/MessageBufferDemo.h b/FreeRTOS/Demo/Common/include/MessageBufferDemo.h index 87cb930f4..b993ade72 100644 --- a/FreeRTOS/Demo/Common/include/MessageBufferDemo.h +++ b/FreeRTOS/Demo/Common/include/MessageBufferDemo.h @@ -28,7 +28,7 @@ #ifndef MESSAGE_BUFFER_TEST_H #define MESSAGE_BUFFER_TEST_H -void vStartMessageBufferTasks( void ); +void vStartMessageBufferTasks( configSTACK_DEPTH_TYPE xStackSize ); BaseType_t xAreMessageBufferTasksStillRunning( void ); #endif /* MESSAGE_BUFFER_TEST_H */ diff --git a/FreeRTOS/Demo/WIN32-MSVC/main_full.c b/FreeRTOS/Demo/WIN32-MSVC/main_full.c index 1d7f5c32c..312d044a9 100644 --- a/FreeRTOS/Demo/WIN32-MSVC/main_full.c +++ b/FreeRTOS/Demo/WIN32-MSVC/main_full.c @@ -204,10 +204,10 @@ int main_full( void ) xTaskCreate( prvPermanentlyBlockingSemaphoreTask, "BlockSem", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); xTaskCreate( prvPermanentlyBlockingNotificationTask, "BlockNoti", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); - vStartMessageBufferTasks(); + vStartMessageBufferTasks( configMINIMAL_STACK_SIZE ); vStartStreamBufferTasks(); vStartStreamBufferInterruptDemo(); - vStartMessageBufferAMPTasks(); + vStartMessageBufferAMPTasks( configMINIMAL_STACK_SIZE ); #if( configSUPPORT_STATIC_ALLOCATION == 1 ) { diff --git a/FreeRTOS/Demo/WIN32-MingW/main_full.c b/FreeRTOS/Demo/WIN32-MingW/main_full.c index f051af45c..d65f03548 100644 --- a/FreeRTOS/Demo/WIN32-MingW/main_full.c +++ b/FreeRTOS/Demo/WIN32-MingW/main_full.c @@ -211,10 +211,10 @@ int main_full( void ) xTaskCreate( prvPermanentlyBlockingSemaphoreTask, "BlockSem", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); xTaskCreate( prvPermanentlyBlockingNotificationTask, "BlockNoti", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); - vStartMessageBufferTasks(); + vStartMessageBufferTasks( configMINIMAL_STACK_SIZE ); vStartStreamBufferTasks(); vStartStreamBufferInterruptDemo(); - vStartMessageBufferAMPTasks(); + vStartMessageBufferAMPTasks( configMINIMAL_STACK_SIZE ); #if( configSUPPORT_STATIC_ALLOCATION == 1 ) { diff --git a/FreeRTOS/Source/include/queue.h b/FreeRTOS/Source/include/queue.h index 1ef514bbe..d0c432652 100644 --- a/FreeRTOS/Source/include/queue.h +++ b/FreeRTOS/Source/include/queue.h @@ -37,6 +37,7 @@ extern "C" { #endif +#include "task.h" /** * Type by which queues are referenced. For example, a call to xQueueCreate()