#include "AbortDelay.h"\r
#include "MessageBufferDemo.h"\r
#include "StreamBufferDemo.h"\r
+#include "StreamBufferInterrupt.h"\r
+#include "MessageBufferAMP.h"\r
\r
/* Priorities at which the tasks are created. */\r
#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )\r
\r
vStartMessageBufferTasks();\r
vStartStreamBufferTasks();\r
+ vStartStreamBufferInterruptDemo();\r
+ vStartMessageBufferAMPTasks();\r
\r
#if( configUSE_PREEMPTION != 0 )\r
{\r
{\r
pcStatusMessage = "Error: Abort delay";\r
}\r
+ else if( xIsInterruptStreamBufferDemoStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Stream buffer interrupt";\r
+ }\r
+ else if( xAreMessageBufferAMPTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Message buffer AMP";\r
+ }\r
+\r
+ #if( configSUPPORT_STATIC_ALLOCATION == 1 )\r
+ else if( xAreStaticAllocationTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Static allocation";\r
+ }\r
+ #endif /* configSUPPORT_STATIC_ALLOCATION */\r
\r
/* This is the only task that uses stdout so its ok to call printf()\r
directly. */\r
- printf( ( char * ) "%s - %u\r\n", pcStatusMessage, ( unsigned int ) xTaskGetTickCount() );\r
+ printf( "%s - tick count %u - free heap %u - min free heap %u\r\n", pcStatusMessage,\r
+ xTaskGetTickCount(),\r
+ xPortGetFreeHeapSize(),\r
+ xPortGetMinimumEverFreeHeapSize() );\r
fflush( stdout );\r
}\r
}\r
level functionality. */\r
vPeriodicStreamBufferProcessing();\r
\r
+ /* Writes a string to a string buffer four bytes at a time to demonstrate\r
+ a stream being sent from an interrupt to a task. */\r
+ vBasicStreamBufferSendFromISR();\r
+\r
/* For code coverage purposes. */\r
xTimerTask = xTimerGetTimerDaemonTaskHandle();\r
configASSERT( uxTaskPriorityGetFromISR( xTimerTask ) == configTIMER_TASK_PRIORITY );\r