]> git.sur5r.net Git - freertos/commitdiff
Update demo project for Tensilita - work in progres..
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 21 Aug 2018 19:37:04 +0000 (19:37 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 21 Aug 2018 19:37:04 +0000 (19:37 +0000)
Add support for POSIX style errno - work in progress.

git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2561 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC/.cproject
FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC/.project
FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC/.settings/targets/xtensa/Debug.bts
FreeRTOS/Demo/Tensilica_Simulator_Xplorer_XCC/main_full.c
FreeRTOS/Demo/WIN32-MSVC/.vs/WIN32/v14/.suo
FreeRTOS/Source/include/FreeRTOS.h
FreeRTOS/Source/portable/IAR/ARM_CM3/portmacro.h
FreeRTOS/Source/tasks.c

index 8cca4c4afc057b9247a52f1c1fc6cba7d6605aa5..a574d0e62f095f3081928d55974ad42f1125b7c5 100644 (file)
                                                        <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="&quot;../${workspace_loc:RTOSDemo\FreeRTOS_Source\include}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../${workspace_loc:RTOSDemo\FreeRTOS_Source\portable\XCC}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\Tensilica_Simulator_Xplorer_XCC&quot;"/>\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="&quot;../${workspace_loc:RTOSDemo\FreeRTOS_Source\include}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../${workspace_loc:RTOSDemo\FreeRTOS_Source\portable\XCC}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\Tensilica_Simulator_Xplorer_XCC&quot;"/>\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="&quot;../${workspace_loc:RTOSDemo\FreeRTOS_Source\include}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../${workspace_loc:RTOSDemo\FreeRTOS_Source\portable\XCC}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\Users\ribarry\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\Tensilica_Simulator_Xplorer_XCC&quot;"/>\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
index 51db76b71e198ea795f400373b5c3fd3a0c996d9..e885f1a70d31ccdef3acb664c13be0087e261042 100644 (file)
                        <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
index e04cdd3495bf573df0375ae62e53030fe85de931..9a6fd1fadcd3b574f02b3ec38c35b4fdd3e71372 100644 (file)
@@ -2,6 +2,18 @@
 <BuildTarget tool="xtensa" version="1.0">
     <BuildSettings>
         <BaseSettings path="project">
+            <PreprocessorOptions>
+                <StringListMapOptions>
+                    <StringListMapEntry>
+                        <key>Includes</key>
+                        <value flag="-I" inheritance="prepend">
+                            <ListEntry>${workspace_loc:RTOSDemo/FreeRTOS_Source/include}</ListEntry>
+                            <ListEntry>${workspace_loc:RTOSDemo/FreeRTOS_Source/portable/XCC}</ListEntry>
+                            <ListEntry>${workspace_loc:RTOSDemo}</ListEntry>
+                        </value>
+                    </StringListMapEntry>
+                </StringListMapOptions>
+            </PreprocessorOptions>
             <CompilerOptions>
                 <FlagValueMapOptions>
                     <FlagValueMapEntry>
index 29d669b8d5e53b27ac5d2bc01774a49066bf4357..9e530647d5a63f3746d900bb48091280968f9fcb 100644 (file)
@@ -67,6 +67,7 @@
 #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
@@ -137,57 +112,45 @@ int main_full( void )
        /* 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
@@ -202,7 +165,6 @@ static void prvCheckTask( void *pvParameters )
 {\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
@@ -215,124 +177,105 @@ static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;
                /* 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
@@ -349,89 +292,39 @@ void vFullDemoTickHookFunction( void )
 {\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
index b50bd108f3bff098878054c2487aef0cdf7d5402..138d3b80c5931bbe53fbc7bc6c1ff6b3c815347f 100644 (file)
Binary files a/FreeRTOS/Demo/WIN32-MSVC/.vs/WIN32/v14/.suo and b/FreeRTOS/Demo/WIN32-MSVC/.vs/WIN32/v14/.suo differ
index 4b4088117b5481f31840e96129e6565d0e58440c..20f373937ccc120cf6f1210420a7ce0ff2b9c931 100644 (file)
@@ -806,6 +806,10 @@ extern "C" {
        #define configUSE_TASK_NOTIFICATIONS 1\r
 #endif\r
 \r
+#ifndef configUSE_POSIX_ERRNO\r
+       #define configUSE_POSIX_ERRNO 0\r
+#endif\r
+\r
 #ifndef portTICK_TYPE_IS_ATOMIC\r
        #define portTICK_TYPE_IS_ATOMIC 0\r
 #endif\r
@@ -928,6 +932,10 @@ V8 if desired. */
        #define pdTASK_CODE TaskFunction_t\r
        #define xListItem ListItem_t\r
        #define xList List_t\r
+\r
+       /* For libraries that break the list data hiding, and access list structure\r
+       members directly (which is not supposed to be done). */\r
+       #define pxContainer pvContainer\r
 #endif /* configENABLE_BACKWARD_COMPATIBILITY */\r
 \r
 #if( configUSE_ALTERNATIVE_API != 0 )\r
@@ -1033,7 +1041,9 @@ typedef struct xSTATIC_TCB
        #if( INCLUDE_xTaskAbortDelay == 1 )\r
                uint8_t ucDummy21;\r
        #endif\r
-\r
+       #if ( configUSE_POSIX_ERRNO == 1 )\r
+               int                             iDummy22;\r
+       #endif\r
 } StaticTask_t;\r
 \r
 /*\r
index 31994d2e9b2556471fd678cab381aa56dfbd8673..2f85d50799a29147b6ce59d4a4d8ffbd49042c09 100644 (file)
@@ -78,6 +78,12 @@ typedef unsigned long UBaseType_t;
 #define portBYTE_ALIGNMENT                     8\r
 /*-----------------------------------------------------------*/\r
 \r
