<tool errorParsers="org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.build.core.settings.holder.libs.283188354" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>\r
<tool errorParsers="org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.build.core.settings.holder.1363672131" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">\r
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.818579882" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Demo/Common/include"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Source/include"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/arch/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/lib/xcc/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/xtensa-elf/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++/xtensa-elf"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/arch/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/lib/xcc/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/xtensa-elf/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++/xtensa-elf"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/Common/include"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/include"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/portable/XCC/Xtensa"/>\r
+ <listOptionValue builtIn="false" value=""../${workspace_loc:RTOSDemo\FreeRTOS_Source\include}""/>\r
+ <listOptionValue builtIn="false" value=""../${workspace_loc:RTOSDemo\FreeRTOS_Source\portable\XCC}""/>\r
+ <listOptionValue builtIn="false" value=""C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\Tensilica_Simulator_Xplorer_XCC""/>\r
</option>\r
<option id="org.eclipse.cdt.build.core.settings.holder.symbols.1072492848" name="Symbols" superClass="org.eclipse.cdt.build.core.settings.holder.symbols" valueType="definedSymbols">\r
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>\r
</tool>\r
<tool errorParsers="org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.build.core.settings.holder.29534978" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">\r
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.1529034681" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Demo/Common/include"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Source/include"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/arch/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/lib/xcc/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/xtensa-elf/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++/xtensa-elf"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/arch/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/lib/xcc/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/xtensa-elf/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++/xtensa-elf"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/Common/include"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/include"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/portable/XCC/Xtensa"/>\r
+ <listOptionValue builtIn="false" value=""../${workspace_loc:RTOSDemo\FreeRTOS_Source\include}""/>\r
+ <listOptionValue builtIn="false" value=""../${workspace_loc:RTOSDemo\FreeRTOS_Source\portable\XCC}""/>\r
+ <listOptionValue builtIn="false" value=""C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\Tensilica_Simulator_Xplorer_XCC""/>\r
</option>\r
<option id="org.eclipse.cdt.build.core.settings.holder.symbols.459736431" name="Symbols" superClass="org.eclipse.cdt.build.core.settings.holder.symbols" valueType="definedSymbols">\r
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>\r
</tool>\r
<tool errorParsers="org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.build.core.settings.holder.541186543" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">\r
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.2101310742" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Demo/Common/include"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Source/include"/>\r
- <listOptionValue builtIn="false" value="C:/workplace/FreeRTOSSVN/FreeRTOS/Source/portable/ThirdParty/XCC/Xtensa"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/arch/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/lib/xcc/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/xtensa-elf/include"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++"/>\r
- <listOptionValue builtIn="false" value="C:/usr/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++/xtensa-elf"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/arch/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/lib/xcc/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/tools/RG-2017.8-win32/XtensaTools/xtensa-elf/include"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++"/>\r
+ <listOptionValue builtIn="false" value="C:/devtools/xtensa/XtDevTools/install/builds/RG-2017.8-win32/sample_controller/xtensa-elf/include/xcc/c++/xtensa-elf"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/Common/include"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/include"/>\r
+ <listOptionValue builtIn="false" value="C:/Users/ribarry/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/portable/XCC/Xtensa"/>\r
+ <listOptionValue builtIn="false" value=""../${workspace_loc:RTOSDemo\FreeRTOS_Source\include}""/>\r
+ <listOptionValue builtIn="false" value=""../${workspace_loc:RTOSDemo\FreeRTOS_Source\portable\XCC}""/>\r
+ <listOptionValue builtIn="false" value=""C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\Tensilica_Simulator_Xplorer_XCC""/>\r
</option>\r
<option id="org.eclipse.cdt.build.core.settings.holder.symbols.740810983" name="Symbols" superClass="org.eclipse.cdt.build.core.settings.holder.symbols" valueType="definedSymbols">\r
<listOptionValue builtIn="false" value="__CHAR_BIT__=8"/>\r
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>\r
</scannerConfigBuildInfo>\r
</storageModule>\r
- <storageModule moduleId="refreshScope" versionNumber="1">\r
- <resource resourceType="PROJECT" workspacePath="/RTOSDemo"/>\r
- </storageModule>\r
</cproject>\r
<type>1</type>\r
<locationURI>PARENT-1-PROJECT_LOC/Common/Minimal/GenQTest.c</locationURI>\r
</link>\r
- <link>\r
- <name>CommonDemoTasks/IntQueue.c</name>\r
- <type>1</type>\r
- <locationURI>PARENT-1-PROJECT_LOC/Common/Minimal/IntQueue.c</locationURI>\r
- </link>\r
<link>\r
<name>CommonDemoTasks/IntSemTest.c</name>\r
<type>1</type>\r
<type>1</type>\r
<locationURI>PARENT-1-PROJECT_LOC/Common/Minimal/death.c</locationURI>\r
</link>\r
+ <link>\r
+ <name>CommonDemoTasks/dynamic.c</name>\r
+ <type>1</type>\r
+ <locationURI>PARENT-1-PROJECT_LOC/Common/Minimal/dynamic.c</locationURI>\r
+ </link>\r
<link>\r
<name>CommonDemoTasks/flop.c</name>\r
<type>1</type>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/port.c</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/port.c</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/port.c</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/portasm.S</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/portasm.S</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/portasm.S</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/portbenchmark.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/portbenchmark.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/portbenchmark.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/portclib.c</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/portclib.c</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/portclib.c</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/portmacro.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/portmacro.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/portmacro.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/porttrace.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/porttrace.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/porttrace.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/readme_xtensa.txt</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/readme_xtensa.txt</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/readme_xtensa.txt</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_api.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_api.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_api.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_config.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_config.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_config.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_context.S</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_context.S</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_context.S</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_context.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_context.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_context.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_init.c</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_init.c</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_init.c</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_intr.c</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_intr.c</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_intr.c</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_intr_asm.S</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_intr_asm.S</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_intr_asm.S</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_overlay_os_hook.c</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_overlay_os_hook.c</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_overlay_os_hook.c</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_rtos.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_rtos.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_rtos.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_timer.h</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_timer.h</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_timer.h</locationURI>\r
</link>\r
<link>\r
<name>FreeRTOS_Source/portable/XCC/xtensa_vectors.S</name>\r
<type>1</type>\r
- <locationURI>PARENT-2-PROJECT_LOC/Source/portable/ThirdParty/XCC/Xtensa/xtensa_vectors.S</locationURI>\r
+ <locationURI>PARENT-2-PROJECT_LOC/Source/portable/XCC/Xtensa/xtensa_vectors.S</locationURI>\r
</link>\r
</linkedResources>\r
</projectDescription>\r
#include "TimerDemo.h"\r
#include "countsem.h"\r
#include "death.h"\r
+#include "dynamic.h"\r
#include "QueueSet.h"\r
#include "QueueOverwrite.h"\r
#include "EventGroupsDemo.h"\r
\r
#define mainTIMER_TEST_PERIOD ( 50 )\r
\r
-/* Parameters that are passed into the register check tasks solely for the\r
-purpose of ensuring parameters are passed into tasks correctly. */\r
-#define mainREG_TEST_TASK_1_PARAMETER ( ( void * ) 0x12345678 )\r
-#define mainREG_TEST_TASK_2_PARAMETER ( ( void * ) 0x87654321 )\r
-\r
-/* Whether or not to enable interrupt queue tests. */\r
-#define mainENABLE_INT_QUEUE_TESTS ( 0 )\r
-\r
/* The task that periodically checks that all the standard demo tasks are\r
* still executing and error free.\r
*/\r
static void prvCheckTask( void *pvParameters );\r
\r
-/* Tasks that implement register tests. */\r
-static void prvRegTest1Task( void *pvParameters );\r
-static void prvRegTest2Task( void *pvParameters );\r
-\r
-/* Functions implemented in assembly file regtest_xtensa.S. */\r
-extern void vRegTest1( void );\r
-extern void vRegTest2( void );\r
/*-----------------------------------------------------------*/\r
\r
/* The variable into which error messages are latched. */\r
static char *pcStatusMessage = "No errors";\r
\r
-/* The following two variables are used to communicate the status of the\r
-register check tasks to the check task. If the variables keep incrementing,\r
-then the register check tasks have not discovered any errors. If a variable\r
-stops incrementing, then an error has been found. */\r
-volatile unsigned long ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;\r
-\r
-/* The following variable is used to communicate whether the timers for the\r
-IntQueue tests have been Initialized. This is needed to ensure that the queues\r
-are accessed from the tick hook only after they have been created in the\r
-interrupt queue test. */\r
-volatile BaseType_t xTimerForQueueTestInitialized = pdFALSE;\r
/*-----------------------------------------------------------*/\r
\r
int main_full( void )\r
/* Start the check task as described at the top of this file. */\r
xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
\r
- #if( mainENABLE_INT_QUEUE_TESTS == 0 )\r
+ /* Create the standard demo tasks. */\r
+ vStartTaskNotifyTask();\r
+ vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
+ vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
+ vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );\r
+ vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY );\r
+ vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );\r
+\r
+ vStartQueuePeekTasks();\r
+ vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
+ vStartRecursiveMutexTasks();\r
+ vStartCountingSemaphoreTasks();\r
+ vStartDynamicPriorityTasks();\r
+ vStartQueueSetTasks();\r
+\r
+ vStartQueueOverwriteTask( mainQUEUE_OVERWRITE_PRIORITY );\r
+ vStartEventGroupTasks();\r
+ vStartInterruptSemaphoreTasks();\r
+ vStartQueueSetPollingTask();\r
+ vCreateBlockTimeTasks();\r
+\r
+ vCreateAbortDelayTasks();\r
+ vStartMessageBufferTasks( configMINIMAL_STACK_SIZE );\r
+\r
+ vStartStreamBufferTasks();\r
+ vStartStreamBufferInterruptDemo();\r
+\r
+ #if( configUSE_PREEMPTION != 0 )\r
{\r
- /* Create the standard demo tasks. */\r
- vStartTaskNotifyTask();\r
- vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
- vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
- vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );\r
- vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY );\r
- vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );\r
-\r
- vStartQueuePeekTasks();\r
- vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
- vStartRecursiveMutexTasks();\r
- vStartCountingSemaphoreTasks();\r
- vStartQueueSetTasks();\r
-\r
- vStartQueueOverwriteTask( mainQUEUE_OVERWRITE_PRIORITY );\r
- vStartEventGroupTasks();\r
- vStartInterruptSemaphoreTasks();\r
- vStartQueueSetPollingTask();\r
- vCreateBlockTimeTasks();\r
-\r
- #if( configUSE_PREEMPTION != 0 )\r
- {\r
- /* Don't expect these tasks to pass when preemption is not used. */\r
- vStartTimerDemoTask( mainTIMER_TEST_PERIOD );\r
- }\r
- #endif\r
-\r
- vCreateAbortDelayTasks();\r
- vStartMessageBufferTasks( configMINIMAL_STACK_SIZE );\r
-\r
- vStartStreamBufferTasks();\r
- vStartStreamBufferInterruptDemo();\r
-\r
- /* Create the register check tasks, as described at the top of this file */\r
- xTaskCreate( prvRegTest1Task, "Reg1", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_1_PARAMETER, tskIDLE_PRIORITY, NULL );\r
- xTaskCreate( prvRegTest2Task, "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_2_PARAMETER, tskIDLE_PRIORITY, NULL );\r
-\r
- /* The suicide tasks must be created last as they need to know how many\r
- tasks were running prior to their creation. This then allows them to\r
- ascertain whether or not the correct/expected number of tasks are running at\r
- any given time. */\r
- vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );\r
- }\r
- #else /* mainENABLE_INT_QUEUE_TESTS */\r
- {\r
- /* Start interrupt queue test tasks. */\r
- vStartInterruptQueueTasks();\r
+ /* Don't expect these tasks to pass when preemption is not used. */\r
+ vStartTimerDemoTask( mainTIMER_TEST_PERIOD );\r
}\r
- #endif /* mainENABLE_INT_QUEUE_TESTS */\r
+ #endif\r
+\r
+ /* The suicide tasks must be created last as they need to know how many\r
+ tasks were running prior to their creation. This then allows them to\r
+ ascertain whether or not the correct/expected number of tasks are running at\r
+ any given time. */\r
+ vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );\r
\r
/* Start the scheduler itself. */\r
vTaskStartScheduler();\r
{\r
TickType_t xNextWakeTime;\r
const TickType_t xCycleFrequency = pdMS_TO_TICKS( 5000UL );\r
-static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;\r
\r
/* Just to remove compiler warning. */\r
( void ) pvParameters;\r
/* Place this task in the blocked state until it is time to run again. */\r
vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );\r
\r
- #if( mainENABLE_INT_QUEUE_TESTS == 0 )\r
+ /* Check the standard demo tasks are running without error. */\r
+ #if( configUSE_PREEMPTION != 0 )\r
{\r
- /* Check the standard demo tasks are running without error. */\r
- #if( configUSE_PREEMPTION != 0 )\r
- {\r
- /* These tasks are only created when preemption is used. */\r
- if( xAreTimerDemoTasksStillRunning( xCycleFrequency ) != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: TimerDemo";\r
- }\r
- }\r
- #endif\r
-\r
- if( xAreTaskNotificationTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: Notification";\r
- }\r
- else if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: BlockQueue";\r
- }\r
- else if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: SemTest";\r
- }\r
- else if( xArePollingQueuesStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: PollQueue";\r
- }\r
- else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: IntMath";\r
- }\r
- else if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: GenQueue";\r
- }\r
- else if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: QueuePeek";\r
- }\r
- else if( xAreMathsTaskStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Flop";\r
- }\r
- else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
+ /* These tasks are only created when preemption is used. */\r
+ if( xAreTimerDemoTasksStillRunning( xCycleFrequency ) != pdTRUE )\r
{\r
- pcStatusMessage = "Error: RecMutex";\r
- }\r
- else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: CountSem";\r
- }\r
- else if( xAreQueueSetTasksStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Queue set";\r
- }\r
- else if( xIsQueueOverwriteTaskStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Queue overwrite";\r
- }\r
- else if( xAreEventGroupTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: EventGroup";\r
- }\r
- else if( xAreInterruptSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: IntSem";\r
- }\r
- else if( xAreQueueSetPollTasksStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Queue set polling";\r
- }\r
- else if( xAreBlockTimeTestTasksStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Block time";\r
- }\r
- else if( xAreAbortDelayTestTasksStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Abort delay";\r
- }\r
- else if( xAreMessageBufferTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: MessageBuffer";\r
- }\r
- else if( xAreStreamBufferTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: StreamBuffer";\r
- }\r
- else if( xIsInterruptStreamBufferDemoStillRunning() != pdPASS )\r
- {\r
- pcStatusMessage = "Error: Stream buffer interrupt";\r
- }\r
- else if( xIsCreateTaskStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: Death";\r
- }\r
- else if( ulLastRegTest1Value == ulRegTest1Counter )\r
- {\r
- pcStatusMessage = "Error: Reg Test 1";\r
- }\r
- else if( ulLastRegTest2Value == ulRegTest2Counter )\r
- {\r
- pcStatusMessage = "Error: Reg Test 2";\r
+ pcStatusMessage = "Error: TimerDemo";\r
}\r
+ }\r
+ #endif\r
\r
- /* Update register test counters. */\r
- ulLastRegTest1Value = ulRegTest1Counter;\r
- ulLastRegTest2Value = ulRegTest2Counter;\r
+ if( xAreTaskNotificationTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: Notification";\r
}\r
- #else /* mainENABLE_INT_QUEUE_TESTS */\r
+ else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
{\r
- if( xAreIntQueueTasksStillRunning() != pdTRUE )\r
- {\r
- pcStatusMessage = "Error: IntQueue";\r
- }\r
+ pcStatusMessage = "Error: IntMath";\r
+ }\r
+ else if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: GenQueue";\r
+ }\r
+ else if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: BlockQueue";\r
+ }\r
+ else if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: SemTest";\r
+ }\r
+ else if( xArePollingQueuesStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: PollQueue";\r
+ }\r
+ else if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: QueuePeek";\r
+ }\r
+ else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: RecMutex";\r
+ }\r
+ else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: CountSem";\r
+ }\r
+ else if( xAreDynamicPriorityTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Dynamic";\r
+ }\r
+ else if( xAreQueueSetTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Queue set";\r
+ }\r
+ else if( xAreEventGroupTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: EventGroup";\r
+ }\r
+ else if( xIsQueueOverwriteTaskStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Queue overwrite";\r
+ }\r
+ else if( xAreQueueSetPollTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Queue set polling";\r
+ }\r
+ else if( xAreBlockTimeTestTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Block time";\r
+ }\r
+ else if( xAreMessageBufferTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: MessageBuffer";\r
+ }\r
+ else if( xAreAbortDelayTestTasksStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Abort delay";\r
+ }\r
+ else if( xAreStreamBufferTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: StreamBuffer";\r
+ }\r
+ else if( xIsInterruptStreamBufferDemoStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Stream buffer interrupt";\r
+ }\r
+ else if( xAreInterruptSemaphoreTasksStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: IntSem";\r
+ }\r
+ else if( xIsCreateTaskStillRunning() != pdTRUE )\r
+ {\r
+ pcStatusMessage = "Error: Death";\r
+ }\r
+ else if( xAreMathsTaskStillRunning() != pdPASS )\r
+ {\r
+ pcStatusMessage = "Error: Flop";\r
}\r
- #endif /* mainENABLE_INT_QUEUE_TESTS */\r
\r
/* This is the only task that uses stdout so its ok to call printf()\r
directly. */\r
{\r
TaskHandle_t xTimerTask;\r
\r
- #if( mainENABLE_INT_QUEUE_TESTS == 0 )\r
+ /* Call the periodic timer test, which tests the timer API functions that\r
+ can be called from an ISR. */\r
+ #if( configUSE_PREEMPTION != 0 )\r
{\r
- /* Exercise using task notifications from an interrupt. */\r
- xNotifyTaskFromISR();\r
-\r
- /* Write to a queue that is in use as part of the queue set demo to\r
- * demonstrate using queue sets from an ISR. */\r
- vQueueSetAccessQueueSetFromISR();\r
-\r
- /* Call the periodic queue overwrite from ISR demo. */\r
- vQueueOverwritePeriodicISRDemo();\r
-\r
- /* Exercise event groups from interrupts. */\r
- vPeriodicEventGroupsProcessing();\r
+ /* Only created when preemption is used. */\r
+ vTimerPeriodicISRTests();\r
+ }\r
+ #endif\r
\r
- /* Exercise giving mutexes from an interrupt. */\r
- vInterruptSemaphorePeriodicTest();\r
+ /* Call the periodic queue overwrite from ISR demo. */\r
+ vQueueOverwritePeriodicISRDemo();\r
\r
- /* Queue set access from interrupt. */\r
- vQueueSetPollingInterruptAccess();\r
+ /* Write to a queue that is in use as part of the queue set demo to\r
+ demonstrate using queue sets from an ISR. */\r
+ vQueueSetAccessQueueSetFromISR();\r
+ vQueueSetPollingInterruptAccess();\r
\r
- /* Call the periodic timer test, which tests the timer API functions that\r
- can be called from an ISR. */\r
- #if( configUSE_PREEMPTION != 0 )\r
- {\r
- /* Only created when preemption is used. */\r
- vTimerPeriodicISRTests();\r
- }\r
- #endif\r
+ /* Exercise event groups from interrupts. */\r
+ vPeriodicEventGroupsProcessing();\r
\r
- /* Writes to stream buffer byte by byte to test the stream buffer trigger\r
- level functionality. */\r
- vPeriodicStreamBufferProcessing();\r
+ /* Exercise giving mutexes from an interrupt. */\r
+ vInterruptSemaphorePeriodicTest();\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
- #else /* mainENABLE_INT_QUEUE_TESTS */\r
- {\r
- /* Access queues from interrupt. Make sure to access after the queues have\r
- been created. */\r
- if( xTimerForQueueTestInitialized == pdTRUE )\r
- {\r
- portYIELD_FROM_ISR( xFirstTimerHandler() );\r
- }\r
- }\r
- #endif /* mainENABLE_INT_QUEUE_TESTS */\r
-}\r
-/*-----------------------------------------------------------*/\r
+ /* Exercise using task notifications from an interrupt. */\r
+ xNotifyTaskFromISR();\r
\r
-static void prvRegTest1Task( void *pvParameters )\r
-{\r
- /* Although the regtest task is written in assembly, its entry point is\r
- written in C for convenience of checking the task parameter is being passed\r
- in correctly. */\r
- if( pvParameters == mainREG_TEST_TASK_1_PARAMETER )\r
- {\r
- /* Start the part of the test that is written in assembly. */\r
- vRegTest1();\r
- }\r
+ /* Writes to stream buffer byte by byte to test the stream buffer trigger\r
+ level functionality. */\r
+ vPeriodicStreamBufferProcessing();\r
\r
- /* The following line will only execute if the task parameter is found to\r
- be incorrect. The check task will detect that the regtest loop counter is\r
- not being incremented and flag an error. */\r
- vTaskDelete( NULL );\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
/*-----------------------------------------------------------*/\r
\r
-static void prvRegTest2Task( void *pvParameters )\r
-{\r
- /* Although the regtest task is written in assembly, its entry point is\r
- written in C for convenience of checking the task parameter is being passed\r
- in correctly. */\r
- if( pvParameters == mainREG_TEST_TASK_2_PARAMETER )\r
- {\r
- /* Start the part of the test that is written in assembly. */\r
- vRegTest2();\r
- }\r
-\r
- /* The following line will only execute if the task parameter is found to\r
- be incorrect. The check task will detect that the regtest loop counter is\r
- not being incremented and flag an error. */\r
- vTaskDelete( NULL );\r
-}\r
-/*-----------------------------------------------------------*/\r