+/* Compiler directives. */\r
+#define portWEAK_SYMBOL                                __attribute__( ( weak ) )\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+\r
 /* Scheduler utilities. */\r
 #define portYIELD()                                                                                    \\r
 {                                                                                                                      \\r
index ceb863c588080c414f6c3f9b741b1c9532e4138a..65c0f7b272948c5dd69f96b2e7a3daea91a4bcc4 100644 (file)
@@ -336,6 +336,10 @@ typedef struct TaskControlBlock_t
                uint8_t ucDelayAborted;\r
        #endif\r
 \r
+       #if( configUSE_POSIX_ERRNO == 1 )\r
+               int iTaskErrno;\r
+       #endif\r
+\r
 } tskTCB;\r
 \r
 /* The old tskTCB name is maintained above then typedefed to the new TCB_t name\r
@@ -365,6 +369,12 @@ PRIVILEGED_DATA static List_t xPendingReadyList;                                           /*< Tasks that have been r
 \r
 #endif\r
 \r
+/* Global POSIX errno. Its value is changed upon context switching to match\r
+the errno of the currently running task. */\r
+#if ( configUSE_POSIX_ERRNO == 1 )\r
+       int FreeRTOS_errno = 0;\r
+#endif\r
+\r
 /* Other file private variables. --------------------------------*/\r
 PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks     = ( UBaseType_t ) 0U;\r
 PRIVILEGED_DATA static volatile TickType_t xTickCount                          = ( TickType_t ) configINITIAL_TICK_COUNT;\r
@@ -2919,11 +2929,25 @@ void vTaskSwitchContext( void )
                /* Check for stack overflow, if configured. */\r
                taskCHECK_FOR_STACK_OVERFLOW();\r
 \r
+               /* Before the currently running task is switched out, save its errno. */\r
+               #if( configUSE_POSIX_ERRNO == 1 )\r
+               {\r
+                       pxCurrentTCB->iTaskErrno = FreeRTOS_errno;\r
+               }\r
+               #endif\r
+\r
                /* Select a new task to run using either the generic C or port\r
                optimised asm code. */\r
                taskSELECT_HIGHEST_PRIORITY_TASK(); /*lint !e9079 void * is used as this macro is used with timers and co-routines too.  Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */\r
                traceTASK_SWITCHED_IN();\r
 \r
+               /* After the new task is switched in, update the global errno. */\r
+               #if( configUSE_POSIX_ERRNO == 1 )\r
+               {\r
+                       FreeRTOS_errno = pxCurrentTCB->iTaskErrno;\r
+               }\r
+               #endif\r
+\r
                #if ( configUSE_NEWLIB_REENTRANT == 1 )\r
                {\r
                        /* Switch Newlib's _impure_ptr variable to point to the _reent\r