<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.2105562167" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.off" valueType="enumerated"/>\r
<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS.1581338624" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>\r
<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_LEVEL.669442165" name="Optimization level (--opt_level, -O)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_LEVEL.0" valueType="enumerated"/>\r
- <option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_FOR_SPEED.1297898020" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_FOR_SPEED.2" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_FOR_SPEED.1297898020" name="Speed vs. size trade-offs (--opt_for_speed, -mf)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.OPT_FOR_SPEED.2" valueType="enumerated"/>\r
<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS.1410406594" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS"/>\r
<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS.1014794987" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS"/>\r
<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS.372586409" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS"/>\r
</linkedResources>\r
<filteredResources>\r
<filter>\r
- <id>1427193581265</id>\r
+ <id>1444926372795</id>\r
<name></name>\r
<type>10</type>\r
<matcher>\r
</matcher>\r
</filter>\r
<filter>\r
- <id>1427193581275</id>\r
+ <id>1444926372800</id>\r
<name></name>\r
<type>10</type>\r
<matcher>\r
</matcher>\r
</filter>\r
<filter>\r
- <id>1427193581275</id>\r
+ <id>1444926372806</id>\r
<name></name>\r
<type>10</type>\r
<matcher>\r
<arguments>1.0-name-matches-false-false-Keil_*</arguments>\r
</matcher>\r
</filter>\r
+ <filter>\r
+ <id>1444926372810</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.dep</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444926372815</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.ewd</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444926372819</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.ewp</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444926372823</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.ewt</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444926372829</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.eww</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444926372834</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.uvoptx</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444926372841</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.uvprojx</arguments>\r
+ </matcher>\r
+ </filter>\r
<filter>\r
<id>1424106057421</id>\r
<name>Full_Demo</name>\r
encoding//Debug/Full_Demo/Standard_Demo_Tasks/subdir_vars.mk=UTF-8\r
encoding//Debug/Full_Demo/subdir_rules.mk=UTF-8\r
encoding//Debug/Full_Demo/subdir_vars.mk=UTF-8\r
-encoding//Debug/Objects/subdir_rules.mk=UTF-8\r
-encoding//Debug/Objects/subdir_vars.mk=UTF-8\r
encoding//Debug/SimplyBlinkyDemo/subdir_rules.mk=UTF-8\r
encoding//Debug/SimplyBlinkyDemo/subdir_vars.mk=UTF-8\r
encoding//Debug/SystemFiles_CCS/subdir_rules.mk=UTF-8\r
/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,\r
or 0 to run the more comprehensive test and demo application.\r
\r
-The comprehensive demo uses FreeRTOS+CLI to create a simple command line \r
+The comprehensive demo uses FreeRTOS+CLI to create a simple command line\r
interface through a UART.\r
\r
The blinky demo uses FreeRTOS's tickless idle mode to reduce power consumption.\r
-See the notes on the web page below regarding the difference in power saving \r
-that can be achieved between using the generic tickless implementation (as used \r
-by the blinky demo) and a tickless implementation that is tailored specifically \r
+See the notes on the web page below regarding the difference in power saving\r
+that can be achieved between using the generic tickless implementation (as used\r
+by the blinky demo) and a tickless implementation that is tailored specifically\r
to the MSP432.\r
- \r
+\r
See http://www.FreeRTOS.org/TI_MSP432_Free_RTOS_Demo.html for instructions. */\r
#define configCREATE_SIMPLE_TICKLESS_DEMO 0\r
\r
</option>\r
<option>\r
<name>OCDynDriverList</name>\r
- <state>JLINK_ID</state>\r
+ <state>IJET_ID</state>\r
</option>\r
<option>\r
<name>OCLastSavedByProductVersion</name>\r
<option>\r
<name>IjetResetList</name>\r
<version>1</version>\r
- <state>10</state>\r
+ <state>4</state>\r
</option>\r
<option>\r
<name>IjetHWResetDuration</name>\r
</option>\r
<option>\r
<name>IjetCpuClockEdit</name>\r
- <state>72.0</state>\r
+ <state></state>\r
</option>\r
<option>\r
<name>IjetSwoPrescalerList</name>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd1><Wnd4>\r
+ <SelectedTab>0</SelectedTab></Wnd1><Wnd3>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-2417-20288</Identity>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-18267-27197</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>\r
+ <SelectedTab>0</SelectedTab></Wnd3></Windows>\r
<Editor>\r
\r
\r
\r
\r
- <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>128</YPos2><SelStart2>5940</SelStart2><SelEnd2>5940</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>100</YPos2><SelStart2>5615</SelStart2><SelEnd2>5615</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>2232</YPos2><SelStart2>76407</SelStart2><SelEnd2>76435</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\include\StackMacros.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>76</YPos2><SelStart2>4839</SelStart2><SelEnd2>4839</SelEnd2></Tab><ActiveTab>2</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>74</YPos2><SelStart2>4540</SelStart2><SelEnd2>4540</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
<Positions>\r
\r
\r
\r
\r
\r
- <Top><Row0><Sizes><Toolbar-00359FA0><key>iaridepm.enu1</key></Toolbar-00359FA0></Sizes></Row0><Row1><Sizes><Toolbar-0D2EC0B0><key>debuggergui.enu1</key></Toolbar-0D2EC0B0></Sizes></Row1><Row2><Sizes><Toolbar-0D2DBAF8><key>armjet.enu1</key></Toolbar-0D2DBAF8></Sizes></Row2></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>585</Bottom><Right>307</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>183929</sizeVertCX><sizeVertCY>596545</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>585</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>596545</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>307</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>309</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>314024</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+ <Top><Row0><Sizes><Toolbar-00C4A4B8><key>iaridepm.enu1</key></Toolbar-00C4A4B8></Sizes></Row0><Row1><Sizes><Toolbar-0F081000><key>debuggergui.enu1</key></Toolbar-0F081000></Sizes></Row1><Row2><Sizes><Toolbar-0F0810C8><key>armjet.enu1</key></Toolbar-0F0810C8></Sizes></Row2></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>585</Bottom><Right>307</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>183929</sizeVertCX><sizeVertCY>596545</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>307</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>309</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>314024</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
</Desktop>\r
</Project>\r
\r
LimitSize=0\r
ByteLimit=50\r
[PlDriver]\r
-MemConfigValue=\r
+MemConfigValue=C:\DevTools\IAR Systems\Embedded Workbench 7.2\arm\CONFIG\debugger\TexasInstruments\MSP432P401R.svd\r
FirstRun=0\r
-[PlCacheRanges]\r
-CustomRanges0=0 0 536870912 1 0\r
-CustomRangesText0=Code\r
-CustomRanges1=0 536870912 33554432 0 0\r
-CustomRangesText1=SRAM\r
-CustomRanges2=0 570425344 33554432 0 0\r
-CustomRangesText2=bit-banding\r
-CustomRanges3=0 1073741824 33554432 2 0\r
-CustomRangesText3=Peripheral\r
-CustomRanges4=0 1107296256 33554432 2 0\r
-CustomRangesText4=bit-banding\r
-CustomRanges5=0 3758096384 536870912 2 0\r
-CustomRangesText5=Private peripheral\r
[Jet]\r
JetConnSerialNo=73866\r
JetConnFoundProbes=\r
OnlineReset=Software\r
PrevWtdReset=System\r
[DebugChecksum]\r
-Checksum=701872400\r
+Checksum=-1201177865\r
[Exceptions]\r
StopOnUncaught=_ 0\r
StopOnThrow=_ 0\r
ITMlogFile=$PROJ_DIR$\ITM.log\r
[Breakpoints]\r
Count=0\r
+[PlCacheRanges]\r
+CustomRanges0=0 0 536870912 1 0\r
+CustomRangesText0=Code\r
+CustomRanges1=0 536870912 33554432 0 0\r
+CustomRangesText1=SRAM\r
+CustomRanges2=0 570425344 33554432 0 0\r
+CustomRangesText2=bit-banding\r
+CustomRanges3=0 1073741824 33554432 2 0\r
+CustomRangesText3=Peripheral\r
+CustomRanges4=0 1107296256 33554432 2 0\r
+CustomRangesText4=bit-banding\r
+CustomRanges5=0 3758096384 536870912 2 0\r
+CustomRangesText5=Private peripheral\r
[Trace2]\r
Enabled=0\r
ShowSource=0\r
EventLSU=0\r
EventSLEEP=0\r
[PowerLog]\r
+Title_0=I0\r
+Symbol_0=0 4 1\r
LogEnabled=0\r
GraphEnabled=0\r
ShowTimeLog=1\r
-ShowTimeSum=0\r
-Title_0=I0\r
-Symbol_0=0 4 1\r
LiveEnabled=0\r
LiveFile=PowerLogLive.log\r
[DataLog]\r
LogEnabled=0\r
-SumEnabled=0\r
GraphEnabled=0\r
ShowTimeLog=1\r
+SumEnabled=0\r
ShowTimeSum=1\r
[EventLog]\r
+Title_0=Ch3\r
+Symbol_0=0 4 1\r
+Title_1=Ch2\r
+Symbol_1=0 4 1\r
+Title_2=Ch1\r
+Symbol_2=0 4 1\r
+Title_3=Ch0\r
+Symbol_3=0 4 1\r
LogEnabled=0\r
-SumEnabled=0\r
GraphEnabled=0\r
ShowTimeLog=1\r
+SumEnabled=0\r
ShowTimeSum=1\r
SumSortOrder=0\r
[InterruptLog]\r
LogEnabled=0\r
-SumEnabled=0\r
GraphEnabled=0\r
ShowTimeLog=1\r
+SumEnabled=0\r
ShowTimeSum=1\r
SumSortOrder=0\r
[CallStackLog]\r
Enabled=0\r
+[CallStackStripe]\r
+ShowTiming=1\r
[DriverProfiling]\r
Enabled=0\r
Mode=3\r
<Windows>\r
\r
\r
- <Wnd1>\r
+ <Wnd2>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-2476-27879</Identity>\r
<Factory>Workspace</Factory>\r
<Session>\r
\r
- <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode></NodeDict></Session>\r
+ <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS_Source</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS_Source/tasks.c</ExpandedNode></NodeDict></Session>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd1><Wnd3>\r
+ <SelectedTab>0</SelectedTab></Wnd2><Wnd3>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-28448-28006</Identity>\r
\r
\r
\r
- <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>61</YPos2><SelStart2>5940</SelStart2><SelEnd2>5940</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>67</YPos2><SelStart2>5615</SelStart2><SelEnd2>5615</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
<Positions>\r
\r
\r
\r
\r
\r
- <Top><Row0><Sizes><Toolbar-010D90F0><key>iaridepm.enu1</key></Toolbar-010D90F0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>587</Bottom><Right>381</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>227976</sizeVertCX><sizeVertCY>598577</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>353</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>355</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>360772</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+ <Top><Row0><Sizes><Toolbar-00C4A4B8><key>iaridepm.enu1</key></Toolbar-00C4A4B8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>587</Bottom><Right>381</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>227976</sizeVertCX><sizeVertCY>598577</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>353</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>355</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>360772</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
</Desktop>\r
</Workspace>\r
\r
--- /dev/null
+[{000214A0-0000-0000-C000-000000000046}]\r
+Prop3=19,2\r
+[InternetShortcut]\r
+URL=http://www.freertos.org/Renesas_RZ-T_Cortex-R4F-RTOS.html\r
+IDList=\r
1 tab == 4 spaces!\r
*/\r
SECTION intvec:CODE:ROOT(2)\r
- ARM\r
+ ARM\r
\r
EXTERN pxISRFunction\r
EXTERN FreeRTOS_Tick_Handler\r
<Windows>\r
\r
\r
- <Wnd1>\r
+ <Wnd0>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-31096-4084</Identity>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd1><Wnd3>\r
+ <SelectedTab>0</SelectedTab></Wnd0><Wnd2>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-12820-6268</Identity>\r
</Tab>\r
<Tab><Identity>TabID-6803-3328</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs>\r
\r
- <SelectedTab>1</SelectedTab></Wnd3></Windows>\r
+ <SelectedTab>1</SelectedTab></Wnd2></Windows>\r
<Editor>\r
\r
\r
\r
\r
- <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>67</YPos2><SelStart2>6976</SelStart2><SelEnd2>6976</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Full_Demo\main_full.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>69</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Blinky_Demo\main_blinky.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>69</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\IAR\ARM_CRx_No_GIC\portASM.s</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>81</YPos2><SelStart2>4099</SelStart2><SelEnd2>4099</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Full_Demo\reg_test_IAR.asm</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>101</YPos2><SelStart2>5250</SelStart2><SelEnd2>5250</SelEnd2></Tab><ActiveTab>4</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>67</YPos2><SelStart2>6976</SelStart2><SelEnd2>6976</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Full_Demo\main_full.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>69</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Blinky_Demo\main_blinky.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>69</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
<Positions>\r
\r
\r
\r
\r
\r
- <Top><Row0><Sizes><Toolbar-00BB9AA0><key>iaridepm.enu1</key></Toolbar-00BB9AA0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>619</Bottom><Right>383</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>229167</sizeVertCX><sizeVertCY>631098</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>321</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>323</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>328252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+ <Top><Row0><Sizes><Toolbar-00BC9AA0><key>iaridepm.enu1</key></Toolbar-00BC9AA0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>619</Bottom><Right>383</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>229167</sizeVertCX><sizeVertCY>631098</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>321</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>323</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>328252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
</Desktop>\r
</Workspace>\r
\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
static void FreeRTOS_Tick_Handler_Entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR R1, =FreeRTOS_Tick_Handler \t\n" \\r
- "STR R1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR R1, =FreeRTOS_Tick_Handler \t\n"\r
+ "STR R1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
* interrupt entry (including interrupt nesting), before calling the C function\r
* saved in the pxISRFunction variable. NOTE: The entry points are naked\r
* functions - do not add C code to these functions.\r
+ *\r
+ * See http://www.freertos.org/Renesas_RZ-T_Cortex-R4F-RTOS.html\r
*/\r
#ifdef __GNUC__\r
/* The IAR equivalent is implemented in\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
static void vCMT_1_Channel_0_ISR_Entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR r1, =vCMT_1_Channel_0_ISR \t\n" \\r
- "STR r1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR r1, =vCMT_1_Channel_0_ISR \t\n"\r
+ "STR r1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
static void vCMT_1_Channel_1_ISR_Entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR r1, =vCMT_1_Channel_1_ISR \t\n" \\r
- "STR r1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR r1, =vCMT_1_Channel_1_ISR \t\n"\r
+ "STR r1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
( void ) pxPort;\r
\r
/* Don't send the string unless the previous string has been sent. */\r
- if( xSendingTask == NULL )\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
{\r
/* Ensure the calling task's notification state is not already\r
pending. */\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
void r_scifa2_txif2_interrupt_entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR r1, =r_scifa2_txif2_interrupt \t\n" \\r
- "STR r1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR r1, =r_scifa2_txif2_interrupt \t\n"\r
+ "STR r1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
void r_scifa2_rxif2_interrupt_entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR r1, =r_scifa2_rxif2_interrupt \t\n" \\r
- "STR r1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR r1, =r_scifa2_rxif2_interrupt \t\n"\r
+ "STR r1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
void r_scifa2_drif2_interrupt_entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR r1, =r_scifa2_drif2_interrupt \t\n" \\r
- "STR r1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR r1, =r_scifa2_drif2_interrupt \t\n"\r
+ "STR r1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
$PROJ_DIR$/System/IAR/Interrupt_Entry_Stubs.asm */\r
void r_scifa2_brif2_interrupt_entry( void )\r
{\r
- __asm volatile ( \\r
- "PUSH {r0-r1} \t\n" \\r
- "LDR r0, =pxISRFunction \t\n" \\r
- "LDR r1, =r_scifa2_brif2_interrupt \t\n" \\r
- "STR r1, [r0] \t\n" \\r
- "POP {r0-r1} \t\n" \\r
+ __asm volatile (\r
+ "PUSH {r0-r1} \t\n"\r
+ "LDR r0, =pxISRFunction \t\n"\r
+ "LDR r1, =r_scifa2_brif2_interrupt \t\n"\r
+ "STR r1, [r0] \t\n"\r
+ "POP {r0-r1} \t\n"\r
"B FreeRTOS_IRQ_Handler "\r
);\r
}\r
* THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO\r
* APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!\r
*\r
+ * http://www.freertos.org/Renesas_RZ-T_Cortex-R4F-RTOS.html\r
+ *\r
*/\r
\r
/* Standard includes. */\r
\r
/*-----------------------------------------------------------*/\r
\r
+/* See http://www.freertos.org/Renesas_RZ-T_Cortex-R4F-RTOS.html */\r
int main( void )\r
{\r
/* The start up code does not include a routine to clear the BSS segment to\r
encoding//Debug/sources.mk=UTF-8\r
encoding//Debug/subdir_rules.mk=UTF-8\r
encoding//Debug/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/Blinky_Demo/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/Blinky_Demo/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/CCS_Only/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/CCS_Only/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/FreeRTOS_Source/portable/MemMang/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/FreeRTOS_Source/portable/MemMang/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/FreeRTOS_Source/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/FreeRTOS_Source/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/Full_Demo/FreeRTOS+CLI/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/Full_Demo/FreeRTOS+CLI/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/Full_Demo/Standard_Demo_Tasks/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/Full_Demo/Standard_Demo_Tasks/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/Full_Demo/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/Full_Demo/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/driverlib/MSP430FR5xx_6xx/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/driverlib/MSP430FR5xx_6xx/subdir_vars.mk=UTF-8\r
+encoding//Large_Data/makefile=UTF-8\r
+encoding//Large_Data/objects.mk=UTF-8\r
+encoding//Large_Data/sources.mk=UTF-8\r
+encoding//Large_Data/subdir_rules.mk=UTF-8\r
+encoding//Large_Data/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/Blinky_Demo/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/Blinky_Demo/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/CCS_Only/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/CCS_Only/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/FreeRTOS_Source/portable/MemMang/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/FreeRTOS_Source/portable/MemMang/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/FreeRTOS_Source/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/FreeRTOS_Source/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/Full_Demo/FreeRTOS+CLI/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/Full_Demo/FreeRTOS+CLI/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/Full_Demo/Standard_Demo_Tasks/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/Full_Demo/Standard_Demo_Tasks/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/Full_Demo/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/Full_Demo/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/driverlib/MSP430FR5xx_6xx/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/driverlib/MSP430FR5xx_6xx/subdir_vars.mk=UTF-8\r
+encoding//Small_Data/makefile=UTF-8\r
+encoding//Small_Data/objects.mk=UTF-8\r
+encoding//Small_Data/sources.mk=UTF-8\r
+encoding//Small_Data/subdir_rules.mk=UTF-8\r
+encoding//Small_Data/subdir_vars.mk=UTF-8\r
#else\r
/* Using the CCS pre-processor constants. */\r
#ifdef __LARGE_DATA_MODEL__\r
- #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 )\r
+ #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 85 )\r
#else\r
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 140 )\r
#endif\r
#define configUSE_TRACE_FACILITY 0\r
#define configUSE_16_BIT_TICKS 1\r
#define configIDLE_SHOULD_YIELD 1\r
+#define configCHECK_FOR_STACK_OVERFLOW 2\r
\r
/* Co-routine definitions. */\r
#define configUSE_CO_ROUTINES 1\r
*/\r
static void prvSetupHardware( void );\r
\r
+/* Prototypes for the standard FreeRTOS callback/hook functions implemented\r
+within this file. */\r
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName );\r
+\r
/*-----------------------------------------------------------*/\r
\r
/* The queue used to send messages to the LCD task. */\r
}\r
/*-----------------------------------------------------------*/\r
\r
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )\r
+{\r
+ ( void ) pcTaskName;\r
+ ( void ) pxTask;\r
+\r
+ /* Run time stack overflow checking is performed if\r
+ configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook\r
+ function is called if a stack overflow is detected. */\r
+ taskDISABLE_INTERRUPTS();\r
+ for( ;; );\r
+}\r
+\r
# Distribution Directory
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
+# Source Files Quoted if spaced
+SOURCEFILES_QUOTED_IF_SPACED=../../Source/portable/MemMang/heap_1.c ../../Source/portable/MPLAB/PIC24_dsPIC/port.c ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S ../../Source/list.c ../../Source/queue.c ../../Source/tasks.c ../../Source/timers.c ../../Source/croutine.c ../Common/Minimal/BlockQ.c ../Common/Minimal/blocktim.c ../Common/Minimal/comtest.c ../Common/Minimal/crflash.c ../Common/Minimal/integer.c timertest.c lcd.c main.c serial/serial.c ParTest/ParTest.c
+
# Object Files Quoted if spaced
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/897580706/heap_1.o ${OBJECTDIR}/_ext/410575107/port.o ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o ${OBJECTDIR}/_ext/1787047461/list.o ${OBJECTDIR}/_ext/1787047461/queue.o ${OBJECTDIR}/_ext/1787047461/tasks.o ${OBJECTDIR}/_ext/1787047461/timers.o ${OBJECTDIR}/_ext/1787047461/croutine.o ${OBJECTDIR}/_ext/270959020/BlockQ.o ${OBJECTDIR}/_ext/270959020/blocktim.o ${OBJECTDIR}/_ext/270959020/comtest.o ${OBJECTDIR}/_ext/270959020/crflash.o ${OBJECTDIR}/_ext/270959020/integer.o ${OBJECTDIR}/timertest.o ${OBJECTDIR}/lcd.o ${OBJECTDIR}/main.o ${OBJECTDIR}/serial/serial.o ${OBJECTDIR}/ParTest/ParTest.o
POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/897580706/heap_1.o.d ${OBJECTDIR}/_ext/410575107/port.o.d ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d ${OBJECTDIR}/_ext/1787047461/list.o.d ${OBJECTDIR}/_ext/1787047461/queue.o.d ${OBJECTDIR}/_ext/1787047461/tasks.o.d ${OBJECTDIR}/_ext/1787047461/timers.o.d ${OBJECTDIR}/_ext/1787047461/croutine.o.d ${OBJECTDIR}/_ext/270959020/BlockQ.o.d ${OBJECTDIR}/_ext/270959020/blocktim.o.d ${OBJECTDIR}/_ext/270959020/comtest.o.d ${OBJECTDIR}/_ext/270959020/crflash.o.d ${OBJECTDIR}/_ext/270959020/integer.o.d ${OBJECTDIR}/timertest.o.d ${OBJECTDIR}/lcd.o.d ${OBJECTDIR}/main.o.d ${OBJECTDIR}/serial/serial.o.d ${OBJECTDIR}/ParTest/ParTest.o.d
# Object Files
OBJECTFILES=${OBJECTDIR}/_ext/897580706/heap_1.o ${OBJECTDIR}/_ext/410575107/port.o ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o ${OBJECTDIR}/_ext/1787047461/list.o ${OBJECTDIR}/_ext/1787047461/queue.o ${OBJECTDIR}/_ext/1787047461/tasks.o ${OBJECTDIR}/_ext/1787047461/timers.o ${OBJECTDIR}/_ext/1787047461/croutine.o ${OBJECTDIR}/_ext/270959020/BlockQ.o ${OBJECTDIR}/_ext/270959020/blocktim.o ${OBJECTDIR}/_ext/270959020/comtest.o ${OBJECTDIR}/_ext/270959020/crflash.o ${OBJECTDIR}/_ext/270959020/integer.o ${OBJECTDIR}/timertest.o ${OBJECTDIR}/lcd.o ${OBJECTDIR}/main.o ${OBJECTDIR}/serial/serial.o ${OBJECTDIR}/ParTest/ParTest.o
+# Source Files
+SOURCEFILES=../../Source/portable/MemMang/heap_1.c ../../Source/portable/MPLAB/PIC24_dsPIC/port.c ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S ../../Source/list.c ../../Source/queue.c ../../Source/tasks.c ../../Source/timers.c ../../Source/croutine.c ../Common/Minimal/BlockQ.c ../Common/Minimal/blocktim.c ../Common/Minimal/comtest.c ../Common/Minimal/crflash.c ../Common/Minimal/integer.c timertest.c lcd.c main.c serial/serial.c ParTest/ParTest.c
+
CFLAGS=
ASFLAGS=
FIXDEPS=fixDeps
.build-conf: ${BUILD_SUBPROJECTS}
- ${MAKE} ${MAKE_OPTIONS} -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
+ifneq ($(INFORMATION_MESSAGE), )
+ @echo $(INFORMATION_MESSAGE)
+endif
+ ${MAKE} -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
MP_PROCESSOR_OPTION=24FJ128GA010
MP_LINKER_FILE_OPTION=,--script=p24FJ128GA010.gld
# Rules for buildStep: compile
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${OBJECTDIR}/_ext/897580706/heap_1.o: ../../Source/portable/MemMang/heap_1.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/897580706
+ @${MKDIR} "${OBJECTDIR}/_ext/897580706"
@${RM} ${OBJECTDIR}/_ext/897580706/heap_1.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MemMang/heap_1.c -o ${OBJECTDIR}/_ext/897580706/heap_1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/897580706/heap_1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/897580706/heap_1.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MemMang/heap_1.c -o ${OBJECTDIR}/_ext/897580706/heap_1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/897580706/heap_1.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/897580706/heap_1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/410575107/port.o: ../../Source/portable/MPLAB/PIC24_dsPIC/port.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/410575107
+ @${MKDIR} "${OBJECTDIR}/_ext/410575107"
@${RM} ${OBJECTDIR}/_ext/410575107/port.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/port.c -o ${OBJECTDIR}/_ext/410575107/port.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/port.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/410575107/port.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/port.c -o ${OBJECTDIR}/_ext/410575107/port.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/port.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/410575107/port.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/list.o: ../../Source/list.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/list.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/list.c -o ${OBJECTDIR}/_ext/1787047461/list.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/list.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/list.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/list.c -o ${OBJECTDIR}/_ext/1787047461/list.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/list.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/list.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/queue.o: ../../Source/queue.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/queue.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/queue.c -o ${OBJECTDIR}/_ext/1787047461/queue.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/queue.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/queue.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/queue.c -o ${OBJECTDIR}/_ext/1787047461/queue.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/queue.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/queue.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/tasks.o: ../../Source/tasks.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/tasks.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/tasks.c -o ${OBJECTDIR}/_ext/1787047461/tasks.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/tasks.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/tasks.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/tasks.c -o ${OBJECTDIR}/_ext/1787047461/tasks.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/tasks.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/tasks.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/timers.o: ../../Source/timers.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/timers.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/timers.c -o ${OBJECTDIR}/_ext/1787047461/timers.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/timers.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/timers.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/timers.c -o ${OBJECTDIR}/_ext/1787047461/timers.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/timers.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/timers.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/croutine.o: ../../Source/croutine.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/croutine.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/croutine.c -o ${OBJECTDIR}/_ext/1787047461/croutine.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/croutine.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/croutine.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/croutine.c -o ${OBJECTDIR}/_ext/1787047461/croutine.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/croutine.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/croutine.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/BlockQ.o: ../Common/Minimal/BlockQ.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/BlockQ.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/BlockQ.c -o ${OBJECTDIR}/_ext/270959020/BlockQ.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/BlockQ.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/BlockQ.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/BlockQ.c -o ${OBJECTDIR}/_ext/270959020/BlockQ.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/BlockQ.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/BlockQ.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/blocktim.o: ../Common/Minimal/blocktim.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/blocktim.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/blocktim.c -o ${OBJECTDIR}/_ext/270959020/blocktim.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/blocktim.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/blocktim.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/blocktim.c -o ${OBJECTDIR}/_ext/270959020/blocktim.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/blocktim.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/blocktim.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/comtest.o: ../Common/Minimal/comtest.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/comtest.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/comtest.c -o ${OBJECTDIR}/_ext/270959020/comtest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/comtest.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/comtest.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/comtest.c -o ${OBJECTDIR}/_ext/270959020/comtest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/comtest.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/comtest.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/crflash.o: ../Common/Minimal/crflash.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/crflash.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/crflash.c -o ${OBJECTDIR}/_ext/270959020/crflash.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/crflash.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/crflash.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/crflash.c -o ${OBJECTDIR}/_ext/270959020/crflash.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/crflash.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/crflash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/integer.o: ../Common/Minimal/integer.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/integer.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/integer.c -o ${OBJECTDIR}/_ext/270959020/integer.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/integer.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/integer.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/integer.c -o ${OBJECTDIR}/_ext/270959020/integer.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/integer.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/integer.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/timertest.o: timertest.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}
+ @${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/timertest.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) timertest.c -o ${OBJECTDIR}/timertest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/timertest.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/timertest.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) timertest.c -o ${OBJECTDIR}/timertest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/timertest.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/timertest.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/lcd.o: lcd.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}
+ @${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/lcd.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) lcd.c -o ${OBJECTDIR}/lcd.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/lcd.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/lcd.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) lcd.c -o ${OBJECTDIR}/lcd.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/lcd.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/lcd.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}
+ @${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) main.c -o ${OBJECTDIR}/main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/main.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/main.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) main.c -o ${OBJECTDIR}/main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/main.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/serial/serial.o: serial/serial.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/serial
+ @${MKDIR} "${OBJECTDIR}/serial"
@${RM} ${OBJECTDIR}/serial/serial.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) serial/serial.c -o ${OBJECTDIR}/serial/serial.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/serial/serial.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/serial/serial.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) serial/serial.c -o ${OBJECTDIR}/serial/serial.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/serial/serial.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/serial/serial.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/ParTest/ParTest.o: ParTest/ParTest.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/ParTest
+ @${MKDIR} "${OBJECTDIR}/ParTest"
@${RM} ${OBJECTDIR}/ParTest/ParTest.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ParTest/ParTest.c -o ${OBJECTDIR}/ParTest/ParTest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/ParTest/ParTest.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/ParTest/ParTest.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ParTest/ParTest.c -o ${OBJECTDIR}/ParTest/ParTest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/ParTest/ParTest.o.d" -g -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/ParTest/ParTest.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
else
${OBJECTDIR}/_ext/897580706/heap_1.o: ../../Source/portable/MemMang/heap_1.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/897580706
+ @${MKDIR} "${OBJECTDIR}/_ext/897580706"
@${RM} ${OBJECTDIR}/_ext/897580706/heap_1.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MemMang/heap_1.c -o ${OBJECTDIR}/_ext/897580706/heap_1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/897580706/heap_1.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/897580706/heap_1.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MemMang/heap_1.c -o ${OBJECTDIR}/_ext/897580706/heap_1.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/897580706/heap_1.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/897580706/heap_1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/410575107/port.o: ../../Source/portable/MPLAB/PIC24_dsPIC/port.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/410575107
+ @${MKDIR} "${OBJECTDIR}/_ext/410575107"
@${RM} ${OBJECTDIR}/_ext/410575107/port.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/port.c -o ${OBJECTDIR}/_ext/410575107/port.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/port.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/410575107/port.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/port.c -o ${OBJECTDIR}/_ext/410575107/port.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/port.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/410575107/port.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/list.o: ../../Source/list.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/list.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/list.c -o ${OBJECTDIR}/_ext/1787047461/list.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/list.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/list.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/list.c -o ${OBJECTDIR}/_ext/1787047461/list.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/list.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/list.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/queue.o: ../../Source/queue.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/queue.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/queue.c -o ${OBJECTDIR}/_ext/1787047461/queue.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/queue.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/queue.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/queue.c -o ${OBJECTDIR}/_ext/1787047461/queue.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/queue.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/queue.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/tasks.o: ../../Source/tasks.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/tasks.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/tasks.c -o ${OBJECTDIR}/_ext/1787047461/tasks.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/tasks.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/tasks.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/tasks.c -o ${OBJECTDIR}/_ext/1787047461/tasks.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/tasks.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/tasks.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/timers.o: ../../Source/timers.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/timers.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/timers.c -o ${OBJECTDIR}/_ext/1787047461/timers.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/timers.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/timers.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/timers.c -o ${OBJECTDIR}/_ext/1787047461/timers.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/timers.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/timers.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/1787047461/croutine.o: ../../Source/croutine.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/1787047461
+ @${MKDIR} "${OBJECTDIR}/_ext/1787047461"
@${RM} ${OBJECTDIR}/_ext/1787047461/croutine.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/croutine.c -o ${OBJECTDIR}/_ext/1787047461/croutine.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/croutine.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/1787047461/croutine.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../../Source/croutine.c -o ${OBJECTDIR}/_ext/1787047461/croutine.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/1787047461/croutine.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/1787047461/croutine.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/BlockQ.o: ../Common/Minimal/BlockQ.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/BlockQ.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/BlockQ.c -o ${OBJECTDIR}/_ext/270959020/BlockQ.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/BlockQ.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/BlockQ.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/BlockQ.c -o ${OBJECTDIR}/_ext/270959020/BlockQ.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/BlockQ.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/BlockQ.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/blocktim.o: ../Common/Minimal/blocktim.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/blocktim.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/blocktim.c -o ${OBJECTDIR}/_ext/270959020/blocktim.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/blocktim.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/blocktim.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/blocktim.c -o ${OBJECTDIR}/_ext/270959020/blocktim.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/blocktim.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/blocktim.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/comtest.o: ../Common/Minimal/comtest.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/comtest.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/comtest.c -o ${OBJECTDIR}/_ext/270959020/comtest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/comtest.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/comtest.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/comtest.c -o ${OBJECTDIR}/_ext/270959020/comtest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/comtest.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/comtest.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/crflash.o: ../Common/Minimal/crflash.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/crflash.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/crflash.c -o ${OBJECTDIR}/_ext/270959020/crflash.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/crflash.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/crflash.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/crflash.c -o ${OBJECTDIR}/_ext/270959020/crflash.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/crflash.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/crflash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/_ext/270959020/integer.o: ../Common/Minimal/integer.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/270959020
+ @${MKDIR} "${OBJECTDIR}/_ext/270959020"
@${RM} ${OBJECTDIR}/_ext/270959020/integer.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/integer.c -o ${OBJECTDIR}/_ext/270959020/integer.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/integer.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/_ext/270959020/integer.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ../Common/Minimal/integer.c -o ${OBJECTDIR}/_ext/270959020/integer.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/270959020/integer.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/_ext/270959020/integer.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/timertest.o: timertest.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}
+ @${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/timertest.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) timertest.c -o ${OBJECTDIR}/timertest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/timertest.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/timertest.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) timertest.c -o ${OBJECTDIR}/timertest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/timertest.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/timertest.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/lcd.o: lcd.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}
+ @${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/lcd.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) lcd.c -o ${OBJECTDIR}/lcd.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/lcd.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/lcd.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) lcd.c -o ${OBJECTDIR}/lcd.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/lcd.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/lcd.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}
+ @${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) main.c -o ${OBJECTDIR}/main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/main.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/main.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) main.c -o ${OBJECTDIR}/main.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/main.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/serial/serial.o: serial/serial.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/serial
+ @${MKDIR} "${OBJECTDIR}/serial"
@${RM} ${OBJECTDIR}/serial/serial.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) serial/serial.c -o ${OBJECTDIR}/serial/serial.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/serial/serial.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/serial/serial.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) serial/serial.c -o ${OBJECTDIR}/serial/serial.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/serial/serial.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/serial/serial.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
${OBJECTDIR}/ParTest/ParTest.o: ParTest/ParTest.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/ParTest
+ @${MKDIR} "${OBJECTDIR}/ParTest"
@${RM} ${OBJECTDIR}/ParTest/ParTest.o.d
- ${MP_CC} $(MP_EXTRA_CC_PRE) ParTest/ParTest.c -o ${OBJECTDIR}/ParTest/ParTest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/ParTest/ParTest.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
+ @${RM} ${OBJECTDIR}/ParTest/ParTest.o
+ ${MP_CC} $(MP_EXTRA_CC_PRE) ParTest/ParTest.c -o ${OBJECTDIR}/ParTest/ParTest.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/ParTest/ParTest.o.d" -g -omf=elf -ffunction-sections -fdata-sections -O0 -msmart-io=1 -Wall -msfr-warn=off -I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra
@${FIXDEPS} "${OBJECTDIR}/ParTest/ParTest.o.d" $(SILENT) -rsi ${MP_CC_DIR}../
endif
# Rules for buildStep: assemblePreproc
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
${OBJECTDIR}/_ext/410575107/portasm_PIC24.o: ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/410575107
+ @${MKDIR} "${OBJECTDIR}/_ext/410575107"
@${RM} ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d
- ${MP_CC} $(MP_EXTRA_AS_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S -o ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d" -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -Wa,-MD,"${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.asm.d",--defsym=__MPLAB_BUILD=1,--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_ICD3=1,-g,--no-relax$(MP_EXTRA_AS_POST)
+ @${RM} ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o
+ ${MP_CC} $(MP_EXTRA_AS_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S -o ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d" -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -Wa,-MD,"${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.asm.d",--defsym=__MPLAB_BUILD=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_SIMULATOR=1,-g,--no-relax$(MP_EXTRA_AS_POST)
@${FIXDEPS} "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d" "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.asm.d" -t $(SILENT) -rsi ${MP_CC_DIR}../
else
${OBJECTDIR}/_ext/410575107/portasm_PIC24.o: ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${OBJECTDIR}/_ext/410575107
+ @${MKDIR} "${OBJECTDIR}/_ext/410575107"
@${RM} ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d
+ @${RM} ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o
${MP_CC} $(MP_EXTRA_AS_PRE) ../../Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S -o ${OBJECTDIR}/_ext/410575107/portasm_PIC24.o -c -mcpu=$(MP_PROCESSOR_OPTION) -MMD -MF "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d" -omf=elf -Wa,-MD,"${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.asm.d",--defsym=__MPLAB_BUILD=1,-g,--no-relax$(MP_EXTRA_AS_POST)
@${FIXDEPS} "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.d" "${OBJECTDIR}/_ext/410575107/portasm_PIC24.o.asm.d" -t $(SILENT) -rsi ${MP_CC_DIR}../
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -D__DEBUG -D__MPLAB_DEBUGGER_ICD3=1 -omf=elf -Wl,--defsym=__MPLAB_BUILD=1,--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_ICD3=1,$(MP_LINKER_FILE_OPTION),--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,--report-mem$(MP_EXTRA_LD_POST)
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -D__DEBUG -D__MPLAB_DEBUGGER_SIMULATOR=1 -omf=elf -Wl,,--defsym=__MPLAB_BUILD=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_SIMULATOR=1,$(MP_LINKER_FILE_OPTION),--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--report-mem,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml$(MP_EXTRA_LD_POST)
else
dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -omf=elf -Wl,--defsym=__MPLAB_BUILD=1,$(MP_LINKER_FILE_OPTION),--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,--report-mem$(MP_EXTRA_LD_POST)
- ${MP_CC_DIR}\\xc16-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -a -omf=elf
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -o dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mcpu=$(MP_PROCESSOR_OPTION) -omf=elf -Wl,,--defsym=__MPLAB_BUILD=1,$(MP_LINKER_FILE_OPTION),--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--report-mem,--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml$(MP_EXTRA_LD_POST)
+ ${MP_CC_DIR}\\xc16-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/PIC24_MPLAB.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -a -omf=elf
endif
#\r
-#Sat Jun 08 17:32:26 BST 2013\r
-default.com-microchip-mplab-nbide-toolchainXC16-XC16LanguageToolchain.md5=654ec2e9d4aec452652bf33d59c2beac\r
-default.languagetoolchain.dir=C\:\\devtools\\Microchip\\xc16\\v1.11\\bin\r
-com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=8fe1589514540343a5279c082104bce0\r
-default.languagetoolchain.version=1.11\r
+#Thu Oct 15 21:03:35 BST 2015\r
+default.com-microchip-mplab-nbide-toolchainXC16-XC16LanguageToolchain.md5=7b5555b9f3fac10bdeeaa71fff22c072\r
+default.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc16\\v1.25\\bin\r
+configurations-xml=e1668378027c43cfe57bea932c980e61\r
+com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=17a71d03e7d3823160f3e8681fc226e8\r
+default.languagetoolchain.version=1.25\r
host.platform=windows\r
conf.ids=default\r
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
#
SHELL=cmd.exe
-PATH_TO_IDE_BIN=C:/devtools/Microchip/MPLABX/mplab_ide/mplab_ide/modules/../../bin/
+PATH_TO_IDE_BIN=C:/DevTools/Microchip/MPLABX/v3.10/mplab_ide/mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path.
-PATH:=C:/devtools/Microchip/MPLABX/mplab_ide/mplab_ide/modules/../../bin/:$(PATH)
+PATH:=C:/DevTools/Microchip/MPLABX/v3.10/mplab_ide/mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created
-MP_JAVA_PATH="C:\devtools\Microchip\MPLABX\sys\java\jre1.7.0_17/bin/"
+MP_JAVA_PATH="C:\DevTools\Microchip\MPLABX\v3.10\sys\java\jre1.7.0_79/bin/"
OS_CURRENT="$(shell uname -s)"
-MP_CC="C:\devtools\Microchip\xc16\v1.11\bin\xc16-gcc.exe"
+MP_CC="C:\DevTools\Microchip\xc16\v1.25\bin\xc16-gcc.exe"
# MP_CPPC is not defined
# MP_BC is not defined
-# MP_AS is not defined
+MP_AS="C:\DevTools\Microchip\xc16\v1.25\bin\xc16-as.exe"
# MP_LD is not defined
-MP_AR="C:\devtools\Microchip\xc16\v1.11\bin\xc16-ar.exe"
-DEP_GEN=${MP_JAVA_PATH}java -jar "C:/devtools/Microchip/MPLABX/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar"
-MP_CC_DIR="C:\devtools\Microchip\xc16\v1.11\bin"
+MP_AR="C:\DevTools\Microchip\xc16\v1.25\bin\xc16-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "C:/DevTools/Microchip/MPLABX/v3.10/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="C:\DevTools\Microchip\xc16\v1.25\bin"
# MP_CPPC_DIR is not defined
# MP_BC_DIR is not defined
-# MP_AS_DIR is not defined
+MP_AS_DIR="C:\DevTools\Microchip\xc16\v1.25\bin"
# MP_LD_DIR is not defined
-MP_AR_DIR="C:\devtools\Microchip\xc16\v1.11\bin"
+MP_AR_DIR="C:\DevTools\Microchip\xc16\v1.25\bin"
# MP_BC_DIR is not defined
<targetDevice>PIC24FJ128GA010</targetDevice>\r
<targetHeader></targetHeader>\r
<targetPluginBoard></targetPluginBoard>\r
- <platformTool>ICD3PlatformTool</platformTool>\r
+ <platformTool>Simulator</platformTool>\r
<languageToolchain>XC16</languageToolchain>\r
- <languageToolchainVersion>1.11</languageToolchainVersion>\r
+ <languageToolchainVersion>1.25</languageToolchainVersion>\r
<platform>3</platform>\r
</toolsSet>\r
<compileType>\r
<linkerLibItems>\r
</linkerLibItems>\r
</linkerTool>\r
+ <archiverTool>\r
+ </archiverTool>\r
<loading>\r
<useAlternateLoadableFile>false</useAlternateLoadableFile>\r
+ <parseOnProdLoad>false</parseOnProdLoad>\r
<alternateLoadableFile></alternateLoadableFile>\r
</loading>\r
</compileType>\r
<property key="code-model" value="default"/>\r
<property key="const-model" value="default"/>\r
<property key="data-model" value="default"/>\r
+ <property key="disable-instruction-scheduling" value="false"/>\r
<property key="enable-all-warnings" value="true"/>\r
<property key="enable-ansi-std" value="false"/>\r
<property key="enable-ansi-warnings" value="false"/>\r
<property key="preprocessor-macros" value=""/>\r
<property key="scalar-model" value="default"/>\r
<property key="use-cci" value="false"/>\r
+ <property key="use-iar" value="false"/>\r
<appendMe value="-I ../../Source/include -I ../../Source/portable/MPLAB/PIC24_dsPIC -I ../Common/include -I . -Wextra"/>\r
</C30>\r
+ <C30-AR>\r
+ <property key="additional-options-chop-files" value="false"/>\r
+ </C30-AR>\r
<C30-AS>\r
+ <property key="assembler-symbols" value=""/>\r
+ <property key="expand-macros" value="false"/>\r
+ <property key="extra-include-directories-for-assembler" value=""/>\r
+ <property key="extra-include-directories-for-preprocessor" value=""/>\r
+ <property key="false-conditionals" value="false"/>\r
+ <property key="keep-locals" value="false"/>\r
+ <property key="list-assembly" value="false"/>\r
+ <property key="list-section-info" value="false"/>\r
+ <property key="list-source" value="false"/>\r
+ <property key="list-symbols" value="false"/>\r
+ <property key="oXC16asm-extra-opts" value=""/>\r
+ <property key="oXC16asm-list-to-file" value="false"/>\r
+ <property key="omit-debug-dirs" value="false"/>\r
+ <property key="omit-forms" value="false"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="relax" value="false"/>\r
+ <property key="warning-level" value="emit-warnings"/>\r
</C30-AS>\r
<C30-LD>\r
+ <property key="additional-options-use-response-files" value="false"/>\r
+ <property key="boot-eeprom" value="no_eeprom"/>\r
+ <property key="boot-flash" value="no_flash"/>\r
+ <property key="boot-ram" value="no_ram"/>\r
+ <property key="boot-write-protect" value="no_write_protect"/>\r
+ <property key="enable-check-sections" value="false"/>\r
+ <property key="enable-data-init" value="true"/>\r
+ <property key="enable-default-isr" value="true"/>\r
+ <property key="enable-handles" value="true"/>\r
+ <property key="enable-pack-data" value="true"/>\r
+ <property key="extra-lib-directories" value=""/>\r
+ <property key="fill-flash-options-addr" value=""/>\r
+ <property key="fill-flash-options-const" value=""/>\r
+ <property key="fill-flash-options-how" value="0"/>\r
+ <property key="fill-flash-options-inc-const" value="1"/>\r
+ <property key="fill-flash-options-increment" value=""/>\r
+ <property key="fill-flash-options-seq" value=""/>\r
+ <property key="fill-flash-options-what" value="0"/>\r
+ <property key="general-code-protect" value="no_code_protect"/>\r
+ <property key="general-write-protect" value="no_write_protect"/>\r
+ <property key="generate-cross-reference-file" value="false"/>\r
+ <property key="heap-size" value=""/>\r
+ <property key="input-libraries" value=""/>\r
+ <property key="linker-stack" value="true"/>\r
+ <property key="linker-symbols" value=""/>\r
+ <property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>\r
+ <property key="oXC16ld-extra-opts" value=""/>\r
+ <property key="oXC16ld-fill-upper" value="0"/>\r
+ <property key="oXC16ld-force-link" value="false"/>\r
+ <property key="oXC16ld-no-smart-io" value="false"/>\r
+ <property key="oXC16ld-nostdlib" value="false"/>\r
+ <property key="oXC16ld-stackguard" value="16"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="remove-unused-sections" value="false"/>\r
+ <property key="report-memory-usage" value="true"/>\r
+ <property key="secure-eeprom" value="no_eeprom"/>\r
+ <property key="secure-flash" value="no_flash"/>\r
+ <property key="secure-ram" value="no_ram"/>\r
+ <property key="secure-write-protect" value="no_write_protect"/>\r
+ <property key="stack-size" value="16"/>\r
+ <property key="symbol-stripping" value=""/>\r
+ <property key="trace-symbols" value=""/>\r
+ <property key="warn-section-align" value="false"/>\r
</C30-LD>\r
<C30Global>\r
+ <property key="common-include-directories" value=""/>\r
+ <property key="dual-boot-partition" value="0"/>\r
+ <property key="fast-math" value="false"/>\r
+ <property key="generic-16-bit" value="false"/>\r
+ <property key="legacy-libc" value="false"/>\r
+ <property key="oXC16glb-macros" value=""/>\r
+ <property key="output-file-format" value="elf"/>\r
+ <property key="relaxed-math" value="false"/>\r
+ <property key="save-temps" value="false"/>\r
</C30Global>\r
<ICD3PlatformTool>\r
+ <property key="ADC 1" value="true"/>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="CRC" value="true"/>\r
+ <property key="Freeze All Other Peripherals" value="true"/>\r
+ <property key="I2C1" value="true"/>\r
+ <property key="I2C2" value="true"/>\r
+ <property key="INPUT CAPTURE 1" value="true"/>\r
+ <property key="INPUT CAPTURE 2" value="true"/>\r
+ <property key="INPUT CAPTURE 3" value="true"/>\r
+ <property key="INPUT CAPTURE 4" value="true"/>\r
+ <property key="INPUT CAPTURE 5" value="true"/>\r
+ <property key="OUTPUT COMPARE 1" value="true"/>\r
+ <property key="OUTPUT COMPARE 2" value="true"/>\r
+ <property key="OUTPUT COMPARE 3" value="true"/>\r
+ <property key="OUTPUT COMPARE 4" value="true"/>\r
+ <property key="OUTPUT COMPARE 5" value="true"/>\r
+ <property key="SPI 1" value="true"/>\r
+ <property key="SPI 2" value="true"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="TIMER1" value="true"/>\r
+ <property key="TIMER2" value="true"/>\r
+ <property key="TIMER3" value="true"/>\r
+ <property key="TIMER4" value="true"/>\r
+ <property key="TIMER5" value="true"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="UART 1" value="true"/>\r
+ <property key="UART 2" value="true"/>\r
+ <property key="debugoptions.useswbreakpoints" value="false"/>\r
+ <property key="hwtoolclock.frcindebug" value="false"/>\r
+ <property key="memories.aux" value="false"/>\r
+ <property key="memories.bootflash" value="false"/>\r
+ <property key="memories.configurationmemory" value="true"/>\r
+ <property key="memories.configurationmemory2" value="true"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="true"/>\r
+ <property key="memories.flashdata" value="true"/>\r
+ <property key="memories.id" value="true"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x157fb"/>\r
+ <property key="memories.programmemory.partition2" value="true"/>\r
+ <property key="memories.programmemory.partition2.end"\r
+ value="${memories.programmemory.partition2.end.value}"/>\r
+ <property key="memories.programmemory.partition2.start"\r
+ value="${memories.programmemory.partition2.start.value}"/>\r
+ <property key="memories.programmemory.start" value="0x0"/>\r
+ <property key="poweroptions.powerenable" value="false"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x157fb"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x0"/>\r
+ <property key="programoptions.preserveuserid" value="false"/>\r
+ <property key="programoptions.programcalmem" value="false"/>\r
+ <property key="programoptions.programuserotp" value="false"/>\r
+ <property key="programoptions.testmodeentrymethod" value="VDDFirst"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ <property key="voltagevalue" value="3.25"/>\r
</ICD3PlatformTool>\r
+ <Simulator>\r
+ <property key="codecoverage.enabled" value="Disable"/>\r
+ <property key="codecoverage.enableoutputtofile" value="false"/>\r
+ <property key="codecoverage.outputfile" value=""/>\r
+ <property key="oscillator.auxfrequency" value="120"/>\r
+ <property key="oscillator.auxfrequencyunit" value="Mega"/>\r
+ <property key="oscillator.frequency" value="1"/>\r
+ <property key="oscillator.frequencyunit" value="Mega"/>\r
+ <property key="oscillator.rcfrequency" value="250"/>\r
+ <property key="oscillator.rcfrequencyunit" value="Kilo"/>\r
+ <property key="performancedata.show" value="false"/>\r
+ <property key="periphADC1.altscl" value="false"/>\r
+ <property key="periphADC1.minTacq" value=""/>\r
+ <property key="periphADC1.tacqunits" value="microseconds"/>\r
+ <property key="periphADC2.altscl" value="false"/>\r
+ <property key="periphADC2.minTacq" value=""/>\r
+ <property key="periphADC2.tacqunits" value="microseconds"/>\r
+ <property key="periphComp1.gte" value="gt"/>\r
+ <property key="periphComp2.gte" value="gt"/>\r
+ <property key="periphComp3.gte" value="gt"/>\r
+ <property key="periphComp4.gte" value="gt"/>\r
+ <property key="periphComp5.gte" value="gt"/>\r
+ <property key="periphComp6.gte" value="gt"/>\r
+ <property key="uart10io.output" value="window"/>\r
+ <property key="uart10io.outputfile" value=""/>\r
+ <property key="uart10io.uartioenabled" value="false"/>\r
+ <property key="uart1io.output" value="window"/>\r
+ <property key="uart1io.outputfile" value=""/>\r
+ <property key="uart1io.uartioenabled" value="false"/>\r
+ <property key="uart2io.output" value="window"/>\r
+ <property key="uart2io.outputfile" value=""/>\r
+ <property key="uart2io.uartioenabled" value="false"/>\r
+ <property key="uart3io.output" value="window"/>\r
+ <property key="uart3io.outputfile" value=""/>\r
+ <property key="uart3io.uartioenabled" value="false"/>\r
+ <property key="uart4io.output" value="window"/>\r
+ <property key="uart4io.outputfile" value=""/>\r
+ <property key="uart4io.uartioenabled" value="false"/>\r
+ <property key="uart5io.output" value="window"/>\r
+ <property key="uart5io.outputfile" value=""/>\r
+ <property key="uart5io.uartioenabled" value="false"/>\r
+ <property key="uart6io.output" value="window"/>\r
+ <property key="uart6io.outputfile" value=""/>\r
+ <property key="uart6io.uartioenabled" value="false"/>\r
+ <property key="uart7io.output" value="window"/>\r
+ <property key="uart7io.outputfile" value=""/>\r
+ <property key="uart7io.uartioenabled" value="false"/>\r
+ <property key="uart8io.output" value="window"/>\r
+ <property key="uart8io.outputfile" value=""/>\r
+ <property key="uart8io.uartioenabled" value="false"/>\r
+ <property key="uart9io.output" value="window"/>\r
+ <property key="uart9io.outputfile" value=""/>\r
+ <property key="uart9io.uartioenabled" value="false"/>\r
+ <property key="warningmessagebreakoptions.W0001_CORE_BITREV_MODULO_EN"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0002_CORE_SECURE_MEMORYACCESS"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0003_CORE_SW_RESET" value="report"/>\r
+ <property key="warningmessagebreakoptions.W0004_CORE_WDT_RESET" value="report"/>\r
+ <property key="warningmessagebreakoptions.W0005_CORE_IOPUW_RESET"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0006_CORE_CODE_GUARD_PFC_RESET"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0007_CORE_DO_LOOP_STACK_UNDERFLOW"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0008_CORE_DO_LOOP_STACK_OVERFLOW"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0009_CORE_NESTED_DO_LOOP_RANGE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0010_CORE_SIM32_ODD_WORDACCESS"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0011_CORE_SIM32_UNIMPLEMENTED_RAMACCESS"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0012_CORE_STACK_OVERFLOW_RESET"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0013_CORE_STACK_UNDERFLOW_RESET"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0101_SIM_UPDATE_FAILED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0102_SIM_PERIPH_MISSING"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0103_SIM_PERIPH_FAILED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0104_SIM_FAILED_TO_INIT_TOOL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0105_SIM_INVALID_FIELD"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0201_ADC_NO_STIMULUS_FILE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0202_ADC_GO_DONE_BIT" value="report"/>\r
+ <property key="warningmessagebreakoptions.W0203_ADC_MINIMUM_2_TAD"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0204_ADC_TAD_TOO_SMALL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0205_ADC_UNEXPECTED_TRANSITION"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0206_ADC_SAMP_TIME_TOO_SHORT"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0207_ADC_NO_PINS_SCANNED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0208_ADC_UNSUPPORTED_CLOCK_SOURCE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0209_ADC_ANALOG_CHANNEL_DIGITAL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0210_ADC_ANALOG_CHANNEL_OUTPUT"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0211_ADC_PIN_INVALID_CHANNEL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0212_ADC_BAND_GAP_NOT_SUPPORTED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0213_ADC_RESERVED_SSRC"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0214_ADC_POSITIVE_INPUT_DIGITAL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0215_ADC_POSITIVE_INPUT_OUTPUT"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0216_ADC_NEGATIVE_INPUT_DIGITAL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0217_ADC_NEGATIVE_INPUT_OUTPUT"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0218_ADC_REFERENCE_HIGH_DIGITAL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0219_ADC_REFERENCE_HIGH_OUTPUT"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0220_ADC_REFERENCE_LOW_DIGITAL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0221_ADC_REFERENCE_LOW_OUTPUT"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0222_ADC_OVERFLOW" value="report"/>\r
+ <property key="warningmessagebreakoptions.W0223_ADC_UNDERFLOW" value="report"/>\r
+ <property key="warningmessagebreakoptions.W0224_ADC_CTMU_NOT_SUPPORTED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0225_ADC_INVALID_CH0S"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0226_ADC_VBAT_NOT_SUPPORTED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0227_ADC_INVALID_ADCS"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0228_ADC_INVALID_ADCS"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W0229_ADC_INVALID_ADCS"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W1201_DATAFLASH_MEM_OUTSIDE_RANGE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W1202_DATAFLASH_ERASE_WHILE_LOCKED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W1203_DATAFLASH_WRITE_WHILE_LOCKED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W1401_DMA_PERIPH_NOT_AVAIL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W1402_DMA_INVALID_IRQ" value="report"/>\r
+ <property key="warningmessagebreakoptions.W1403_DMA_INVALID_SFR" value="report"/>\r
+ <property key="warningmessagebreakoptions.W1404_DMA_INVALID_DMA_ADDR"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W1405_DMA_IRQ_DIR_MISMATCH"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2001_INPUTCAPTURE_TMR3_UNAVAILABLE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2002_INPUTCAPTURE_CAPTURE_EMPTY"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2003_INPUTCAPTURE_SYNCSEL_NOT_AVIALABLE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2004_INPUTCAPTURE_BAD_SYNC_SOURCE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2501_OUTPUTCOMPARE_SYNCSEL_NOT_AVIALABLE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2502_OUTPUTCOMPARE_BAD_SYNC_SOURCE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W2503_OUTPUTCOMPARE_BAD_TRIGGER_SOURCE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9001_TMR_GATE_AND_EXTCLOCK_ENABLED"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9002_TMR_NO_PIN_AVAILABLE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9003_TMR_INVALID_CLOCK_SOURCE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9201_UART_TX_OVERFLOW"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9202_UART_TX_CAPTUREFILE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9203_UART_TX_INVALIDINTERRUPTMODE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9204_UART_RX_EMPTY_QUEUE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9205_UART_TX_BADFILE" value="report"/>\r
+ <property key="warningmessagebreakoptions.W9801_SCL_BAD_SUBTYPE_INDICATION"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9802_SCL_FILE_NOT_FOUND"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9803_SCL_FAILED_TO_READ_FILE"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9804_SCL_UNRECOGNIZED_LABEL"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.W9805_SCL_UNRECOGNIZED_VAR"\r
+ value="report"/>\r
+ <property key="warningmessagebreakoptions.displaywarningmessagesoption"\r
+ value=""/>\r
+ <property key="warningmessagebreakoptions.warningmessages" value="holdstate"/>\r
+ </Simulator>\r
</conf>\r
</confs>\r
</configurationDescriptor>\r
<confs>\r
<conf name="default" type="2">\r
<platformToolSN></platformToolSN>\r
- <languageToolchainDir>C:\devtools\Microchip\xc16\v1.11\bin</languageToolchainDir>\r
+ <languageToolchainDir>C:\DevTools\Microchip\xc16\v1.25\bin</languageToolchainDir>\r
<mdbdebugger version="1">\r
<placeholder1>place holder 1</placeholder1>\r
<placeholder2>place holder 2</placeholder2>\r
-<?xml version="1.0" encoding="UTF-8"?><project-private xmlns="http://www.netbeans.org/ns/project-private/1">\r
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">\r
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>\r
+ <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>\r
+ <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">\r
+ <group name="Masters19024">\r
+ <file>file:/C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC24_MPLAB/main.c</file>\r
+ </group>\r
+ </open-files>\r
</project-private>\r
-<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://www.netbeans.org/ns/project/1">\r
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project xmlns="http://www.netbeans.org/ns/project/1">\r
<type>com.microchip.mplab.nbide.embedded.makeproject</type>\r
<configuration>\r
<data xmlns="http://www.netbeans.org/ns/make-project/1">\r
<cpp-extensions/>\r
<header-extensions>h</header-extensions>\r
<sourceEncoding>ISO-8859-1</sourceEncoding>\r
+ <asminc-extensions/>\r
<make-dep-projects/>\r
</data>\r
</configuration>\r
#define configPERIPHERAL_CLOCK_HZ ( 40000000UL )\r
#define configMAX_PRIORITIES ( 5UL )\r
#define configMINIMAL_STACK_SIZE ( 190 )\r
-#define configISR_STACK_SIZE ( 300 )\r
-#define configTOTAL_HEAP_SIZE ( ( size_t ) 56000 )\r
+#define configISR_STACK_SIZE ( 400 )\r
+#define configTOTAL_HEAP_SIZE ( ( size_t ) 60000 )\r
#define configMAX_TASK_NAME_LEN ( 8 )\r
#define configUSE_TRACE_FACILITY 0\r
#define configUSE_16_BIT_TICKS 0\r
#define configIDLE_SHOULD_YIELD 1\r
#define configUSE_MUTEXES 1\r
-#define configCHECK_FOR_STACK_OVERFLOW 3\r
+#define configCHECK_FOR_STACK_OVERFLOW 3 /* Three also checks the system/interrupt stack. */\r
#define configQUEUE_REGISTRY_SIZE 0\r
#define configUSE_RECURSIVE_MUTEXES 1\r
#define configUSE_MALLOC_FAILED_HOOK 1\r
#define configUSE_COUNTING_SEMAPHORES 1\r
#define configGENERATE_RUN_TIME_STATS 0\r
\r
+/* Enable support for Task based FPU operations. This will enable support for\r
+FPU context saving during switches only on architectures with hardware FPU.\r
+\r
+NOTE: This constant is defined in the project options as configurations are \r
+provided that both enable and disable floating point support. \r
+#define configUSE_TASK_FPU_SUPPORT 0 */\r
+\r
/* Co-routine definitions. */\r
#define configUSE_CO_ROUTINES 0\r
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
extern void vAssertCalled( const char * pcFile, unsigned long ulLine );\r
#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )\r
#endif\r
-\r
+ \r
#endif /* FREERTOS_CONFIG_H */\r
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
# Source Files Quoted if spaced
-SOURCEFILES_QUOTED_IF_SPACED=../../Common/Minimal/GenQTest.c ../../Common/Minimal/QPeek.c ../../Common/Minimal/blocktim.c ../../Common/Minimal/flash_timer.c ../../Common/Minimal/semtest.c ../../Common/Minimal/IntQueue.c ../../Common/Minimal/QueueOverwrite.c ../../Common/Minimal/QueueSet.c ../../Common/Minimal/countsem.c ../../Common/Minimal/dynamic.c ../../Common/Minimal/recmutex.c ../../Common/Minimal/EventGroupsDemo.c ../../../Source/queue.c ../../../Source/tasks.c ../../../Source/list.c ../../../Source/timers.c ../../../Source/portable/MPLAB/PIC32MZ/port.c ../../../Source/portable/MPLAB/PIC32MZ/port_asm.S ../../../Source/portable/MemMang/heap_4.c ../../../Source/event_groups.c ../main.c ../ParTest/ParTest.c ../main_blinky.c ../ConfigPerformance.c ../main_full.c ../RegisterTestTasks.S ../IntQueueTimer.c ../IntQueueTimer_isr.S ../timertest.c ../timertest_isr.S ../ISRTriggeredTask.c ../ISRTriggeredTask_isr.S
+SOURCEFILES_QUOTED_IF_SPACED=../../Common/Minimal/GenQTest.c ../../Common/Minimal/QPeek.c ../../Common/Minimal/blocktim.c ../../Common/Minimal/flash_timer.c ../../Common/Minimal/semtest.c ../../Common/Minimal/IntQueue.c ../../Common/Minimal/QueueOverwrite.c ../../Common/Minimal/QueueSet.c ../../Common/Minimal/countsem.c ../../Common/Minimal/dynamic.c ../../Common/Minimal/recmutex.c ../../Common/Minimal/EventGroupsDemo.c ../../../Source/queue.c ../../../Source/tasks.c ../../../Source/list.c ../../../Source/timers.c ../../../Source/portable/MPLAB/PIC32MZ/port.c ../../../Source/portable/MPLAB/PIC32MZ/port_asm.S ../../../Source/portable/MemMang/heap_4.c ../../../Source/event_groups.c ../main.c ../ParTest/ParTest.c ../main_blinky.c ../ConfigPerformance.c ../main_full.c ../RegisterTestTasks.S ../IntQueueTimer.c ../IntQueueTimer_isr.S ../timertest.c ../timertest_isr.S ../ISRTriggeredTask.c ../ISRTriggeredTask_isr.S ../flop_mz.c
# Object Files Quoted if spaced
-OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/1163846883/GenQTest.o ${OBJECTDIR}/_ext/1163846883/QPeek.o ${OBJECTDIR}/_ext/1163846883/blocktim.o ${OBJECTDIR}/_ext/1163846883/flash_timer.o ${OBJECTDIR}/_ext/1163846883/semtest.o ${OBJECTDIR}/_ext/1163846883/IntQueue.o ${OBJECTDIR}/_ext/1163846883/QueueOverwrite.o ${OBJECTDIR}/_ext/1163846883/QueueSet.o ${OBJECTDIR}/_ext/1163846883/countsem.o ${OBJECTDIR}/_ext/1163846883/dynamic.o ${OBJECTDIR}/_ext/1163846883/recmutex.o ${OBJECTDIR}/_ext/1163846883/EventGroupsDemo.o ${OBJECTDIR}/_ext/449926602/queue.o ${OBJECTDIR}/_ext/449926602/tasks.o ${OBJECTDIR}/_ext/449926602/list.o ${OBJECTDIR}/_ext/449926602/timers.o ${OBJECTDIR}/_ext/332309698/port.o ${OBJECTDIR}/_ext/332309698/port_asm.o ${OBJECTDIR}/_ext/1884096877/heap_4.o ${OBJECTDIR}/_ext/449926602/event_groups.o ${OBJECTDIR}/_ext/1472/main.o ${OBJECTDIR}/_ext/809743516/ParTest.o ${OBJECTDIR}/_ext/1472/main_blinky.o ${OBJECTDIR}/_ext/1472/ConfigPerformance.o ${OBJECTDIR}/_ext/1472/main_full.o ${OBJECTDIR}/_ext/1472/RegisterTestTasks.o ${OBJECTDIR}/_ext/1472/IntQueueTimer.o ${OBJECTDIR}/_ext/1472/IntQueueTimer_isr.o ${OBJECTDIR}/_ext/1472/timertest.o ${OBJECTDIR}/_ext/1472/timertest_isr.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask_isr.o
-POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/1163846883/GenQTest.o.d ${OBJECTDIR}/_ext/1163846883/QPeek.o.d ${OBJECTDIR}/_ext/1163846883/blocktim.o.d ${OBJECTDIR}/_ext/1163846883/flash_timer.o.d ${OBJECTDIR}/_ext/1163846883/semtest.o.d ${OBJECTDIR}/_ext/1163846883/IntQueue.o.d ${OBJECTDIR}/_ext/1163846883/QueueOverwrite.o.d ${OBJECTDIR}/_ext/1163846883/QueueSet.o.d ${OBJECTDIR}/_ext/1163846883/countsem.o.d ${OBJECTDIR}/_ext/1163846883/dynamic.o.d ${OBJECTDIR}/_ext/1163846883/recmutex.o.d ${OBJECTDIR}/_ext/1163846883/EventGroupsDemo.o.d ${OBJECTDIR}/_ext/449926602/queue.o.d ${OBJECTDIR}/_ext/449926602/tasks.o.d ${OBJECTDIR}/_ext/449926602/list.o.d ${OBJECTDIR}/_ext/449926602/timers.o.d ${OBJECTDIR}/_ext/332309698/port.o.d ${OBJECTDIR}/_ext/332309698/port_asm.o.d ${OBJECTDIR}/_ext/1884096877/heap_4.o.d ${OBJECTDIR}/_ext/449926602/event_groups.o.d ${OBJECTDIR}/_ext/1472/main.o.d ${OBJECTDIR}/_ext/809743516/ParTest.o.d ${OBJECTDIR}/_ext/1472/main_blinky.o.d ${OBJECTDIR}/_ext/1472/ConfigPerformance.o.d ${OBJECTDIR}/_ext/1472/main_full.o.d ${OBJECTDIR}/_ext/1472/RegisterTestTasks.o.d ${OBJECTDIR}/_ext/1472/IntQueueTimer.o.d ${OBJECTDIR}/_ext/1472/IntQueueTimer_isr.o.d ${OBJECTDIR}/_ext/1472/timertest.o.d ${OBJECTDIR}/_ext/1472/timertest_isr.o.d ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o.d ${OBJECTDIR}/_ext/1472/ISRTriggeredTask_isr.o.d
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/1163846883/GenQTest.o ${OBJECTDIR}/_ext/1163846883/QPeek.o ${OBJECTDIR}/_ext/1163846883/blocktim.o ${OBJECTDIR}/_ext/1163846883/flash_timer.o ${OBJECTDIR}/_ext/1163846883/semtest.o ${OBJECTDIR}/_ext/1163846883/IntQueue.o ${OBJECTDIR}/_ext/1163846883/QueueOverwrite.o ${OBJECTDIR}/_ext/1163846883/QueueSet.o ${OBJECTDIR}/_ext/1163846883/countsem.o ${OBJECTDIR}/_ext/1163846883/dynamic.o ${OBJECTDIR}/_ext/1163846883/recmutex.o ${OBJECTDIR}/_ext/1163846883/EventGroupsDemo.o ${OBJECTDIR}/_ext/449926602/queue.o ${OBJECTDIR}/_ext/449926602/tasks.o ${OBJECTDIR}/_ext/449926602/list.o ${OBJECTDIR}/_ext/449926602/timers.o ${OBJECTDIR}/_ext/332309698/port.o ${OBJECTDIR}/_ext/332309698/port_asm.o ${OBJECTDIR}/_ext/1884096877/heap_4.o ${OBJECTDIR}/_ext/449926602/event_groups.o ${OBJECTDIR}/_ext/1472/main.o ${OBJECTDIR}/_ext/809743516/ParTest.o ${OBJECTDIR}/_ext/1472/main_blinky.o ${OBJECTDIR}/_ext/1472/ConfigPerformance.o ${OBJECTDIR}/_ext/1472/main_full.o ${OBJECTDIR}/_ext/1472/RegisterTestTasks.o ${OBJECTDIR}/_ext/1472/IntQueueTimer.o ${OBJECTDIR}/_ext/1472/IntQueueTimer_isr.o ${OBJECTDIR}/_ext/1472/timertest.o ${OBJECTDIR}/_ext/1472/timertest_isr.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask_isr.o ${OBJECTDIR}/_ext/1472/flop_mz.o
+POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/1163846883/GenQTest.o.d ${OBJECTDIR}/_ext/1163846883/QPeek.o.d ${OBJECTDIR}/_ext/1163846883/blocktim.o.d ${OBJECTDIR}/_ext/1163846883/flash_timer.o.d ${OBJECTDIR}/_ext/1163846883/semtest.o.d ${OBJECTDIR}/_ext/1163846883/IntQueue.o.d ${OBJECTDIR}/_ext/1163846883/QueueOverwrite.o.d ${OBJECTDIR}/_ext/1163846883/QueueSet.o.d ${OBJECTDIR}/_ext/1163846883/countsem.o.d ${OBJECTDIR}/_ext/1163846883/dynamic.o.d ${OBJECTDIR}/_ext/1163846883/recmutex.o.d ${OBJECTDIR}/_ext/1163846883/EventGroupsDemo.o.d ${OBJECTDIR}/_ext/449926602/queue.o.d ${OBJECTDIR}/_ext/449926602/tasks.o.d ${OBJECTDIR}/_ext/449926602/list.o.d ${OBJECTDIR}/_ext/449926602/timers.o.d ${OBJECTDIR}/_ext/332309698/port.o.d ${OBJECTDIR}/_ext/332309698/port_asm.o.d ${OBJECTDIR}/_ext/1884096877/heap_4.o.d ${OBJECTDIR}/_ext/449926602/event_groups.o.d ${OBJECTDIR}/_ext/1472/main.o.d ${OBJECTDIR}/_ext/809743516/ParTest.o.d ${OBJECTDIR}/_ext/1472/main_blinky.o.d ${OBJECTDIR}/_ext/1472/ConfigPerformance.o.d ${OBJECTDIR}/_ext/1472/main_full.o.d ${OBJECTDIR}/_ext/1472/RegisterTestTasks.o.d ${OBJECTDIR}/_ext/1472/IntQueueTimer.o.d ${OBJECTDIR}/_ext/1472/IntQueueTimer_isr.o.d ${OBJECTDIR}/_ext/1472/timertest.o.d ${OBJECTDIR}/_ext/1472/timertest_isr.o.d ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o.d ${OBJECTDIR}/_ext/1472/ISRTriggeredTask_isr.o.d ${OBJECTDIR}/_ext/1472/flop_mz.o.d
# Object Files
-OBJECTFILES=${OBJECTDIR}/_ext/1163846883/GenQTest.o ${OBJECTDIR}/_ext/1163846883/QPeek.o ${OBJECTDIR}/_ext/1163846883/blocktim.o ${OBJECTDIR}/_ext/1163846883/flash_timer.o ${OBJECTDIR}/_ext/1163846883/semtest.o ${OBJECTDIR}/_ext/1163846883/IntQueue.o ${OBJECTDIR}/_ext/1163846883/QueueOverwrite.o ${OBJECTDIR}/_ext/1163846883/QueueSet.o ${OBJECTDIR}/_ext/1163846883/countsem.o ${OBJECTDIR}/_ext/1163846883/dynamic.o ${OBJECTDIR}/_ext/1163846883/recmutex.o ${OBJECTDIR}/_ext/1163846883/EventGroupsDemo.o ${OBJECTDIR}/_ext/449926602/queue.o ${OBJECTDIR}/_ext/449926602/tasks.o ${OBJECTDIR}/_ext/449926602/list.o ${OBJECTDIR}/_ext/449926602/timers.o ${OBJECTDIR}/_ext/332309698/port.o ${OBJECTDIR}/_ext/332309698/port_asm.o ${OBJECTDIR}/_ext/1884096877/heap_4.o ${OBJECTDIR}/_ext/449926602/event_groups.o ${OBJECTDIR}/_ext/1472/main.o ${OBJECTDIR}/_ext/809743516/ParTest.o ${OBJECTDIR}/_ext/1472/main_blinky.o ${OBJECTDIR}/_ext/1472/ConfigPerformance.o ${OBJECTDIR}/_ext/1472/main_full.o ${OBJECTDIR}/_ext/1472/RegisterTestTasks.o ${OBJECTDIR}/_ext/1472/IntQueueTimer.o ${OBJECTDIR}/_ext/1472/IntQueueTimer_isr.o ${OBJECTDIR}/_ext/1472/timertest.o ${OBJECTDIR}/_ext/1472/timertest_isr.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask_isr.o
+OBJECTFILES=${OBJECTDIR}/_ext/1163846883/GenQTest.o ${OBJECTDIR}/_ext/1163846883/QPeek.o ${OBJECTDIR}/_ext/1163846883/blocktim.o ${OBJECTDIR}/_ext/1163846883/flash_timer.o ${OBJECTDIR}/_ext/1163846883/semtest.o ${OBJECTDIR}/_ext/1163846883/IntQueue.o ${OBJECTDIR}/_ext/1163846883/QueueOverwrite.o ${OBJECTDIR}/_ext/1163846883/QueueSet.o ${OBJECTDIR}/_ext/1163846883/countsem.o ${OBJECTDIR}/_ext/1163846883/dynamic.o ${OBJECTDIR}/_ext/1163846883/recmutex.o ${OBJECTDIR}/_ext/1163846883/EventGroupsDemo.o ${OBJECTDIR}/_ext/449926602/queue.o ${OBJECTDIR}/_ext/449926602/tasks.o ${OBJECTDIR}/_ext/449926602/list.o ${OBJECTDIR}/_ext/449926602/timers.o ${OBJECTDIR}/_ext/332309698/port.o ${OBJECTDIR}/_ext/332309698/port_asm.o ${OBJECTDIR}/_ext/1884096877/heap_4.o ${OBJECTDIR}/_ext/449926602/event_groups.o ${OBJECTDIR}/_ext/1472/main.o ${OBJECTDIR}/_ext/809743516/ParTest.o ${OBJECTDIR}/_ext/1472/main_blinky.o ${OBJECTDIR}/_ext/1472/ConfigPerformance.o ${OBJECTDIR}/_ext/1472/main_full.o ${OBJECTDIR}/_ext/1472/RegisterTestTasks.o ${OBJECTDIR}/_ext/1472/IntQueueTimer.o ${OBJECTDIR}/_ext/1472/IntQueueTimer_isr.o ${OBJECTDIR}/_ext/1472/timertest.o ${OBJECTDIR}/_ext/1472/timertest_isr.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask_isr.o ${OBJECTDIR}/_ext/1472/flop_mz.o
# Source Files
-SOURCEFILES=../../Common/Minimal/GenQTest.c ../../Common/Minimal/QPeek.c ../../Common/Minimal/blocktim.c ../../Common/Minimal/flash_timer.c ../../Common/Minimal/semtest.c ../../Common/Minimal/IntQueue.c ../../Common/Minimal/QueueOverwrite.c ../../Common/Minimal/QueueSet.c ../../Common/Minimal/countsem.c ../../Common/Minimal/dynamic.c ../../Common/Minimal/recmutex.c ../../Common/Minimal/EventGroupsDemo.c ../../../Source/queue.c ../../../Source/tasks.c ../../../Source/list.c ../../../Source/timers.c ../../../Source/portable/MPLAB/PIC32MZ/port.c ../../../Source/portable/MPLAB/PIC32MZ/port_asm.S ../../../Source/portable/MemMang/heap_4.c ../../../Source/event_groups.c ../main.c ../ParTest/ParTest.c ../main_blinky.c ../ConfigPerformance.c ../main_full.c ../RegisterTestTasks.S ../IntQueueTimer.c ../IntQueueTimer_isr.S ../timertest.c ../timertest_isr.S ../ISRTriggeredTask.c ../ISRTriggeredTask_isr.S
+SOURCEFILES=../../Common/Minimal/GenQTest.c ../../Common/Minimal/QPeek.c ../../Common/Minimal/blocktim.c ../../Common/Minimal/flash_timer.c ../../Common/Minimal/semtest.c ../../Common/Minimal/IntQueue.c ../../Common/Minimal/QueueOverwrite.c ../../Common/Minimal/QueueSet.c ../../Common/Minimal/countsem.c ../../Common/Minimal/dynamic.c ../../Common/Minimal/recmutex.c ../../Common/Minimal/EventGroupsDemo.c ../../../Source/queue.c ../../../Source/tasks.c ../../../Source/list.c ../../../Source/timers.c ../../../Source/portable/MPLAB/PIC32MZ/port.c ../../../Source/portable/MPLAB/PIC32MZ/port_asm.S ../../../Source/portable/MemMang/heap_4.c ../../../Source/event_groups.c ../main.c ../ParTest/ParTest.c ../main_blinky.c ../ConfigPerformance.c ../main_full.c ../RegisterTestTasks.S ../IntQueueTimer.c ../IntQueueTimer_isr.S ../timertest.c ../timertest_isr.S ../ISRTriggeredTask.c ../ISRTriggeredTask_isr.S ../flop_mz.c
CFLAGS=
@${RM} ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o
@${FIXDEPS} "${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"../../../Source/include" -I"../../../Source/portable/MPLAB/PIC32MZ" -I"../../Common/include" -I"../" -Wall -MMD -MF "${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o.d" -o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o ../ISRTriggeredTask.c -Wall -Wextra
+${OBJECTDIR}/_ext/1472/flop_mz.o: ../flop_mz.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}/_ext/1472"
+ @${RM} ${OBJECTDIR}/_ext/1472/flop_mz.o.d
+ @${RM} ${OBJECTDIR}/_ext/1472/flop_mz.o
+ @${FIXDEPS} "${OBJECTDIR}/_ext/1472/flop_mz.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"../../../Source/include" -I"../../../Source/portable/MPLAB/PIC32MZ" -I"../../Common/include" -I"../" -Wall -MMD -MF "${OBJECTDIR}/_ext/1472/flop_mz.o.d" -o ${OBJECTDIR}/_ext/1472/flop_mz.o ../flop_mz.c -Wall -Wextra
+
else
${OBJECTDIR}/_ext/1163846883/GenQTest.o: ../../Common/Minimal/GenQTest.c nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} "${OBJECTDIR}/_ext/1163846883"
@${RM} ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o
@${FIXDEPS} "${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"../../../Source/include" -I"../../../Source/portable/MPLAB/PIC32MZ" -I"../../Common/include" -I"../" -Wall -MMD -MF "${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o.d" -o ${OBJECTDIR}/_ext/1472/ISRTriggeredTask.o ../ISRTriggeredTask.c -Wall -Wextra
+${OBJECTDIR}/_ext/1472/flop_mz.o: ../flop_mz.c nbproject/Makefile-${CND_CONF}.mk
+ @${MKDIR} "${OBJECTDIR}/_ext/1472"
+ @${RM} ${OBJECTDIR}/_ext/1472/flop_mz.o.d
+ @${RM} ${OBJECTDIR}/_ext/1472/flop_mz.o
+ @${FIXDEPS} "${OBJECTDIR}/_ext/1472/flop_mz.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -I"../../../Source/include" -I"../../../Source/portable/MPLAB/PIC32MZ" -I"../../Common/include" -I"../" -Wall -MMD -MF "${OBJECTDIR}/_ext/1472/flop_mz.o.d" -o ${OBJECTDIR}/_ext/1472/flop_mz.o ../flop_mz.c -Wall -Wextra
+
endif
# ------------------------------------------------------------------------------------
ifeq ($(TYPE_IMAGE), DEBUG_RUN)
dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_PK3=1 -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mreserve=data@0x0:0x27F -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,--defsym=_min_heap_size=0,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_PK3=1 -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mreserve=data@0x0:0x27F -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,--defsym=_min_heap_size=0,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml
else
dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=_min_heap_size=0,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"
+ ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=_min_heap_size=0,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml
${MP_CC_DIR}\\xc32-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
endif
#\r
-#Wed Jun 24 18:51:30 BST 2015\r
-PIC32MZ2048_SK.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc32\\v1.34\\bin\r
-PIC32MZ2048_SK.languagetoolchain.version=1.34\r
-configurations-xml=68562b6839a3ad04af65579a10c3115b\r
-com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=47805b5596804b87cda41e61096929be\r
+#Thu Oct 15 18:30:50 BST 2015\r
+PIC32MZ2048_SK.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=dcb36c7e6928d5535e26dd359786192b\r
+PIC32MZ2048EF_SK_SOFT_FLOAT.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc32\\v1.40\\bin\r
+conf.ids=PIC32MZ2048_SK,PIC32MZ2048EF_SK_SOFT_FLOAT,PIC32MZ2048EF_SK_HARD_FLOAT\r
+configurations-xml=b89c82494ccd01c641a679d02e4a20c2\r
+PIC32MZ2048EF_SK_HARD_FLOAT.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc32\\v1.40\\bin\r
+PIC32MZ2048EF_SK_SOFT_FLOAT.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=dcb36c7e6928d5535e26dd359786192b\r
+PIC32MZ2048EF_SK_HARD_FLOAT.languagetoolchain.version=1.40\r
+com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=17a71d03e7d3823160f3e8681fc226e8\r
+PIC32MZ2048_SK.languagetoolchain.version=1.40\r
+PIC32MZ2048_SK.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc32\\v1.40\\bin\r
+PIC32MZ2048EF_SK_HARD_FLOAT.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=dcb36c7e6928d5535e26dd359786192b\r
+PIC32MZ2048EF_SK_SOFT_FLOAT.languagetoolchain.version=1.40\r
host.platform=windows\r
-conf.ids=PIC32MZ2048_SK\r
-PIC32MZ2048_SK.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=a29d9df60dd9a7849837c8f5ca17a004\r
PROJECTNAME=RTOSDemo.X
# Active Configuration
-DEFAULTCONF=PIC32MZ2048_SK
+DEFAULTCONF=PIC32MZ2048EF_SK_HARD_FLOAT
CONF=${DEFAULTCONF}
# All Configurations
-ALLCONFS=PIC32MZ2048_SK
+ALLCONFS=PIC32MZ2048_SK PIC32MZ2048EF_SK_SOFT_FLOAT PIC32MZ2048EF_SK_HARD_FLOAT
# build
# clobber
.clobber-impl: .clobber-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=PIC32MZ2048_SK clean
+ ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=PIC32MZ2048EF_SK_SOFT_FLOAT clean
+ ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=PIC32MZ2048EF_SK_HARD_FLOAT clean
# all
.all-impl: .all-pre .depcheck-impl
${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=PIC32MZ2048_SK build
+ ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=PIC32MZ2048EF_SK_SOFT_FLOAT build
+ ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=PIC32MZ2048EF_SK_HARD_FLOAT build
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
#
SHELL=cmd.exe
-PATH_TO_IDE_BIN=C:/DevTools/Microchip/MPLABX/v3.05/mplab_ide/mplab_ide/modules/../../bin/
+PATH_TO_IDE_BIN=C:/DevTools/Microchip/MPLABX/v3.10/mplab_ide/mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path.
-PATH:=C:/DevTools/Microchip/MPLABX/v3.05/mplab_ide/mplab_ide/modules/../../bin/:$(PATH)
+PATH:=C:/DevTools/Microchip/MPLABX/v3.10/mplab_ide/mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created
-MP_JAVA_PATH="C:\DevTools\Microchip\MPLABX\v3.05\sys\java\jre1.7.0_67/bin/"
+MP_JAVA_PATH="C:\DevTools\Microchip\MPLABX\v3.10\sys\java\jre1.7.0_79/bin/"
OS_CURRENT="$(shell uname -s)"
-MP_CC="C:\DevTools\Microchip\xc32\v1.34\bin\xc32-gcc.exe"
-MP_CPPC="C:\DevTools\Microchip\xc32\v1.34\bin\xc32-g++.exe"
+MP_CC="C:\DevTools\Microchip\xc32\v1.40\bin\xc32-gcc.exe"
+MP_CPPC="C:\DevTools\Microchip\xc32\v1.40\bin\xc32-g++.exe"
# MP_BC is not defined
-MP_AS="C:\DevTools\Microchip\xc32\v1.34\bin\xc32-as.exe"
-MP_LD="C:\DevTools\Microchip\xc32\v1.34\bin\xc32-ld.exe"
-MP_AR="C:\DevTools\Microchip\xc32\v1.34\bin\xc32-ar.exe"
-DEP_GEN=${MP_JAVA_PATH}java -jar "C:/DevTools/Microchip/MPLABX/v3.05/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar"
-MP_CC_DIR="C:\DevTools\Microchip\xc32\v1.34\bin"
-MP_CPPC_DIR="C:\DevTools\Microchip\xc32\v1.34\bin"
+MP_AS="C:\DevTools\Microchip\xc32\v1.40\bin\xc32-as.exe"
+MP_LD="C:\DevTools\Microchip\xc32\v1.40\bin\xc32-ld.exe"
+MP_AR="C:\DevTools\Microchip\xc32\v1.40\bin\xc32-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "C:/DevTools/Microchip/MPLABX/v3.10/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="C:\DevTools\Microchip\xc32\v1.40\bin"
+MP_CPPC_DIR="C:\DevTools\Microchip\xc32\v1.40\bin"
# MP_BC_DIR is not defined
-MP_AS_DIR="C:\DevTools\Microchip\xc32\v1.34\bin"
-MP_LD_DIR="C:\DevTools\Microchip\xc32\v1.34\bin"
-MP_AR_DIR="C:\DevTools\Microchip\xc32\v1.34\bin"
+MP_AS_DIR="C:\DevTools\Microchip\xc32\v1.40\bin"
+MP_LD_DIR="C:\DevTools\Microchip\xc32\v1.40\bin"
+MP_AR_DIR="C:\DevTools\Microchip\xc32\v1.40\bin"
# MP_BC_DIR is not defined
CND_PACKAGE_DIR_PIC32MZ2048_SK=${CND_DISTDIR}/PIC32MZ2048_SK/package
CND_PACKAGE_NAME_PIC32MZ2048_SK=rtosdemo.x.tar
CND_PACKAGE_PATH_PIC32MZ2048_SK=${CND_DISTDIR}/PIC32MZ2048_SK/package/rtosdemo.x.tar
+# PIC32MZ2048EF_SK_SOFT_FLOAT configuration
+CND_ARTIFACT_DIR_PIC32MZ2048EF_SK_SOFT_FLOAT=dist/PIC32MZ2048EF_SK_SOFT_FLOAT/production
+CND_ARTIFACT_NAME_PIC32MZ2048EF_SK_SOFT_FLOAT=RTOSDemo.X.production.hex
+CND_ARTIFACT_PATH_PIC32MZ2048EF_SK_SOFT_FLOAT=dist/PIC32MZ2048EF_SK_SOFT_FLOAT/production/RTOSDemo.X.production.hex
+CND_PACKAGE_DIR_PIC32MZ2048EF_SK_SOFT_FLOAT=${CND_DISTDIR}/PIC32MZ2048EF_SK_SOFT_FLOAT/package
+CND_PACKAGE_NAME_PIC32MZ2048EF_SK_SOFT_FLOAT=rtosdemo.x.tar
+CND_PACKAGE_PATH_PIC32MZ2048EF_SK_SOFT_FLOAT=${CND_DISTDIR}/PIC32MZ2048EF_SK_SOFT_FLOAT/package/rtosdemo.x.tar
+# PIC32MZ2048EF_SK_HARD_FLOAT configuration
+CND_ARTIFACT_DIR_PIC32MZ2048EF_SK_HARD_FLOAT=dist/PIC32MZ2048EF_SK_HARD_FLOAT/production
+CND_ARTIFACT_NAME_PIC32MZ2048EF_SK_HARD_FLOAT=RTOSDemo.X.production.hex
+CND_ARTIFACT_PATH_PIC32MZ2048EF_SK_HARD_FLOAT=dist/PIC32MZ2048EF_SK_HARD_FLOAT/production/RTOSDemo.X.production.hex
+CND_PACKAGE_DIR_PIC32MZ2048EF_SK_HARD_FLOAT=${CND_DISTDIR}/PIC32MZ2048EF_SK_HARD_FLOAT/package
+CND_PACKAGE_NAME_PIC32MZ2048EF_SK_HARD_FLOAT=rtosdemo.x.tar
+CND_PACKAGE_PATH_PIC32MZ2048EF_SK_HARD_FLOAT=${CND_DISTDIR}/PIC32MZ2048EF_SK_HARD_FLOAT/package/rtosdemo.x.tar
<itemPath>../timertest_isr.S</itemPath>\r
<itemPath>../ISRTriggeredTask.c</itemPath>\r
<itemPath>../ISRTriggeredTask_isr.S</itemPath>\r
+ <itemPath>../flop_mz.c</itemPath>\r
</logicalFolder>\r
<logicalFolder name="ExternalFiles"\r
displayName="Important Files"\r
<Elem>../</Elem>\r
<Elem>../../Common/Minimal</Elem>\r
<Elem>../../../Source</Elem>\r
+ <Elem>../../Common/Full</Elem>\r
+ <Elem>../../../../FreeRTOS-MPLAB_X-PIC32MZ/GenericRecorderLibSrc</Elem>\r
+ <Elem>../../FreeRTOS-Plus-Trace</Elem>\r
</sourceRootList>\r
<projectmakefile>Makefile</projectmakefile>\r
<confs>\r
<targetPluginBoard></targetPluginBoard>\r
<platformTool>PKOBSKDEPlatformTool</platformTool>\r
<languageToolchain>XC32</languageToolchain>\r
- <languageToolchainVersion>1.34</languageToolchainVersion>\r
+ <languageToolchainVersion>1.40</languageToolchainVersion>\r
<platform>3</platform>\r
</toolsSet>\r
<compileType>\r
<property key="memories.programmemory.end" value="0x1d1fffff"/>\r
<property key="memories.programmemory.start" value="0x1d000000"/>\r
<property key="memories.userotp" value="true"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d0007ff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ </PKOBSKDEPlatformTool>\r
+ <RealICEPlatformTool>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="CAN1" value="true"/>\r
+ <property key="CAN2" value="true"/>\r
+ <property key="CHANGE NOTICE A" value="true"/>\r
+ <property key="CHANGE NOTICE B" value="true"/>\r
+ <property key="CHANGE NOTICE C" value="true"/>\r
+ <property key="CHANGE NOTICE D" value="true"/>\r
+ <property key="CHANGE NOTICE E" value="true"/>\r
+ <property key="CHANGE NOTICE F" value="true"/>\r
+ <property key="CHANGE NOTICE G" value="true"/>\r
+ <property key="CHANGE NOTICE H" value="true"/>\r
+ <property key="CHANGE NOTICE J" value="true"/>\r
+ <property key="CHANGE NOTICE K" value="true"/>\r
+ <property key="COMPARATOR" value="true"/>\r
+ <property key="DMA" value="true"/>\r
+ <property key="ETHERNET CONTROLLER" value="true"/>\r
+ <property key="INPUT CAPTURE 1" value="true"/>\r
+ <property key="INPUT CAPTURE 2" value="true"/>\r
+ <property key="INPUT CAPTURE 3" value="true"/>\r
+ <property key="INPUT CAPTURE 4" value="true"/>\r
+ <property key="INPUT CAPTURE 5" value="true"/>\r
+ <property key="INPUT CAPTURE 6" value="true"/>\r
+ <property key="INPUT CAPTURE 7" value="true"/>\r
+ <property key="INPUT CAPTURE 8" value="true"/>\r
+ <property key="INPUT CAPTURE 9" value="true"/>\r
+ <property key="INTERRUPT CONTROL" value="true"/>\r
+ <property key="OUTPUT COMPARE 1" value="true"/>\r
+ <property key="OUTPUT COMPARE 2" value="true"/>\r
+ <property key="OUTPUT COMPARE 3" value="true"/>\r
+ <property key="OUTPUT COMPARE 4" value="true"/>\r
+ <property key="OUTPUT COMPARE 5" value="true"/>\r
+ <property key="OUTPUT COMPARE 6" value="true"/>\r
+ <property key="OUTPUT COMPARE 7" value="true"/>\r
+ <property key="OUTPUT COMPARE 8" value="true"/>\r
+ <property key="OUTPUT COMPARE 9" value="true"/>\r
+ <property key="PARALLEL MASTER/SLAVE PORT" value="true"/>\r
+ <property key="REAL TIME CLOCK" value="true"/>\r
+ <property key="REFERENCE CLOCK1" value="true"/>\r
+ <property key="REFERENCE CLOCK2" value="true"/>\r
+ <property key="REFERENCE CLOCK3" value="true"/>\r
+ <property key="REFERENCE CLOCK4" value="true"/>\r
+ <property key="RIExTrigs.Five" value="OFF"/>\r
+ <property key="RIExTrigs.Four" value="OFF"/>\r
+ <property key="RIExTrigs.One" value="OFF"/>\r
+ <property key="RIExTrigs.Seven" value="OFF"/>\r
+ <property key="RIExTrigs.Six" value="OFF"/>\r
+ <property key="RIExTrigs.Three" value="OFF"/>\r
+ <property key="RIExTrigs.Two" value="OFF"/>\r
+ <property key="RIExTrigs.Zero" value="OFF"/>\r
+ <property key="SPI/I2S 1" value="true"/>\r
+ <property key="SPI/I2S 2" value="true"/>\r
+ <property key="SPI/I2S 3" value="true"/>\r
+ <property key="SPI/I2S 4" value="true"/>\r
+ <property key="SPI/I2S 5" value="true"/>\r
+ <property key="SPI/I2S 6" value="true"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="TIMER1" value="true"/>\r
+ <property key="TIMER2" value="true"/>\r
+ <property key="TIMER3" value="true"/>\r
+ <property key="TIMER4" value="true"/>\r
+ <property key="TIMER5" value="true"/>\r
+ <property key="TIMER6" value="true"/>\r
+ <property key="TIMER7" value="true"/>\r
+ <property key="TIMER8" value="true"/>\r
+ <property key="TIMER9" value="true"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="UART1" value="true"/>\r
+ <property key="UART2" value="true"/>\r
+ <property key="UART3" value="true"/>\r
+ <property key="UART4" value="true"/>\r
+ <property key="UART5" value="true"/>\r
+ <property key="UART6" value="true"/>\r
+ <property key="debugoptions.useswbreakpoints" value="false"/>\r
+ <property key="hwtoolclock.frcindebug" value="false"/>\r
+ <property key="hwtoolclock.instructionspeed" value="4"/>\r
+ <property key="hwtoolclock.units" value="mips"/>\r
+ <property key="memories.aux" value="false"/>\r
+ <property key="memories.bootflash" value="true"/>\r
+ <property key="memories.configurationmemory" value="true"/>\r
+ <property key="memories.configurationmemory2" value="true"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="true"/>\r
+ <property key="memories.flashdata" value="true"/>\r
+ <property key="memories.id" value="true"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.partition2" value="true"/>\r
+ <property key="memories.programmemory.partition2.end"\r
+ value="${memories.programmemory.partition2.end.value}"/>\r
+ <property key="memories.programmemory.partition2.start"\r
+ value="${memories.programmemory.partition2.start.value}"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
<property key="poweroptions.powerenable" value="false"/>\r
<property key="programoptions.donoteraseauxmem" value="false"/>\r
<property key="programoptions.eraseb4program" value="true"/>\r
<property key="programoptions.preservedataflash" value="false"/>\r
<property key="programoptions.preserveeeprom" value="false"/>\r
<property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d1fffff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.preserveuserid" value="false"/>\r
+ <property key="programoptions.programcalmem" value="false"/>\r
+ <property key="programoptions.programuserotp" value="false"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ <property key="tracecontrol.include.timestamp" value="summarydataenabled"/>\r
+ <property key="tracecontrol.select" value="0"/>\r
+ <property key="tracecontrol.stallontracebufferfull" value="false"/>\r
+ <property key="tracecontrol.tracebufmax" value="546000"/>\r
+ <property key="tracecontrol.tracefile" value="defmplabxtrace.log"/>\r
+ <property key="tracecontrol.tracefilemax" value="10000000"/>\r
+ <property key="voltagevalue" value="3.25"/>\r
+ </RealICEPlatformTool>\r
+ </conf>\r
+ <conf name="PIC32MZ2048EF_SK_SOFT_FLOAT" type="2">\r
+ <toolsSet>\r
+ <developmentServer>localhost</developmentServer>\r
+ <targetDevice>PIC32MZ2048EFH144</targetDevice>\r
+ <targetHeader></targetHeader>\r
+ <targetPluginBoard></targetPluginBoard>\r
+ <platformTool>PKOBSKDEPlatformTool</platformTool>\r
+ <languageToolchain>XC32</languageToolchain>\r
+ <languageToolchainVersion>1.40</languageToolchainVersion>\r
+ <platform>3</platform>\r
+ </toolsSet>\r
+ <compileType>\r
+ <linkerTool>\r
+ <linkerLibItems>\r
+ </linkerLibItems>\r
+ </linkerTool>\r
+ <archiverTool>\r
+ </archiverTool>\r
+ <loading>\r
+ <useAlternateLoadableFile>false</useAlternateLoadableFile>\r
+ <parseOnProdLoad>true</parseOnProdLoad>\r
+ <alternateLoadableFile></alternateLoadableFile>\r
+ </loading>\r
+ </compileType>\r
+ <makeCustomizationType>\r
+ <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>\r
+ <makeCustomizationPreStep></makeCustomizationPreStep>\r
+ <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>\r
+ <makeCustomizationPostStep></makeCustomizationPostStep>\r
+ <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>\r
+ <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>\r
+ <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>\r
+ </makeCustomizationType>\r
+ <C32>\r
+ <property key="additional-warnings" value="true"/>\r
+ <property key="enable-app-io" value="false"/>\r
+ <property key="enable-omit-frame-pointer" value="false"/>\r
+ <property key="enable-symbols" value="true"/>\r
+ <property key="enable-unroll-loops" value="false"/>\r
+ <property key="exclude-floating-point" value="false"/>\r
+ <property key="extra-include-directories"\r
+ value="../../../Source/include;../../../Source/portable/MPLAB/PIC32MZ;../../Common/include;../"/>\r
+ <property key="generate-16-bit-code" value="false"/>\r
+ <property key="generate-micro-compressed-code" value="false"/>\r
+ <property key="isolate-each-function" value="false"/>\r
+ <property key="make-warnings-into-errors" value="false"/>\r
+ <property key="optimization-level" value=""/>\r
+ <property key="place-data-into-section" value="false"/>\r
+ <property key="post-instruction-scheduling" value="default"/>\r
+ <property key="pre-instruction-scheduling" value="default"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="strict-ansi" value="false"/>\r
+ <property key="support-ansi" value="false"/>\r
+ <property key="use-cci" value="false"/>\r
+ <property key="use-iar" value="false"/>\r
+ <property key="use-indirect-calls" value="false"/>\r
+ <appendMe value="-Wall -Wextra -DconfigUSE_TASK_FPU_SUPPORT=0"/>\r
+ </C32>\r
+ <C32-AR>\r
+ <property key="additional-options-chop-files" value="false"/>\r
+ </C32-AR>\r
+ <C32-AS>\r
+ <property key="assembler-symbols" value=""/>\r
+ <property key="enable-symbols" value="true"/>\r
+ <property key="exclude-floating-point-library" value="false"/>\r
+ <property key="expand-macros" value="false"/>\r
+ <property key="extra-include-directories-for-assembler" value=""/>\r
+ <property key="extra-include-directories-for-preprocessor" value=""/>\r
+ <property key="false-conditionals" value="false"/>\r
+ <property key="keep-locals" value="false"/>\r
+ <property key="list-assembly" value="false"/>\r
+ <property key="list-source" value="false"/>\r
+ <property key="list-symbols" value="false"/>\r
+ <property key="oXC32asm-list-to-file" value="false"/>\r
+ <property key="omit-debug-dirs" value="false"/>\r
+ <property key="omit-forms" value="false"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="warning-level" value=""/>\r
+ <appendMe value="-I../../../Source/portable/MPLAB/PIC32MZ -I../"/>\r
+ </C32-AS>\r
+ <C32-LD>\r
+ <property key="additional-options-use-response-files" value="false"/>\r
+ <property key="enable-check-sections" value="false"/>\r
+ <property key="exclude-floating-point-library" value="false"/>\r
+ <property key="exclude-standard-libraries" value="false"/>\r
+ <property key="extra-lib-directories" value=""/>\r
+ <property key="fill-flash-options-addr" value=""/>\r
+ <property key="fill-flash-options-const" value=""/>\r
+ <property key="fill-flash-options-how" value="0"/>\r
+ <property key="fill-flash-options-inc-const" value="1"/>\r
+ <property key="fill-flash-options-increment" value=""/>\r
+ <property key="fill-flash-options-seq" value=""/>\r
+ <property key="fill-flash-options-what" value="0"/>\r
+ <property key="generate-16-bit-code" value="false"/>\r
+ <property key="generate-cross-reference-file" value="false"/>\r
+ <property key="generate-micro-compressed-code" value="false"/>\r
+ <property key="heap-size" value="0"/>\r
+ <property key="input-libraries" value=""/>\r
+ <property key="linker-symbols" value=""/>\r
+ <property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>\r
+ <property key="no-startup-files" value="false"/>\r
+ <property key="oXC32ld-extra-opts" value=""/>\r
+ <property key="optimization-level" value=""/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="remove-unused-sections" value="false"/>\r
+ <property key="report-memory-usage" value="false"/>\r
+ <property key="stack-size" value=""/>\r
+ <property key="symbol-stripping" value=""/>\r
+ <property key="trace-symbols" value=""/>\r
+ <property key="warn-section-align" value="false"/>\r
+ </C32-LD>\r
+ <C32CPP>\r
+ <property key="additional-warnings" value="false"/>\r
+ <property key="check-new" value="false"/>\r
+ <property key="eh-specs" value="true"/>\r
+ <property key="enable-app-io" value="false"/>\r
+ <property key="enable-omit-frame-pointer" value="false"/>\r
+ <property key="enable-symbols" value="true"/>\r
+ <property key="enable-unroll-loops" value="false"/>\r
+ <property key="exceptions" value="true"/>\r
+ <property key="exclude-floating-point" value="false"/>\r
+ <property key="extra-include-directories" value=""/>\r
+ <property key="generate-16-bit-code" value="false"/>\r
+ <property key="generate-micro-compressed-code" value="false"/>\r
+ <property key="isolate-each-function" value="false"/>\r
+ <property key="make-warnings-into-errors" value="false"/>\r
+ <property key="optimization-level" value=""/>\r
+ <property key="place-data-into-section" value="false"/>\r
+ <property key="post-instruction-scheduling" value="default"/>\r
+ <property key="pre-instruction-scheduling" value="default"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="rtti" value="true"/>\r
+ <property key="strict-ansi" value="false"/>\r
+ <property key="use-cci" value="false"/>\r
+ <property key="use-iar" value="false"/>\r
+ <property key="use-indirect-calls" value="false"/>\r
+ </C32CPP>\r
+ <C32Global>\r
+ <property key="common-include-directories" value=""/>\r
+ <property key="gp-relative-option" value=""/>\r
+ <property key="legacy-libc" value="false"/>\r
+ <property key="relaxed-math" value="false"/>\r
+ <property key="save-temps" value="false"/>\r
+ <property key="wpo-lto" value="false"/>\r
+ <appendMe value="-msoft-float"/>\r
+ </C32Global>\r
+ <ICD3PlatformTool>\r
+ <property key="ADC" value="true"/>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="CAN1" value="true"/>\r
+ <property key="CAN2" value="true"/>\r
+ <property key="CHANGE NOTICE A" value="true"/>\r
+ <property key="CHANGE NOTICE B" value="true"/>\r
+ <property key="CHANGE NOTICE C" value="true"/>\r
+ <property key="CHANGE NOTICE D" value="true"/>\r
+ <property key="CHANGE NOTICE E" value="true"/>\r
+ <property key="CHANGE NOTICE F" value="true"/>\r
+ <property key="CHANGE NOTICE G" value="true"/>\r
+ <property key="CHANGE NOTICE H" value="true"/>\r
+ <property key="CHANGE NOTICE J" value="true"/>\r
+ <property key="CHANGE NOTICE K" value="true"/>\r
+ <property key="COMPARATOR" value="true"/>\r
+ <property key="DMA" value="true"/>\r
+ <property key="ETHERNET CONTROLLER" value="true"/>\r
+ <property key="INPUT CAPTURE 1" value="true"/>\r
+ <property key="INPUT CAPTURE 2" value="true"/>\r
+ <property key="INPUT CAPTURE 3" value="true"/>\r
+ <property key="INPUT CAPTURE 4" value="true"/>\r
+ <property key="INPUT CAPTURE 5" value="true"/>\r
+ <property key="INPUT CAPTURE 6" value="true"/>\r
+ <property key="INPUT CAPTURE 7" value="true"/>\r
+ <property key="INPUT CAPTURE 8" value="true"/>\r
+ <property key="INPUT CAPTURE 9" value="true"/>\r
+ <property key="INTERRUPT CONTROL" value="true"/>\r
+ <property key="OUTPUT COMPARE 1" value="true"/>\r
+ <property key="OUTPUT COMPARE 2" value="true"/>\r
+ <property key="OUTPUT COMPARE 3" value="true"/>\r
+ <property key="OUTPUT COMPARE 4" value="true"/>\r
+ <property key="OUTPUT COMPARE 5" value="true"/>\r
+ <property key="OUTPUT COMPARE 6" value="true"/>\r
+ <property key="OUTPUT COMPARE 7" value="true"/>\r
+ <property key="OUTPUT COMPARE 8" value="true"/>\r
+ <property key="OUTPUT COMPARE 9" value="true"/>\r
+ <property key="PARALLEL MASTER/SLAVE PORT" value="true"/>\r
+ <property key="REAL TIME CLOCK" value="true"/>\r
+ <property key="REFERENCE CLOCK1" value="true"/>\r
+ <property key="REFERENCE CLOCK2" value="true"/>\r
+ <property key="REFERENCE CLOCK3" value="true"/>\r
+ <property key="REFERENCE CLOCK4" value="true"/>\r
+ <property key="SPI/I2S 1" value="true"/>\r
+ <property key="SPI/I2S 2" value="true"/>\r
+ <property key="SPI/I2S 3" value="true"/>\r
+ <property key="SPI/I2S 4" value="true"/>\r
+ <property key="SPI/I2S 5" value="true"/>\r
+ <property key="SPI/I2S 6" value="true"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="TIMER1" value="true"/>\r
+ <property key="TIMER2" value="true"/>\r
+ <property key="TIMER3" value="true"/>\r
+ <property key="TIMER4" value="true"/>\r
+ <property key="TIMER5" value="true"/>\r
+ <property key="TIMER6" value="true"/>\r
+ <property key="TIMER7" value="true"/>\r
+ <property key="TIMER8" value="true"/>\r
+ <property key="TIMER9" value="true"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="UART1" value="true"/>\r
+ <property key="UART2" value="true"/>\r
+ <property key="UART3" value="true"/>\r
+ <property key="UART4" value="true"/>\r
+ <property key="UART5" value="true"/>\r
+ <property key="UART6" value="true"/>\r
+ <property key="debugoptions.useswbreakpoints" value="false"/>\r
+ <property key="hwtoolclock.frcindebug" value="false"/>\r
+ <property key="memories.aux" value="false"/>\r
+ <property key="memories.bootflash" value="false"/>\r
+ <property key="memories.configurationmemory" value="true"/>\r
+ <property key="memories.configurationmemory2" value="true"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="true"/>\r
+ <property key="memories.flashdata" value="true"/>\r
+ <property key="memories.id" value="true"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.partition2" value="true"/>\r
+ <property key="memories.programmemory.partition2.end"\r
+ value="${memories.programmemory.partition2.end.value}"/>\r
+ <property key="memories.programmemory.partition2.start"\r
+ value="${memories.programmemory.partition2.start.value}"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
+ <property key="poweroptions.powerenable" value="false"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d1fffff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.preserveuserid" value="false"/>\r
+ <property key="programoptions.programcalmem" value="false"/>\r
+ <property key="programoptions.programuserotp" value="false"/>\r
+ <property key="programoptions.testmodeentrymethod" value="VDDFirst"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ <property key="voltagevalue" value="3.25"/>\r
+ </ICD3PlatformTool>\r
+ <PKOBSKDEPlatformTool>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="firmware.download.all" value="false"/>\r
+ <property key="memories.configurationmemory" value="false"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="false"/>\r
+ <property key="memories.id" value="false"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
+ <property key="memories.userotp" value="true"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
<property key="programoptions.preserveprogramrange.end" value="0x1d0007ff"/>\r
<property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
<property key="programoptions.usehighvoltageonmclr" value="false"/>\r
<property key="programoptions.uselvpprogramming" value="false"/>\r
+ </PKOBSKDEPlatformTool>\r
+ <RealICEPlatformTool>\r
+ <property key="ADC" value="true"/>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="CAN1" value="true"/>\r
+ <property key="CAN2" value="true"/>\r
+ <property key="CHANGE NOTICE A" value="true"/>\r
+ <property key="CHANGE NOTICE B" value="true"/>\r
+ <property key="CHANGE NOTICE C" value="true"/>\r
+ <property key="CHANGE NOTICE D" value="true"/>\r
+ <property key="CHANGE NOTICE E" value="true"/>\r
+ <property key="CHANGE NOTICE F" value="true"/>\r
+ <property key="CHANGE NOTICE G" value="true"/>\r
+ <property key="CHANGE NOTICE H" value="true"/>\r
+ <property key="CHANGE NOTICE J" value="true"/>\r
+ <property key="CHANGE NOTICE K" value="true"/>\r
+ <property key="COMPARATOR" value="true"/>\r
+ <property key="DMA" value="true"/>\r
+ <property key="ETHERNET CONTROLLER" value="true"/>\r
+ <property key="INPUT CAPTURE 1" value="true"/>\r
+ <property key="INPUT CAPTURE 2" value="true"/>\r
+ <property key="INPUT CAPTURE 3" value="true"/>\r
+ <property key="INPUT CAPTURE 4" value="true"/>\r
+ <property key="INPUT CAPTURE 5" value="true"/>\r
+ <property key="INPUT CAPTURE 6" value="true"/>\r
+ <property key="INPUT CAPTURE 7" value="true"/>\r
+ <property key="INPUT CAPTURE 8" value="true"/>\r
+ <property key="INPUT CAPTURE 9" value="true"/>\r
+ <property key="INTERRUPT CONTROL" value="true"/>\r
+ <property key="OUTPUT COMPARE 1" value="true"/>\r
+ <property key="OUTPUT COMPARE 2" value="true"/>\r
+ <property key="OUTPUT COMPARE 3" value="true"/>\r
+ <property key="OUTPUT COMPARE 4" value="true"/>\r
+ <property key="OUTPUT COMPARE 5" value="true"/>\r
+ <property key="OUTPUT COMPARE 6" value="true"/>\r
+ <property key="OUTPUT COMPARE 7" value="true"/>\r
+ <property key="OUTPUT COMPARE 8" value="true"/>\r
+ <property key="OUTPUT COMPARE 9" value="true"/>\r
+ <property key="PARALLEL MASTER/SLAVE PORT" value="true"/>\r
+ <property key="REAL TIME CLOCK" value="true"/>\r
+ <property key="REFERENCE CLOCK1" value="true"/>\r
+ <property key="REFERENCE CLOCK2" value="true"/>\r
+ <property key="REFERENCE CLOCK3" value="true"/>\r
+ <property key="REFERENCE CLOCK4" value="true"/>\r
+ <property key="RIExTrigs.Five" value="OFF"/>\r
+ <property key="RIExTrigs.Four" value="OFF"/>\r
+ <property key="RIExTrigs.One" value="OFF"/>\r
+ <property key="RIExTrigs.Seven" value="OFF"/>\r
+ <property key="RIExTrigs.Six" value="OFF"/>\r
+ <property key="RIExTrigs.Three" value="OFF"/>\r
+ <property key="RIExTrigs.Two" value="OFF"/>\r
+ <property key="RIExTrigs.Zero" value="OFF"/>\r
+ <property key="SPI/I2S 1" value="true"/>\r
+ <property key="SPI/I2S 2" value="true"/>\r
+ <property key="SPI/I2S 3" value="true"/>\r
+ <property key="SPI/I2S 4" value="true"/>\r
+ <property key="SPI/I2S 5" value="true"/>\r
+ <property key="SPI/I2S 6" value="true"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="TIMER1" value="true"/>\r
+ <property key="TIMER2" value="true"/>\r
+ <property key="TIMER3" value="true"/>\r
+ <property key="TIMER4" value="true"/>\r
+ <property key="TIMER5" value="true"/>\r
+ <property key="TIMER6" value="true"/>\r
+ <property key="TIMER7" value="true"/>\r
+ <property key="TIMER8" value="true"/>\r
+ <property key="TIMER9" value="true"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="UART1" value="true"/>\r
+ <property key="UART2" value="true"/>\r
+ <property key="UART3" value="true"/>\r
+ <property key="UART4" value="true"/>\r
+ <property key="UART5" value="true"/>\r
+ <property key="UART6" value="true"/>\r
+ <property key="debugoptions.useswbreakpoints" value="false"/>\r
+ <property key="hwtoolclock.frcindebug" value="false"/>\r
+ <property key="hwtoolclock.instructionspeed" value="4"/>\r
+ <property key="hwtoolclock.units" value="mips"/>\r
+ <property key="memories.aux" value="false"/>\r
+ <property key="memories.bootflash" value="true"/>\r
+ <property key="memories.configurationmemory" value="true"/>\r
+ <property key="memories.configurationmemory2" value="true"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="true"/>\r
+ <property key="memories.flashdata" value="true"/>\r
+ <property key="memories.id" value="true"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.partition2" value="true"/>\r
+ <property key="memories.programmemory.partition2.end"\r
+ value="${memories.programmemory.partition2.end.value}"/>\r
+ <property key="memories.programmemory.partition2.start"\r
+ value="${memories.programmemory.partition2.start.value}"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
+ <property key="poweroptions.powerenable" value="false"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d1fffff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.preserveuserid" value="false"/>\r
+ <property key="programoptions.programcalmem" value="false"/>\r
+ <property key="programoptions.programuserotp" value="false"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ <property key="tracecontrol.include.timestamp" value="summarydataenabled"/>\r
+ <property key="tracecontrol.select" value="0"/>\r
+ <property key="tracecontrol.stallontracebufferfull" value="false"/>\r
+ <property key="tracecontrol.tracebufmax" value="54600"/>\r
+ <property key="tracecontrol.tracefile" value="defmplabxtrace.log"/>\r
+ <property key="tracecontrol.tracefilemax" value="400000000"/>\r
<property key="voltagevalue" value="3.25"/>\r
+ </RealICEPlatformTool>\r
+ </conf>\r
+ <conf name="PIC32MZ2048EF_SK_HARD_FLOAT" type="2">\r
+ <toolsSet>\r
+ <developmentServer>localhost</developmentServer>\r
+ <targetDevice>PIC32MZ2048EFH144</targetDevice>\r
+ <targetHeader></targetHeader>\r
+ <targetPluginBoard></targetPluginBoard>\r
+ <platformTool>PKOBSKDEPlatformTool</platformTool>\r
+ <languageToolchain>XC32</languageToolchain>\r
+ <languageToolchainVersion>1.40</languageToolchainVersion>\r
+ <platform>3</platform>\r
+ </toolsSet>\r
+ <compileType>\r
+ <linkerTool>\r
+ <linkerLibItems>\r
+ </linkerLibItems>\r
+ </linkerTool>\r
+ <archiverTool>\r
+ </archiverTool>\r
+ <loading>\r
+ <useAlternateLoadableFile>false</useAlternateLoadableFile>\r
+ <parseOnProdLoad>true</parseOnProdLoad>\r
+ <alternateLoadableFile></alternateLoadableFile>\r
+ </loading>\r
+ </compileType>\r
+ <makeCustomizationType>\r
+ <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>\r
+ <makeCustomizationPreStep></makeCustomizationPreStep>\r
+ <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>\r
+ <makeCustomizationPostStep></makeCustomizationPostStep>\r
+ <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>\r
+ <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>\r
+ <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>\r
+ </makeCustomizationType>\r
+ <C32>\r
+ <property key="additional-warnings" value="true"/>\r
+ <property key="enable-app-io" value="false"/>\r
+ <property key="enable-omit-frame-pointer" value="false"/>\r
+ <property key="enable-symbols" value="true"/>\r
+ <property key="enable-unroll-loops" value="false"/>\r
+ <property key="exclude-floating-point" value="false"/>\r
+ <property key="extra-include-directories"\r
+ value="../../../Source/include;../../../Source/portable/MPLAB/PIC32MZ;../../Common/include;../"/>\r
+ <property key="generate-16-bit-code" value="false"/>\r
+ <property key="generate-micro-compressed-code" value="false"/>\r
+ <property key="isolate-each-function" value="false"/>\r
+ <property key="make-warnings-into-errors" value="false"/>\r
+ <property key="optimization-level" value=""/>\r
+ <property key="place-data-into-section" value="false"/>\r
+ <property key="post-instruction-scheduling" value="default"/>\r
+ <property key="pre-instruction-scheduling" value="default"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="strict-ansi" value="false"/>\r
+ <property key="support-ansi" value="false"/>\r
+ <property key="use-cci" value="false"/>\r
+ <property key="use-iar" value="false"/>\r
+ <property key="use-indirect-calls" value="false"/>\r
+ <appendMe value="-Wall -Wextra -DconfigUSE_TASK_FPU_SUPPORT=1"/>\r
+ </C32>\r
+ <C32-AR>\r
+ <property key="additional-options-chop-files" value="false"/>\r
+ </C32-AR>\r
+ <C32-AS>\r
+ <property key="assembler-symbols" value=""/>\r
+ <property key="enable-symbols" value="true"/>\r
+ <property key="exclude-floating-point-library" value="false"/>\r
+ <property key="expand-macros" value="false"/>\r
+ <property key="extra-include-directories-for-assembler" value=""/>\r
+ <property key="extra-include-directories-for-preprocessor" value=""/>\r
+ <property key="false-conditionals" value="false"/>\r
+ <property key="keep-locals" value="false"/>\r
+ <property key="list-assembly" value="false"/>\r
+ <property key="list-source" value="false"/>\r
+ <property key="list-symbols" value="false"/>\r
+ <property key="oXC32asm-list-to-file" value="false"/>\r
+ <property key="omit-debug-dirs" value="false"/>\r
+ <property key="omit-forms" value="false"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="warning-level" value=""/>\r
+ <appendMe value="-I../../../Source/portable/MPLAB/PIC32MZ -I../ -DconfigUSE_TASK_FPU_SUPPORT=1"/>\r
+ </C32-AS>\r
+ <C32-LD>\r
+ <property key="additional-options-use-response-files" value="false"/>\r
+ <property key="enable-check-sections" value="false"/>\r
+ <property key="exclude-floating-point-library" value="false"/>\r
+ <property key="exclude-standard-libraries" value="false"/>\r
+ <property key="extra-lib-directories" value=""/>\r
+ <property key="fill-flash-options-addr" value=""/>\r
+ <property key="fill-flash-options-const" value=""/>\r
+ <property key="fill-flash-options-how" value="0"/>\r
+ <property key="fill-flash-options-inc-const" value="1"/>\r
+ <property key="fill-flash-options-increment" value=""/>\r
+ <property key="fill-flash-options-seq" value=""/>\r
+ <property key="fill-flash-options-what" value="0"/>\r
+ <property key="generate-16-bit-code" value="false"/>\r
+ <property key="generate-cross-reference-file" value="false"/>\r
+ <property key="generate-micro-compressed-code" value="false"/>\r
+ <property key="heap-size" value="0"/>\r
+ <property key="input-libraries" value=""/>\r
+ <property key="linker-symbols" value=""/>\r
+ <property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>\r
+ <property key="no-startup-files" value="false"/>\r
+ <property key="oXC32ld-extra-opts" value=""/>\r
+ <property key="optimization-level" value=""/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="remove-unused-sections" value="false"/>\r
+ <property key="report-memory-usage" value="false"/>\r
+ <property key="stack-size" value=""/>\r
+ <property key="symbol-stripping" value=""/>\r
+ <property key="trace-symbols" value=""/>\r
+ <property key="warn-section-align" value="false"/>\r
+ </C32-LD>\r
+ <C32CPP>\r
+ <property key="additional-warnings" value="false"/>\r
+ <property key="check-new" value="false"/>\r
+ <property key="eh-specs" value="true"/>\r
+ <property key="enable-app-io" value="false"/>\r
+ <property key="enable-omit-frame-pointer" value="false"/>\r
+ <property key="enable-symbols" value="true"/>\r
+ <property key="enable-unroll-loops" value="false"/>\r
+ <property key="exceptions" value="true"/>\r
+ <property key="exclude-floating-point" value="false"/>\r
+ <property key="extra-include-directories" value=""/>\r
+ <property key="generate-16-bit-code" value="false"/>\r
+ <property key="generate-micro-compressed-code" value="false"/>\r
+ <property key="isolate-each-function" value="false"/>\r
+ <property key="make-warnings-into-errors" value="false"/>\r
+ <property key="optimization-level" value=""/>\r
+ <property key="place-data-into-section" value="false"/>\r
+ <property key="post-instruction-scheduling" value="default"/>\r
+ <property key="pre-instruction-scheduling" value="default"/>\r
+ <property key="preprocessor-macros" value=""/>\r
+ <property key="rtti" value="true"/>\r
+ <property key="strict-ansi" value="false"/>\r
+ <property key="use-cci" value="false"/>\r
+ <property key="use-iar" value="false"/>\r
+ <property key="use-indirect-calls" value="false"/>\r
+ </C32CPP>\r
+ <C32Global>\r
+ <property key="common-include-directories" value=""/>\r
+ <property key="gp-relative-option" value=""/>\r
+ <property key="legacy-libc" value="false"/>\r
+ <property key="relaxed-math" value="false"/>\r
+ <property key="save-temps" value="false"/>\r
+ <property key="wpo-lto" value="false"/>\r
+ </C32Global>\r
+ <ICD3PlatformTool>\r
+ <property key="ADC" value="true"/>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="CAN1" value="true"/>\r
+ <property key="CAN2" value="true"/>\r
+ <property key="CHANGE NOTICE A" value="true"/>\r
+ <property key="CHANGE NOTICE B" value="true"/>\r
+ <property key="CHANGE NOTICE C" value="true"/>\r
+ <property key="CHANGE NOTICE D" value="true"/>\r
+ <property key="CHANGE NOTICE E" value="true"/>\r
+ <property key="CHANGE NOTICE F" value="true"/>\r
+ <property key="CHANGE NOTICE G" value="true"/>\r
+ <property key="CHANGE NOTICE H" value="true"/>\r
+ <property key="CHANGE NOTICE J" value="true"/>\r
+ <property key="CHANGE NOTICE K" value="true"/>\r
+ <property key="COMPARATOR" value="true"/>\r
+ <property key="DMA" value="true"/>\r
+ <property key="ETHERNET CONTROLLER" value="true"/>\r
+ <property key="INPUT CAPTURE 1" value="true"/>\r
+ <property key="INPUT CAPTURE 2" value="true"/>\r
+ <property key="INPUT CAPTURE 3" value="true"/>\r
+ <property key="INPUT CAPTURE 4" value="true"/>\r
+ <property key="INPUT CAPTURE 5" value="true"/>\r
+ <property key="INPUT CAPTURE 6" value="true"/>\r
+ <property key="INPUT CAPTURE 7" value="true"/>\r
+ <property key="INPUT CAPTURE 8" value="true"/>\r
+ <property key="INPUT CAPTURE 9" value="true"/>\r
+ <property key="INTERRUPT CONTROL" value="true"/>\r
+ <property key="OUTPUT COMPARE 1" value="true"/>\r
+ <property key="OUTPUT COMPARE 2" value="true"/>\r
+ <property key="OUTPUT COMPARE 3" value="true"/>\r
+ <property key="OUTPUT COMPARE 4" value="true"/>\r
+ <property key="OUTPUT COMPARE 5" value="true"/>\r
+ <property key="OUTPUT COMPARE 6" value="true"/>\r
+ <property key="OUTPUT COMPARE 7" value="true"/>\r
+ <property key="OUTPUT COMPARE 8" value="true"/>\r
+ <property key="OUTPUT COMPARE 9" value="true"/>\r
+ <property key="PARALLEL MASTER/SLAVE PORT" value="true"/>\r
+ <property key="REAL TIME CLOCK" value="true"/>\r
+ <property key="REFERENCE CLOCK1" value="true"/>\r
+ <property key="REFERENCE CLOCK2" value="true"/>\r
+ <property key="REFERENCE CLOCK3" value="true"/>\r
+ <property key="REFERENCE CLOCK4" value="true"/>\r
+ <property key="SPI/I2S 1" value="true"/>\r
+ <property key="SPI/I2S 2" value="true"/>\r
+ <property key="SPI/I2S 3" value="true"/>\r
+ <property key="SPI/I2S 4" value="true"/>\r
+ <property key="SPI/I2S 5" value="true"/>\r
+ <property key="SPI/I2S 6" value="true"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="TIMER1" value="true"/>\r
+ <property key="TIMER2" value="true"/>\r
+ <property key="TIMER3" value="true"/>\r
+ <property key="TIMER4" value="true"/>\r
+ <property key="TIMER5" value="true"/>\r
+ <property key="TIMER6" value="true"/>\r
+ <property key="TIMER7" value="true"/>\r
+ <property key="TIMER8" value="true"/>\r
+ <property key="TIMER9" value="true"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="UART1" value="true"/>\r
+ <property key="UART2" value="true"/>\r
+ <property key="UART3" value="true"/>\r
+ <property key="UART4" value="true"/>\r
+ <property key="UART5" value="true"/>\r
+ <property key="UART6" value="true"/>\r
+ <property key="debugoptions.useswbreakpoints" value="false"/>\r
+ <property key="hwtoolclock.frcindebug" value="false"/>\r
+ <property key="memories.aux" value="false"/>\r
+ <property key="memories.bootflash" value="false"/>\r
+ <property key="memories.configurationmemory" value="true"/>\r
+ <property key="memories.configurationmemory2" value="true"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="true"/>\r
+ <property key="memories.flashdata" value="true"/>\r
+ <property key="memories.id" value="true"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.partition2" value="true"/>\r
+ <property key="memories.programmemory.partition2.end"\r
+ value="${memories.programmemory.partition2.end.value}"/>\r
+ <property key="memories.programmemory.partition2.start"\r
+ value="${memories.programmemory.partition2.start.value}"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
+ <property key="poweroptions.powerenable" value="false"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d1fffff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.preserveuserid" value="false"/>\r
+ <property key="programoptions.programcalmem" value="false"/>\r
+ <property key="programoptions.programuserotp" value="false"/>\r
+ <property key="programoptions.testmodeentrymethod" value="VDDFirst"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ <property key="voltagevalue" value="3.25"/>\r
+ </ICD3PlatformTool>\r
+ <PKOBSKDEPlatformTool>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="memories.configurationmemory" value="false"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="false"/>\r
+ <property key="memories.id" value="false"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
+ <property key="memories.userotp" value="true"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d0007ff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
</PKOBSKDEPlatformTool>\r
+ <RealICEPlatformTool>\r
+ <property key="ADC" value="true"/>\r
+ <property key="AutoSelectMemRanges" value="auto"/>\r
+ <property key="CAN1" value="true"/>\r
+ <property key="CAN2" value="true"/>\r
+ <property key="CHANGE NOTICE A" value="true"/>\r
+ <property key="CHANGE NOTICE B" value="true"/>\r
+ <property key="CHANGE NOTICE C" value="true"/>\r
+ <property key="CHANGE NOTICE D" value="true"/>\r
+ <property key="CHANGE NOTICE E" value="true"/>\r
+ <property key="CHANGE NOTICE F" value="true"/>\r
+ <property key="CHANGE NOTICE G" value="true"/>\r
+ <property key="CHANGE NOTICE H" value="true"/>\r
+ <property key="CHANGE NOTICE J" value="true"/>\r
+ <property key="CHANGE NOTICE K" value="true"/>\r
+ <property key="COMPARATOR" value="true"/>\r
+ <property key="DMA" value="true"/>\r
+ <property key="ETHERNET CONTROLLER" value="true"/>\r
+ <property key="INPUT CAPTURE 1" value="true"/>\r
+ <property key="INPUT CAPTURE 2" value="true"/>\r
+ <property key="INPUT CAPTURE 3" value="true"/>\r
+ <property key="INPUT CAPTURE 4" value="true"/>\r
+ <property key="INPUT CAPTURE 5" value="true"/>\r
+ <property key="INPUT CAPTURE 6" value="true"/>\r
+ <property key="INPUT CAPTURE 7" value="true"/>\r
+ <property key="INPUT CAPTURE 8" value="true"/>\r
+ <property key="INPUT CAPTURE 9" value="true"/>\r
+ <property key="INTERRUPT CONTROL" value="true"/>\r
+ <property key="OUTPUT COMPARE 1" value="true"/>\r
+ <property key="OUTPUT COMPARE 2" value="true"/>\r
+ <property key="OUTPUT COMPARE 3" value="true"/>\r
+ <property key="OUTPUT COMPARE 4" value="true"/>\r
+ <property key="OUTPUT COMPARE 5" value="true"/>\r
+ <property key="OUTPUT COMPARE 6" value="true"/>\r
+ <property key="OUTPUT COMPARE 7" value="true"/>\r
+ <property key="OUTPUT COMPARE 8" value="true"/>\r
+ <property key="OUTPUT COMPARE 9" value="true"/>\r
+ <property key="PARALLEL MASTER/SLAVE PORT" value="true"/>\r
+ <property key="REAL TIME CLOCK" value="true"/>\r
+ <property key="REFERENCE CLOCK1" value="true"/>\r
+ <property key="REFERENCE CLOCK2" value="true"/>\r
+ <property key="REFERENCE CLOCK3" value="true"/>\r
+ <property key="REFERENCE CLOCK4" value="true"/>\r
+ <property key="RIExTrigs.Five" value="OFF"/>\r
+ <property key="RIExTrigs.Four" value="OFF"/>\r
+ <property key="RIExTrigs.One" value="OFF"/>\r
+ <property key="RIExTrigs.Seven" value="OFF"/>\r
+ <property key="RIExTrigs.Six" value="OFF"/>\r
+ <property key="RIExTrigs.Three" value="OFF"/>\r
+ <property key="RIExTrigs.Two" value="OFF"/>\r
+ <property key="RIExTrigs.Zero" value="OFF"/>\r
+ <property key="SPI/I2S 1" value="true"/>\r
+ <property key="SPI/I2S 2" value="true"/>\r
+ <property key="SPI/I2S 3" value="true"/>\r
+ <property key="SPI/I2S 4" value="true"/>\r
+ <property key="SPI/I2S 5" value="true"/>\r
+ <property key="SPI/I2S 6" value="true"/>\r
+ <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>\r
+ <property key="TIMER1" value="true"/>\r
+ <property key="TIMER2" value="true"/>\r
+ <property key="TIMER3" value="true"/>\r
+ <property key="TIMER4" value="true"/>\r
+ <property key="TIMER5" value="true"/>\r
+ <property key="TIMER6" value="true"/>\r
+ <property key="TIMER7" value="true"/>\r
+ <property key="TIMER8" value="true"/>\r
+ <property key="TIMER9" value="true"/>\r
+ <property key="ToolFirmwareFilePath"\r
+ value="Press to browse for a specific firmware version"/>\r
+ <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>\r
+ <property key="UART1" value="true"/>\r
+ <property key="UART2" value="true"/>\r
+ <property key="UART3" value="true"/>\r
+ <property key="UART4" value="true"/>\r
+ <property key="UART5" value="true"/>\r
+ <property key="UART6" value="true"/>\r
+ <property key="debugoptions.useswbreakpoints" value="false"/>\r
+ <property key="hwtoolclock.frcindebug" value="false"/>\r
+ <property key="hwtoolclock.instructionspeed" value="4"/>\r
+ <property key="hwtoolclock.units" value="mips"/>\r
+ <property key="memories.aux" value="false"/>\r
+ <property key="memories.bootflash" value="true"/>\r
+ <property key="memories.configurationmemory" value="true"/>\r
+ <property key="memories.configurationmemory2" value="true"/>\r
+ <property key="memories.dataflash" value="true"/>\r
+ <property key="memories.eeprom" value="true"/>\r
+ <property key="memories.flashdata" value="true"/>\r
+ <property key="memories.id" value="true"/>\r
+ <property key="memories.programmemory" value="true"/>\r
+ <property key="memories.programmemory.end" value="0x1d1fffff"/>\r
+ <property key="memories.programmemory.partition2" value="true"/>\r
+ <property key="memories.programmemory.partition2.end"\r
+ value="${memories.programmemory.partition2.end.value}"/>\r
+ <property key="memories.programmemory.partition2.start"\r
+ value="${memories.programmemory.partition2.start.value}"/>\r
+ <property key="memories.programmemory.start" value="0x1d000000"/>\r
+ <property key="poweroptions.powerenable" value="false"/>\r
+ <property key="programoptions.donoteraseauxmem" value="false"/>\r
+ <property key="programoptions.eraseb4program" value="true"/>\r
+ <property key="programoptions.preservedataflash" value="false"/>\r
+ <property key="programoptions.preserveeeprom" value="false"/>\r
+ <property key="programoptions.preserveprogramrange" value="false"/>\r
+ <property key="programoptions.preserveprogramrange.end" value="0x1d1fffff"/>\r
+ <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>\r
+ <property key="programoptions.preserveuserid" value="false"/>\r
+ <property key="programoptions.programcalmem" value="false"/>\r
+ <property key="programoptions.programuserotp" value="false"/>\r
+ <property key="programoptions.usehighvoltageonmclr" value="false"/>\r
+ <property key="programoptions.uselvpprogramming" value="false"/>\r
+ <property key="tracecontrol.include.timestamp" value="summarydataenabled"/>\r
+ <property key="tracecontrol.select" value="0"/>\r
+ <property key="tracecontrol.stallontracebufferfull" value="false"/>\r
+ <property key="tracecontrol.tracebufmax" value="54600"/>\r
+ <property key="tracecontrol.tracefile" value="defmplabxtrace.log"/>\r
+ <property key="tracecontrol.tracefilemax" value="400000000"/>\r
+ <property key="voltagevalue" value="3.25"/>\r
+ </RealICEPlatformTool>\r
</conf>\r
</confs>\r
</configurationDescriptor>\r
<?xml version="1.0" encoding="UTF-8"?>\r
<configurationDescriptor version="62">\r
<projectmakefile>Makefile</projectmakefile>\r
- <defaultConf>0</defaultConf>\r
+ <defaultConf>2</defaultConf>\r
<confs>\r
<conf name="PIC32MZ2048_SK" type="2">\r
- <platformToolSN>:=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>8107:=<rev>0002:=<man>Microchip Technology Incorporated:=<prod>PIC32MZ EC Family:=<sn>BUR135112430:=<drv>x:=<xpt>h:=end</platformToolSN>\r
- <languageToolchainDir>C:\DevTools\Microchip\xc32\v1.34\bin</languageToolchainDir>\r
+ <platformToolSN>:=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>8107:=<rev>0002:=<man>Microchip Technology Incorporated:=<prod>PIC32MZ EF Family:=<sn>BUR153124004:=<drv>x:=<xpt>h:=end</platformToolSN>\r
+ <languageToolchainDir>C:\DevTools\Microchip\xc32\v1.40\bin</languageToolchainDir>\r
+ <mdbdebugger version="1">\r
+ <placeholder1>place holder 1</placeholder1>\r
+ <placeholder2>place holder 2</placeholder2>\r
+ </mdbdebugger>\r
+ <runprofile version="6">\r
+ <args></args>\r
+ <rundir></rundir>\r
+ <buildfirst>true</buildfirst>\r
+ <console-type>0</console-type>\r
+ <terminal-type>0</terminal-type>\r
+ <remove-instrumentation>0</remove-instrumentation>\r
+ <environment>\r
+ </environment>\r
+ </runprofile>\r
+ </conf>\r
+ <conf name="PIC32MZ2048EF_SK_SOFT_FLOAT" type="2">\r
+ <platformToolSN>:=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>8107:=<rev>0002:=<man>Microchip Technology Incorporated:=<prod>PIC32MZ EF Family:=<sn>BUR153124004:=<drv>x:=<xpt>h:=end</platformToolSN>\r
+ <languageToolchainDir>C:\DevTools\Microchip\xc32\v1.40\bin</languageToolchainDir>\r
+ <mdbdebugger version="1">\r
+ <placeholder1>place holder 1</placeholder1>\r
+ <placeholder2>place holder 2</placeholder2>\r
+ </mdbdebugger>\r
+ <runprofile version="6">\r
+ <args></args>\r
+ <rundir></rundir>\r
+ <buildfirst>true</buildfirst>\r
+ <console-type>0</console-type>\r
+ <terminal-type>0</terminal-type>\r
+ <remove-instrumentation>0</remove-instrumentation>\r
+ <environment>\r
+ </environment>\r
+ </runprofile>\r
+ </conf>\r
+ <conf name="PIC32MZ2048EF_SK_HARD_FLOAT" type="2">\r
+ <platformToolSN>:=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>8107:=<rev>0002:=<man>Microchip Technology Incorporated:=<prod>PIC32MZ EF Family:=<sn>BUR153124004:=<drv>x:=<xpt>h:=end</platformToolSN>\r
+ <languageToolchainDir>C:\DevTools\Microchip\xc32\v1.40\bin</languageToolchainDir>\r
<mdbdebugger version="1">\r
<placeholder1>place holder 1</placeholder1>\r
<placeholder2>place holder 2</placeholder2>\r
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>\r
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">\r
<group>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Source/portable/MPLAB/PIC32MZ/ISR_Support.h</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Demo/PIC32MZ_MPLAB/FreeRTOSConfig.h</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Demo/PIC32MZ_MPLAB/flop_mz.c</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Source/portable/MPLAB/PIC32MZ/port.c</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Source/portable/MPLAB/PIC32MZ/port_asm.S</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Source/portable/MPLAB/PIC32MZ/portmacro.h</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Demo/PIC32MZ_MPLAB/main_blinky.c</file>\r
+ <file>file:/C:/Microchip/harmony/v1_06/third_party/rtos/FreeRTOS/Demo/PIC32MZ_MPLAB/main_full.c</file>\r
+ </group>\r
+ <group name="Masters19024">\r
<file>file:/C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c</file>\r
</group>\r
</open-files>\r
\r
#include <xc.h>\r
#include <sys/asm.h>\r
+#include "FreeRTOSConfig.h"\r
\r
.set nomips16\r
- .set noreorder\r
+ .set noreorder\r
\r
\r
- .global vRegTest1\r
- .global vRegTest2\r
+ .global vRegTest1\r
+ .global vRegTest2\r
\r
+/************************************************************************/\r
+/* Reg test macro helper. Test a register for a known value branching to\r
+error_loop if not correct otherwise continuing on */\r
+.macro portREG_TEST work_reg, test_reg, test_value\r
+\r
+ /* Check each register maintains the value assigned to it for the lifetime\r
+ of the task. */\r
+ addiu \work_reg, $0, 0x00\r
+ addiu \work_reg, \test_reg, -\test_value\r
+ beq \work_reg, $0, 1f\r
+ nop\r
+ /* The register value was not that expected. Jump to the error loop so the\r
+ cycle counter stops incrementing. */\r
+ b error_loop\r
+ nop\r
+1:\r
+ .endm\r
+\r
+/************************************************************************/\r
+/* FPU reg test macro helper, Test an FPU register for a known value branching to\r
+error_loop if not correct otherwise continuing on */\r
+ #if ( __mips_hard_float == 1) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+.macro portFPU_REG_TEST work_reg, test_reg, test_value\r
+ /* get the lower 32 bit value from the FPU and compare to the test value */\r
+ mfc1 \work_reg, \test_reg\r
+ addiu \work_reg, \work_reg, -\test_value\r
+ beq \work_reg, $0, 1f\r
+ nop\r
+\r
+ /* The register values was not that expected. Jump to the error loop */\r
+ b error_loop\r
+ nop\r
+1:\r
+ .endm\r
+ #endif\r
+\r
+\r
+/************************************************************************/\r
.set noreorder\r
.set noat\r
.ent error_loop\r
\r
\r
.set noreorder\r
- .set noat\r
+ .set noat\r
.ent vRegTest1\r
\r
vRegTest1:\r
addiu $22, $0, 0x136\r
mtlo $22, $ac3\r
\r
-vRegTest1Loop:\r
- /* Check each register maintains the value assigned to it for the lifetime\r
- of the task. */\r
- addiu $22, $0, 0x00\r
- addiu $22, $1, -0x11\r
- beq $22, $0, .+16\r
- nop\r
- /* The register value was not that expected. Jump to the error loop so the\r
- cycle counter stops incrementing. */\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $2, -0x12\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $3, -0x13\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
+ /* Test the FPU registers if they are present on the part. */\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ addiu $22, $0, 0x180\r
+ mtc1 $22, $f0\r
+ addiu $22, $0, 0x181\r
+ mtc1 $22, $f1\r
+ addiu $22, $0, 0x182\r
+ mtc1 $22, $f2\r
+ addiu $22, $0, 0x183\r
+ mtc1 $22, $f3\r
+ addiu $22, $0, 0x184\r
+ mtc1 $22, $f4\r
+ addiu $22, $0, 0x185\r
+ mtc1 $22, $f5\r
+ addiu $22, $0, 0x186\r
+ mtc1 $22, $f6\r
+ addiu $22, $0, 0x187\r
+ mtc1 $22, $f7\r
+ addiu $22, $0, 0x188\r
+ mtc1 $22, $f8\r
+ addiu $22, $0, 0x189\r
+ mtc1 $22, $f9\r
+ addiu $22, $0, 0x18A\r
+ mtc1 $22, $f10\r
+ addiu $22, $0, 0x18B\r
+ mtc1 $22, $f11\r
+ addiu $22, $0, 0x18C\r
+ mtc1 $22, $f12\r
+ addiu $22, $0, 0x18D\r
+ mtc1 $22, $f13\r
+ addiu $22, $0, 0x18E\r
+ mtc1 $22, $f14\r
+ addiu $22, $0, 0x18F\r
+ mtc1 $22, $f15\r
+ addiu $22, $0, 0x190\r
+ mtc1 $22, $f16\r
+ addiu $22, $0, 0x191\r
+ mtc1 $22, $f17\r
+ addiu $22, $0, 0x192\r
+ mtc1 $22, $f18\r
+ addiu $22, $0, 0x193\r
+ mtc1 $22, $f19\r
+ addiu $22, $0, 0x194\r
+ mtc1 $22, $f20\r
+ addiu $22, $0, 0x195\r
+ mtc1 $22, $f21\r
+ addiu $22, $0, 0x196\r
+ mtc1 $22, $f22\r
+ addiu $22, $0, 0x197\r
+ mtc1 $22, $f23\r
+ addiu $22, $0, 0x198\r
+ mtc1 $22, $f24\r
+ addiu $22, $0, 0x199\r
+ mtc1 $22, $f25\r
+ addiu $22, $0, 0x19A\r
+ mtc1 $22, $f26\r
+ addiu $22, $0, 0x19B\r
+ mtc1 $22, $f27\r
+ addiu $22, $0, 0x19C\r
+ mtc1 $22, $f28\r
+ addiu $22, $0, 0x19D\r
+ mtc1 $22, $f29\r
+ addiu $22, $0, 0x19E\r
+ mtc1 $22, $f30\r
+ addiu $22, $0, 0x19F\r
+ mtc1 $22, $f31\r
+ #endif\r
\r
- addiu $22, $0, 0x00\r
- addiu $22, $5, -0x15\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $6, -0x16\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $7, -0x17\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $8, -0x18\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $9, -0x19\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $10, -0x110\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $11, -0x111\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $12, -0x112\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $13, -0x113\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $14, -0x114\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $15, -0x115\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $16, -0x116\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $17, -0x117\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $18, -0x118\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $19, -0x119\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $20, -0x120\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $21, -0x121\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $23, -0x123\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $24, -0x124\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $25, -0x125\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
+vRegTest1Loop:\r
+ portREG_TEST $22, $1, 0x11\r
+ portREG_TEST $22, $2, 0x12\r
+ portREG_TEST $22, $3, 0x13\r
+ /* Do not test r4 as we are using it as a loop counter */\r
+ portREG_TEST $22, $5, 0x15\r
+ portREG_TEST $22, $6, 0x16\r
+ portREG_TEST $22, $7, 0x17\r
+ portREG_TEST $22, $8, 0x18\r
+ portREG_TEST $22, $9, 0x19\r
+ portREG_TEST $22, $10, 0x110\r
+ portREG_TEST $22, $11, 0x111\r
+ portREG_TEST $22, $12, 0x112\r
+ portREG_TEST $22, $13, 0x113\r
+ portREG_TEST $22, $14, 0x114\r
+ portREG_TEST $22, $15, 0x115\r
+ portREG_TEST $22, $16, 0x116\r
+ portREG_TEST $22, $17, 0x117\r
+ portREG_TEST $22, $18, 0x118\r
+ portREG_TEST $22, $19, 0x119\r
+ portREG_TEST $22, $20, 0x120\r
+ portREG_TEST $22, $21, 0x121\r
+ /* Do not test r22, used as a helper */\r
+ portREG_TEST $22, $23, 0x123\r
+ portREG_TEST $22, $24, 0x124\r
+ portREG_TEST $22, $25, 0x125\r
+ portREG_TEST $22, $30, 0x130\r
\r
- addiu $22, $0, 0x00\r
- addiu $22, $30, -0x130\r
+ mfhi $22, $ac1\r
+ addiu $22, $22, -0x131\r
beq $22, $0, .+16\r
nop\r
b error_loop\r
nop\r
\r
- mfhi $22, $ac1\r
- addiu $22, $22, -0x131\r
+ mflo $22, $ac1\r
+ addiu $22, $22, -0x132\r
beq $22, $0, .+16\r
nop\r
b error_loop\r
nop\r
\r
- mflo $22, $ac1\r
- addiu $22, $22, -0x132\r
+ mfhi $22, $ac2\r
+ addiu $22, $22, -0x133\r
beq $22, $0, .+16\r
nop\r
b error_loop\r
nop\r
\r
- mfhi $22, $ac2\r
- addiu $22, $22, -0x133\r
+ mflo $22, $ac2\r
+ addiu $22, $22, -0x134\r
beq $22, $0, .+16\r
nop\r
b error_loop\r
nop\r
\r
- mflo $22, $ac2\r
- addiu $22, $22, -0x134\r
+ mfhi $22, $ac3\r
+ addiu $22, $22, -0x135\r
beq $22, $0, .+16\r
nop\r
b error_loop\r
nop\r
\r
- mfhi $22, $ac3\r
- addiu $22, $22, -0x135\r
+ mflo $22, $ac3\r
+ addiu $22, $22, -0x136\r
beq $22, $0, .+16\r
nop\r
b error_loop\r
nop\r
\r
- mflo $22, $ac3\r
- addiu $22, $22, -0x136\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
+ /* Test the FPU registers if they are present on the part. */\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ portFPU_REG_TEST $22, $f0, 0x180\r
+ portFPU_REG_TEST $22, $f1, 0x181\r
+ portFPU_REG_TEST $22, $f2, 0x182\r
+ portFPU_REG_TEST $22, $f3, 0x183\r
+ portFPU_REG_TEST $22, $f4, 0x184\r
+ portFPU_REG_TEST $22, $f5, 0x185\r
+ portFPU_REG_TEST $22, $f6, 0x186\r
+ portFPU_REG_TEST $22, $f7, 0x187\r
+ portFPU_REG_TEST $22, $f8, 0x188\r
+ portFPU_REG_TEST $22, $f9, 0x189\r
+ portFPU_REG_TEST $22, $f10, 0x18A\r
+ portFPU_REG_TEST $22, $f11, 0x18B\r
+ portFPU_REG_TEST $22, $f12, 0x18C\r
+ portFPU_REG_TEST $22, $f13, 0x18D\r
+ portFPU_REG_TEST $22, $f14, 0x18E\r
+ portFPU_REG_TEST $22, $f15, 0x18F\r
+ portFPU_REG_TEST $22, $f16, 0x190\r
+ portFPU_REG_TEST $22, $f17, 0x191\r
+ portFPU_REG_TEST $22, $f18, 0x192\r
+ portFPU_REG_TEST $22, $f19, 0x193\r
+ portFPU_REG_TEST $22, $f20, 0x194\r
+ portFPU_REG_TEST $22, $f21, 0x195\r
+ portFPU_REG_TEST $22, $f22, 0x196\r
+ portFPU_REG_TEST $22, $f23, 0x197\r
+ portFPU_REG_TEST $22, $f24, 0x198\r
+ portFPU_REG_TEST $22, $f25, 0x199\r
+ portFPU_REG_TEST $22, $f26, 0x19A\r
+ portFPU_REG_TEST $22, $f27, 0x19B\r
+ portFPU_REG_TEST $22, $f28, 0x19C\r
+ portFPU_REG_TEST $22, $f29, 0x19D\r
+ portFPU_REG_TEST $22, $f30, 0x19E\r
+ portFPU_REG_TEST $22, $f31, 0x19F\r
+ #endif\r
\r
/* No errors detected. Increment the loop count so the check timer knows\r
this task is still running without error, then loop back to do it all\r
again. The address of the loop counter is in $4. */\r
lw $22, 0( $4 )\r
- addiu $22, $22, 0x01\r
+ addiu $22, $22, 0x01\r
sw $22, 0( $4 )\r
b vRegTest1Loop\r
nop\r
\r
.end vRegTest1\r
\r
-\r
+/************************************************************************/\r
.set noreorder\r
.set noat\r
.ent vRegTest2\r
addiu $22, $0, 0x236\r
mtlo $22, $ac3\r
\r
-vRegTest2Loop:\r
- addiu $22, $0, 0x00\r
- addiu $22, $1, -0x21\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $2, -0x22\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $3, -0x23\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $5, -0x25\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $6, -0x26\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $7, -0x27\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $8, -0x28\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $9, -0x29\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $10, -0x210\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $11, -0x211\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $12, -0x212\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
+ /* Test the FPU registers if they are present on the part. */\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ addiu $22, $0, 0x280\r
+ mtc1 $22, $f0\r
+ addiu $22, $0, 0x281\r
+ mtc1 $22, $f1\r
+ addiu $22, $0, 0x282\r
+ mtc1 $22, $f2\r
+ addiu $22, $0, 0x283\r
+ mtc1 $22, $f3\r
+ addiu $22, $0, 0x284\r
+ mtc1 $22, $f4\r
+ addiu $22, $0, 0x285\r
+ mtc1 $22, $f5\r
+ addiu $22, $0, 0x286\r
+ mtc1 $22, $f6\r
+ addiu $22, $0, 0x287\r
+ mtc1 $22, $f7\r
+ addiu $22, $0, 0x288\r
+ mtc1 $22, $f8\r
+ addiu $22, $0, 0x289\r
+ mtc1 $22, $f9\r
+ addiu $22, $0, 0x28A\r
+ mtc1 $22, $f10\r
+ addiu $22, $0, 0x28B\r
+ mtc1 $22, $f11\r
+ addiu $22, $0, 0x28C\r
+ mtc1 $22, $f12\r
+ addiu $22, $0, 0x28D\r
+ mtc1 $22, $f13\r
+ addiu $22, $0, 0x28E\r
+ mtc1 $22, $f14\r
+ addiu $22, $0, 0x28F\r
+ mtc1 $22, $f15\r
+ addiu $22, $0, 0x290\r
+ mtc1 $22, $f16\r
+ addiu $22, $0, 0x291\r
+ mtc1 $22, $f17\r
+ addiu $22, $0, 0x292\r
+ mtc1 $22, $f18\r
+ addiu $22, $0, 0x293\r
+ mtc1 $22, $f19\r
+ addiu $22, $0, 0x294\r
+ mtc1 $22, $f20\r
+ addiu $22, $0, 0x295\r
+ mtc1 $22, $f21\r
+ addiu $22, $0, 0x296\r
+ mtc1 $22, $f22\r
+ addiu $22, $0, 0x297\r
+ mtc1 $22, $f23\r
+ addiu $22, $0, 0x298\r
+ mtc1 $22, $f24\r
+ addiu $22, $0, 0x299\r
+ mtc1 $22, $f25\r
+ addiu $22, $0, 0x29A\r
+ mtc1 $22, $f26\r
+ addiu $22, $0, 0x29B\r
+ mtc1 $22, $f27\r
+ addiu $22, $0, 0x29C\r
+ mtc1 $22, $f28\r
+ addiu $22, $0, 0x29D\r
+ mtc1 $22, $f29\r
+ addiu $22, $0, 0x29E\r
+ mtc1 $22, $f30\r
+ addiu $22, $0, 0x29F\r
+ mtc1 $22, $f31\r
+ #endif\r
\r
- addiu $22, $0, 0x00\r
- addiu $22, $13, -0x213\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $14, -0x214\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $15, -0x215\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $16, -0x216\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $17, -0x217\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $18, -0x218\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $19, -0x219\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $20, -0x220\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $21, -0x221\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $23, -0x223\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $24, -0x224\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $25, -0x225\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
-\r
- addiu $22, $0, 0x00\r
- addiu $22, $30, -0x230\r
- beq $22, $0, .+16\r
- nop\r
- b error_loop\r
- nop\r
+vRegTest2Loop:\r
+ portREG_TEST $22, $1, 0x21\r
+ portREG_TEST $22, $2, 0x22\r
+ portREG_TEST $22, $3, 0x23\r
+ /* Do not test r4 as we are using it as a loop counter */\r
+ portREG_TEST $22, $5, 0x25\r
+ portREG_TEST $22, $6, 0x26\r
+ portREG_TEST $22, $7, 0x27\r
+ portREG_TEST $22, $8, 0x28\r
+ portREG_TEST $22, $9, 0x29\r
+ portREG_TEST $22, $10, 0x210\r
+ portREG_TEST $22, $11, 0x211\r
+ portREG_TEST $22, $12, 0x212\r
+ portREG_TEST $22, $13, 0x213\r
+ portREG_TEST $22, $14, 0x214\r
+ portREG_TEST $22, $15, 0x215\r
+ portREG_TEST $22, $16, 0x216\r
+ portREG_TEST $22, $17, 0x217\r
+ portREG_TEST $22, $18, 0x218\r
+ portREG_TEST $22, $19, 0x219\r
+ portREG_TEST $22, $20, 0x220\r
+ portREG_TEST $22, $21, 0x221\r
+ /* Do not test r22, used as a helper */\r
+ portREG_TEST $22, $23, 0x223\r
+ portREG_TEST $22, $24, 0x224\r
+ portREG_TEST $22, $25, 0x225\r
+ portREG_TEST $22, $30, 0x230\r
\r
mfhi $22, $ac1\r
addiu $22, $22, -0x231\r
b error_loop\r
nop\r
\r
+ /* Test the FPU registers if they are present on the part. */\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ portFPU_REG_TEST $22, $f0, 0x280\r
+ portFPU_REG_TEST $22, $f1, 0x281\r
+ portFPU_REG_TEST $22, $f2, 0x282\r
+ portFPU_REG_TEST $22, $f3, 0x283\r
+ portFPU_REG_TEST $22, $f4, 0x284\r
+ portFPU_REG_TEST $22, $f5, 0x285\r
+ portFPU_REG_TEST $22, $f6, 0x286\r
+ portFPU_REG_TEST $22, $f7, 0x287\r
+ portFPU_REG_TEST $22, $f8, 0x288\r
+ portFPU_REG_TEST $22, $f9, 0x289\r
+ portFPU_REG_TEST $22, $f10, 0x28A\r
+ portFPU_REG_TEST $22, $f11, 0x28B\r
+ portFPU_REG_TEST $22, $f12, 0x28C\r
+ portFPU_REG_TEST $22, $f13, 0x28D\r
+ portFPU_REG_TEST $22, $f14, 0x28E\r
+ portFPU_REG_TEST $22, $f15, 0x28F\r
+ portFPU_REG_TEST $22, $f16, 0x290\r
+ portFPU_REG_TEST $22, $f17, 0x291\r
+ portFPU_REG_TEST $22, $f18, 0x292\r
+ portFPU_REG_TEST $22, $f19, 0x293\r
+ portFPU_REG_TEST $22, $f20, 0x294\r
+ portFPU_REG_TEST $22, $f21, 0x295\r
+ portFPU_REG_TEST $22, $f22, 0x296\r
+ portFPU_REG_TEST $22, $f23, 0x297\r
+ portFPU_REG_TEST $22, $f24, 0x298\r
+ portFPU_REG_TEST $22, $f25, 0x299\r
+ portFPU_REG_TEST $22, $f26, 0x29A\r
+ portFPU_REG_TEST $22, $f27, 0x29B\r
+ portFPU_REG_TEST $22, $f28, 0x29C\r
+ portFPU_REG_TEST $22, $f29, 0x29D\r
+ portFPU_REG_TEST $22, $f30, 0x29E\r
+ portFPU_REG_TEST $22, $f31, 0x29F\r
+ #endif\r
+\r
/* No errors detected. Increment the loop count so the check timer knows\r
this task is still running without error, then loop back to do it all\r
again. The address of the loop counter is in $4. */\r
--- /dev/null
+/*\r
+ FreeRTOS V8.2.2 - Copyright (C) 2015 Real Time Engineers Ltd.\r
+ All rights reserved\r
+\r
+ VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+ This file is part of the FreeRTOS distribution.\r
+\r
+ FreeRTOS is free software; you can redistribute it and/or modify it under\r
+ the terms of the GNU General Public License (version 2) as published by the\r
+ Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+ ***************************************************************************\r
+ >>! NOTE: The modification to the GPL is included to allow you to !<<\r
+ >>! distribute a combined work that includes FreeRTOS without being !<<\r
+ >>! obliged to provide the source code for proprietary components !<<\r
+ >>! outside of the FreeRTOS kernel. !<<\r
+ ***************************************************************************\r
+\r
+ FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+ FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
+ link: http://www.freertos.org/a00114.html\r
+\r
+ ***************************************************************************\r
+ * *\r
+ * FreeRTOS provides completely free yet professionally developed, *\r
+ * robust, strictly quality controlled, supported, and cross *\r
+ * platform software that is more than just the market leader, it *\r
+ * is the industry's de facto standard. *\r
+ * *\r
+ * Help yourself get started quickly while simultaneously helping *\r
+ * to support the FreeRTOS project by purchasing a FreeRTOS *\r
+ * tutorial book, reference manual, or both: *\r
+ * http://www.FreeRTOS.org/Documentation *\r
+ * *\r
+ ***************************************************************************\r
+\r
+ http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
+ the FAQ page "My application does not run, what could be wrong?". Have you\r
+ defined configASSERT()?\r
+\r
+ http://www.FreeRTOS.org/support - In return for receiving this top quality\r
+ embedded software for free we request you assist our global community by\r
+ participating in the support forum.\r
+\r
+ http://www.FreeRTOS.org/training - Investing in training allows your team to\r
+ be as productive as possible as early as possible. Now you can receive\r
+ FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
+ Ltd, and the world's leading authority on the world's leading RTOS.\r
+\r
+ http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+ including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+ compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+ http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
+ Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
+\r
+ http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
+ Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
+ licenses offer ticketed support, indemnification and commercial middleware.\r
+\r
+ http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+ engineered and independently SIL3 certified version for use in safety and\r
+ mission critical applications that require provable dependability.\r
+\r
+ 1 tab == 4 spaces!\r
+*/\r
+\r
+/*\r
+ * Creates eight tasks, each of which loops continuously performing a\r
+ * floating point calculation.\r
+ *\r
+ * All the tasks run at the idle priority and never block or yield. This causes\r
+ * all eight tasks to time slice with the idle task. Running at the idle priority\r
+ * means that these tasks will get pre-empted any time another task is ready to run\r
+ * or a time slice occurs. More often than not the pre-emption will occur mid\r
+ * calculation, creating a good test of the schedulers context switch mechanism - a\r
+ * calculation producing an unexpected result could be a symptom of a corruption in\r
+ * the context of a task.\r
+ */\r
+\r
+#include <stdlib.h>\r
+#include <math.h>\r
+\r
+/* Scheduler include files. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Demo program include files. */\r
+#include "flop_mz.h"\r
+\r
+#define mathSTACK_SIZE (configMINIMAL_STACK_SIZE + 100)\r
+#define mathNUMBER_OF_TASKS ( 8 )\r
+\r
+/* Four tasks, each of which performs a different floating point calculation.\r
+Each of the four is created twice. */\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );\r
+\r
+/* These variables are used to check that all the tasks are still running. If a\r
+task gets a calculation wrong it will\r
+stop incrementing its check variable. */\r
+static volatile unsigned long ulTaskCheck[ mathNUMBER_OF_TASKS ] = { 0 };\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vStartMathTasks( unsigned portBASE_TYPE uxPriority )\r
+{\r
+ xTaskCreate( vCompetingMathTask1, "Math1", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 0 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask2, "Math2", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 1 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask3, "Math3", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 2 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask4, "Math4", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 3 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask1, "Math5", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 4 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask2, "Math6", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 5 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask3, "Math7", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 6 ] ), uxPriority, NULL );\r
+ xTaskCreate( vCompetingMathTask4, "Math8", mathSTACK_SIZE, ( void * ) &( ulTaskCheck[ 7 ] ), uxPriority, NULL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )\r
+{\r
+volatile portDOUBLE d1, d2, d3, d4;\r
+volatile unsigned long *pulTaskCheckVariable;\r
+volatile portDOUBLE dAnswer;\r
+short sError = pdFALSE;\r
+\r
+\r
+ /* Must be called before any hardware floating point operations are\r
+ performed to let the RTOS portable layer know that this task requires\r
+ a floating point context. */\r
+ portTASK_USES_FLOATING_POINT();\r
+\r
+ d1 = 123.4567;\r
+ d2 = 2345.6789;\r
+ d3 = -918.222;\r
+\r
+ dAnswer = ( d1 + d2 ) * d3;\r
+\r
+ /* The variable this task increments to show it is still running is passed in\r
+ as the parameter. */\r
+ pulTaskCheckVariable = ( unsigned long * ) pvParameters;\r
+ \r
+ /* Keep performing a calculation and checking the result against a constant. */\r
+ for(;;)\r
+ {\r
+ d1 = 123.4567;\r
+ d2 = 2345.6789;\r
+ d3 = -918.222;\r
+\r
+ d4 = ( d1 + d2 ) * d3;\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ /* If the calculation does not match the expected constant, stop the\r
+ increment of the check variable. */\r
+ if( fabs( d4 - dAnswer ) > 0.001 )\r
+ {\r
+ sError = pdTRUE;\r
+ }\r
+\r
+ if( sError == pdFALSE )\r
+ {\r
+ /* If the calculation has always been correct, increment the check\r
+ variable so we know this task is still running okay. */\r
+ ( *pulTaskCheckVariable )++;\r
+ }\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )\r
+{\r
+volatile portDOUBLE d1, d2, d3, d4;\r
+volatile unsigned long *pulTaskCheckVariable;\r
+volatile portDOUBLE dAnswer;\r
+short sError = pdFALSE;\r
+\r
+ /* Must be called before any hardware floating point operations are\r
+ performed to let the RTOS portable layer know that this task requires\r
+ a floating point context. */\r
+ portTASK_USES_FLOATING_POINT();\r
+\r
+ d1 = -389.38;\r
+ d2 = 32498.2;\r
+ d3 = -2.0001;\r
+\r
+ dAnswer = ( d1 / d2 ) * d3;\r
+\r
+\r
+ /* The variable this task increments to show it is still running is passed in\r
+ as the parameter. */\r
+ pulTaskCheckVariable = ( unsigned long * ) pvParameters;\r
+\r
+ /* Keep performing a calculation and checking the result against a constant. */\r
+ for( ;; )\r
+ {\r
+ d1 = -389.38;\r
+ d2 = 32498.2;\r
+ d3 = -2.0001;\r
+\r
+ d4 = ( d1 / d2 ) * d3;\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ /* If the calculation does not match the expected constant, stop the\r
+ increment of the check variable. */\r
+ if( fabs( d4 - dAnswer ) > 0.001 )\r
+ {\r
+ sError = pdTRUE;\r
+ }\r
+\r
+ if( sError == pdFALSE )\r
+ {\r
+ /* If the calculation has always been correct, increment the check\r
+ variable so we know\r
+ this task is still running okay. */\r
+ ( *pulTaskCheckVariable )++;\r
+ }\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )\r
+{\r
+volatile portDOUBLE *pdArray, dTotal1, dTotal2, dDifference;\r
+volatile unsigned long *pulTaskCheckVariable;\r
+const size_t xArraySize = 10;\r
+size_t xPosition;\r
+short sError = pdFALSE;\r
+\r
+ /* Must be called before any hardware floating point operations are\r
+ performed to let the RTOS portable layer know that this task requires\r
+ a floating point context. */\r
+ portTASK_USES_FLOATING_POINT();\r
+\r
+ /* The variable this task increments to show it is still running is passed in\r
+ as the parameter. */\r
+ pulTaskCheckVariable = ( unsigned long * ) pvParameters;\r
+\r
+ pdArray = ( portDOUBLE * ) pvPortMalloc( xArraySize * sizeof( portDOUBLE ) );\r
+\r
+ /* Keep filling an array, keeping a running total of the values placed in the\r
+ array. Then run through the array adding up all the values. If the two totals\r
+ do not match, stop the check variable from incrementing. */\r
+ for( ;; )\r
+ {\r
+ dTotal1 = 0.0;\r
+ dTotal2 = 0.0;\r
+\r
+ for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+ {\r
+ pdArray[ xPosition ] = ( portDOUBLE ) xPosition + 5.5;\r
+ dTotal1 += ( portDOUBLE ) xPosition + 5.5;\r
+ }\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+ {\r
+ dTotal2 += pdArray[ xPosition ];\r
+ }\r
+\r
+ dDifference = dTotal1 - dTotal2;\r
+ if( fabs( dDifference ) > 0.001 )\r
+ {\r
+ sError = pdTRUE;\r
+ }\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ if( sError == pdFALSE )\r
+ {\r
+ /* If the calculation has always been correct, increment the check\r
+ variable so we know this task is still running okay. */\r
+ ( *pulTaskCheckVariable )++;\r
+ }\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )\r
+{\r
+volatile portDOUBLE *pdArray, dTotal1, dTotal2, dDifference;\r
+volatile unsigned long *pulTaskCheckVariable;\r
+const size_t xArraySize = 10;\r
+size_t xPosition;\r
+short sError = pdFALSE;\r
+\r
+ /* Must be called before any hardware floating point operations are\r
+ performed to let the RTOS portable layer know that this task requires\r
+ a floating point context. */\r
+ portTASK_USES_FLOATING_POINT();\r
+\r
+ /* The variable this task increments to show it is still running is passed in\r
+ as the parameter. */\r
+ pulTaskCheckVariable = ( unsigned long * ) pvParameters;\r
+\r
+ pdArray = ( portDOUBLE * ) pvPortMalloc( xArraySize * sizeof( portDOUBLE ) );\r
+\r
+ /* Keep filling an array, keeping a running total of the values placed in the\r
+ array. Then run through the array adding up all the values. If the two totals\r
+ do not match, stop the check variable from incrementing. */\r
+ for( ;; )\r
+ {\r
+ dTotal1 = 0.0;\r
+ dTotal2 = 0.0;\r
+\r
+ for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+ {\r
+ pdArray[ xPosition ] = ( portDOUBLE ) xPosition * 12.123;\r
+ dTotal1 += ( portDOUBLE ) xPosition * 12.123;\r
+ }\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+ {\r
+ dTotal2 += pdArray[ xPosition ];\r
+ }\r
+\r
+ dDifference = dTotal1 - dTotal2;\r
+ if( fabs( dDifference ) > 0.001 )\r
+ {\r
+ sError = pdTRUE;\r
+ }\r
+\r
+ #if configUSE_PREEMPTION == 0\r
+ taskYIELD();\r
+ #endif\r
+\r
+ if( sError == pdFALSE )\r
+ {\r
+ /* If the calculation has always been correct, increment the check\r
+ variable so we know this task is still running okay. */\r
+ ( *pulTaskCheckVariable )++;\r
+ }\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This is called to check that all the created tasks are still running. */\r
+portBASE_TYPE xAreMathsTaskStillRunning( void )\r
+{\r
+/* Keep a history of the check variables so we know if they have been incremented\r
+since the last call. */\r
+static unsigned long ulLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
+portBASE_TYPE xReturn = pdTRUE, xTask;\r
+\r
+ /* Check the maths tasks are still running by ensuring their check variables\r
+ are still incrementing. */\r
+ for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )\r
+ {\r
+ if( ulTaskCheck[ xTask ] == ulLastTaskCheck[ xTask ] )\r
+ {\r
+ /* The check has not incremented so an error exists. */\r
+ xReturn = pdFALSE;\r
+ }\r
+\r
+ ulLastTaskCheck[ xTask ] = ulTaskCheck[ xTask ];\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+\r
+\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS V8.2.2 - Copyright (C) 2015 Real Time Engineers Ltd.\r
+ All rights reserved\r
+\r
+ VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+ This file is part of the FreeRTOS distribution.\r
+\r
+ FreeRTOS is free software; you can redistribute it and/or modify it under\r
+ the terms of the GNU General Public License (version 2) as published by the\r
+ Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+ ***************************************************************************\r
+ >>! NOTE: The modification to the GPL is included to allow you to !<<\r
+ >>! distribute a combined work that includes FreeRTOS without being !<<\r
+ >>! obliged to provide the source code for proprietary components !<<\r
+ >>! outside of the FreeRTOS kernel. !<<\r
+ ***************************************************************************\r
+\r
+ FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+ FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
+ link: http://www.freertos.org/a00114.html\r
+\r
+ ***************************************************************************\r
+ * *\r
+ * FreeRTOS provides completely free yet professionally developed, *\r
+ * robust, strictly quality controlled, supported, and cross *\r
+ * platform software that is more than just the market leader, it *\r
+ * is the industry's de facto standard. *\r
+ * *\r
+ * Help yourself get started quickly while simultaneously helping *\r
+ * to support the FreeRTOS project by purchasing a FreeRTOS *\r
+ * tutorial book, reference manual, or both: *\r
+ * http://www.FreeRTOS.org/Documentation *\r
+ * *\r
+ ***************************************************************************\r
+\r
+ http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
+ the FAQ page "My application does not run, what could be wrong?". Have you\r
+ defined configASSERT()?\r
+\r
+ http://www.FreeRTOS.org/support - In return for receiving this top quality\r
+ embedded software for free we request you assist our global community by\r
+ participating in the support forum.\r
+\r
+ http://www.FreeRTOS.org/training - Investing in training allows your team to\r
+ be as productive as possible as early as possible. Now you can receive\r
+ FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
+ Ltd, and the world's leading authority on the world's leading RTOS.\r
+\r
+ http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+ including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+ compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+ http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
+ Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
+\r
+ http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
+ Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
+ licenses offer ticketed support, indemnification and commercial middleware.\r
+\r
+ http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+ engineered and independently SIL3 certified version for use in safety and\r
+ mission critical applications that require provable dependability.\r
+\r
+ 1 tab == 4 spaces!\r
+*/\r
+\r
+#ifndef FLOP_TASKS_H\r
+#define FLOP_TASKS_H\r
+\r
+void vStartMathTasks( unsigned portBASE_TYPE uxPriority );\r
+portBASE_TYPE xAreMathsTaskStillRunning( void );\r
+\r
+#endif\r
+\r
+\r
#include "ConfigPerformance.h"\r
\r
/* Core configuration fuse settings */\r
-#pragma config FMIIEN = OFF, FETHIO = OFF, PGL1WAY = OFF, PMDL1WAY = OFF, IOL1WAY = OFF, FUSBIDIO = OFF\r
-#pragma config FNOSC = SPLL, FSOSCEN = OFF, IESO = OFF, POSCMOD = EC\r
-#pragma config OSCIOFNC = OFF, FCKSM = CSECMD, FWDTEN = OFF, FDMTEN = OFF\r
-#pragma config DMTINTV = WIN_127_128, WDTSPGM = STOP, WINDIS= NORMAL\r
-#pragma config WDTPS = PS1048576, FWDTWINSZ = WINSZ_25, DMTCNT = DMT31\r
-#pragma config FPLLIDIV = DIV_3, FPLLRNG = RANGE_13_26_MHZ, FPLLICLK = PLL_POSC\r
-#pragma config FPLLMULT = MUL_50, FPLLODIV = DIV_2, UPLLFSEL = FREQ_12MHZ, UPLLEN = OFF\r
-#pragma config EJTAGBEN = NORMAL, DBGPER = PG_ALL, FSLEEP = OFF, FECCCON = OFF_UNLOCKED\r
-#pragma config BOOTISA = MIPS32, TRCEN = ON, ICESEL = ICS_PGx2, JTAGEN = OFF, DEBUG = ON\r
-#pragma config CP = OFF\r
-#pragma config_alt FWDTEN=OFF\r
-#pragma config_alt USERID = 0x1234u\r
+#if defined(__32MZ2048ECM144) || defined(__32MZ2048ECH144)\r
+ #pragma config FMIIEN = OFF, FETHIO = OFF, PGL1WAY = OFF, PMDL1WAY = OFF, IOL1WAY = OFF, FUSBIDIO = OFF\r
+ #pragma config FNOSC = SPLL, FSOSCEN = OFF, IESO = OFF, POSCMOD = EC\r
+ #pragma config OSCIOFNC = OFF, FCKSM = CSECMD, FWDTEN = OFF, FDMTEN = OFF\r
+ #pragma config DMTINTV = WIN_127_128, WDTSPGM = STOP, WINDIS= NORMAL\r
+ #pragma config WDTPS = PS1048576, FWDTWINSZ = WINSZ_25, DMTCNT = DMT31\r
+ #pragma config FPLLIDIV = DIV_3, FPLLRNG = RANGE_13_26_MHZ, FPLLICLK = PLL_POSC\r
+ #pragma config FPLLMULT = MUL_50, FPLLODIV = DIV_2, UPLLFSEL = FREQ_12MHZ, UPLLEN = OFF\r
+ #pragma config EJTAGBEN = NORMAL, DBGPER = PG_ALL, FSLEEP = OFF, FECCCON = OFF_UNLOCKED\r
+ #pragma config BOOTISA = MIPS32, TRCEN = ON, ICESEL = ICS_PGx2, JTAGEN = OFF, DEBUG = ON\r
+ #pragma config CP = OFF\r
+ #pragma config_alt FWDTEN=OFF\r
+ #pragma config_alt USERID = 0x1234u\r
+#elif defined(__32MZ2048EFM144) || defined(__32MZ2048EFH144)\r
+ #pragma config FMIIEN = OFF, FETHIO = OFF, PGL1WAY = OFF, PMDL1WAY = OFF, IOL1WAY = OFF, FUSBIDIO = OFF\r
+ #pragma config FNOSC = SPLL, FSOSCEN = OFF, IESO = OFF, POSCMOD = EC\r
+ #pragma config OSCIOFNC = OFF, FCKSM = CSECMD, FWDTEN = OFF, FDMTEN = OFF\r
+ #pragma config DMTINTV = WIN_127_128, WDTSPGM = STOP, WINDIS= NORMAL\r
+ #pragma config WDTPS = PS1048576, FWDTWINSZ = WINSZ_25, DMTCNT = DMT31\r
+ #pragma config FPLLIDIV = DIV_3, FPLLRNG = RANGE_13_26_MHZ, FPLLICLK = PLL_POSC\r
+ #pragma config FPLLMULT = MUL_50, FPLLODIV = DIV_2, UPLLFSEL = FREQ_12MHZ\r
+ #pragma config EJTAGBEN = NORMAL, DBGPER = PG_ALL, FSLEEP = OFF, FECCCON = OFF_UNLOCKED\r
+ #pragma config BOOTISA = MIPS32, TRCEN = ON, ICESEL = ICS_PGx2, JTAGEN = OFF, DEBUG = ON\r
+ #pragma config CP = OFF\r
+#endif\r
\r
/*-----------------------------------------------------------*/\r
\r
EXCEP_CpU, /* coprocessor unusable */\r
EXCEP_Overflow, /* arithmetic overflow */\r
EXCEP_Trap, /* trap (possible divide by zero) */\r
+ EXCEP_FPE = 15, /* floating point exception */\r
EXCEP_IS1 = 16, /* implementation specfic 1 */\r
EXCEP_CEU, /* CorExtend Unuseable */\r
- EXCEP_C2E /* coprocessor 2 */\r
+ EXCEP_C2E, /* coprocessor 2 */\r
+ EXCEP_DSPDis = 26 /* DSP module disabled */\r
} _excep_code;\r
\r
static unsigned long _epc_code;\r
static unsigned long _excep_addr;\r
\r
- asm volatile( "mfc0 %0,$13" : "=r" (_epc_code) );\r
- asm volatile( "mfc0 %0,$14" : "=r" (_excep_addr) );\r
+ asm volatile( "mfc0 %0,$13" : "=r" (_epc_code) );\r
+ asm volatile( "mfc0 %0,$14" : "=r" (_excep_addr) );\r
\r
- _excep_code = ( _epc_code & 0x0000007C ) >> 2;\r
+ _excep_code = ( _epc_code & 0x0000007C ) >> 2;\r
\r
for( ;; )\r
{\r
+ /* prevent compiler warning */\r
+ (void) _excep_code;\r
+\r
/* Examine _excep_code to identify the type of exception. Examine\r
_excep_addr to find the address that caused the exception */\r
LATHSET = 0x0007;\r
Nop();\r
Nop();\r
Nop();\r
- }\r
+ }\r
}\r
+/*-----------------------------------------------------------*/\r
\r
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )\r
+{\r
+ ( void ) pcTaskName;\r
+ ( void ) pxTask;\r
+\r
+ /* Run time stack overflow checking is performed if\r
+ configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook\r
+ function is called if a stack overflow is detected. */\r
+ taskDISABLE_INTERRUPTS();\r
+ for( ;; );\r
+}\r
#include "QueueSet.h"\r
#include "recmutex.h"\r
#include "EventGroupsDemo.h"\r
+#include "flop_mz.h"\r
\r
/*-----------------------------------------------------------*/\r
\r
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
-#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
+#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
#define mainQUEUE_OVERWRITE_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
+#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
\r
/* The LED controlled by the 'check' software timer. */\r
#define mainCHECK_LED ( 2 )\r
vStartQueueSetTasks();\r
vStartRecursiveMutexTasks();\r
vStartEventGroupTasks();\r
+ vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
\r
/* Create the tasks defined within this file. */\r
xTaskCreate( prvRegTestTask1, /* The function that implements the task. */\r
/* Avoid compiler warnings. */\r
( void ) pvParameters;\r
\r
+ /* Must be called before any hardware floating point operations are\r
+ performed to let the RTOS portable layer know that this task requires\r
+ a floating point context. */\r
+ portTASK_USES_FLOATING_POINT();\r
+\r
/* Pass the address of the RegTest1 loop counter into the test function,\r
which is necessarily implemented in assembler. */\r
vRegTest1( &ulRegTest1Cycles );\r
/* Avoid compiler warnings. */\r
( void ) pvParameters;\r
\r
+ /* Must be called before any hardware floating point operations are\r
+ performed to let the RTOS portable layer know that this task requires\r
+ a floating point context. */\r
+ portTASK_USES_FLOATING_POINT();\r
+\r
/* Pass the address of the RegTest2 loop counter into the test function,\r
which is necessarily implemented in assembler. */\r
vRegTest2( &ulRegTest2Cycles );\r
{\r
ulErrorOccurred |= ( 0x01UL << 13UL );\r
}\r
+ else if( xAreMathsTaskStillRunning() != pdTRUE )\r
+ {\r
+ ulErrorOccurred |= ( 0x01UL << 15UL );\r
+ }\r
\r
/* Ensure the expected number of high frequency interrupts have occurred. */\r
if( ulLastHighFrequencyTimerInterrupts != 0 )\r
* DISCLAIMER\r
* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.\r
* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all\r
-* applicable laws, including copyright laws. \r
+* applicable laws, including copyright laws.\r
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED\r
* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY\r
* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,\r
* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR\r
* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
-* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability \r
-* of this software. By using this software, you agree to the additional terms and conditions found by accessing the \r
+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability\r
+* of this software. By using this software, you agree to the additional terms and conditions found by accessing the\r
* following link:\r
* http://www.renesas.com/disclaimer\r
*\r
* UARTCommandConsole.c have been added.\r
*\r
* ***NOTE***: Transmitting generates an interrupt for each character, which\r
- * consumes CPU time, and can cause standard demo RTOS tasks that monitor their\r
+ * consumes CPU time, and can cause standard demo RTOS tasks that monitor their\r
* own performance to fail asserts - therefore when using GCC it is best to\r
* compile this file with maximum speed optimisation.\r
*/\r
gp_sci1_tx_address++;\r
g_sci1_tx_count--;\r
}\r
- else \r
+ else\r
{\r
SCI1.SCR.BIT.TIE = 0U;\r
SCI1.SCR.BIT.TEIE = 1U;\r
void r_sci1_callback_transmitend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
- /* The sci1_txdone flag is used by the auto generated API only. */\r
- sci1_txdone = TRUE;\r
+ /* The sci1_txdone flag is used by the auto generated API only. */\r
+ sci1_txdone = TRUE;\r
\r
- if( xSendingTask != NULL )\r
- {\r
- /* A task is waiting for the end of the Tx, unblock it now.\r
- http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
- vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
- xSendingTask = NULL;\r
+ if( xSendingTask != NULL )\r
+ {\r
+ /* A task is waiting for the end of the Tx, unblock it now.\r
+ http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
+ vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
+ xSendingTask = NULL;\r
\r
- portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
- }\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ }\r
/* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
void r_sci1_callback_receiveend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
configASSERT( xRxQueue );\r
\r
- /* Transmitting generates an interrupt for each character, which consumes\r
- CPU time, and can cause standard demo RTOS tasks that monitor their own\r
- performance to fail asserts - so don't receive new CLI commands if a\r
- transmit is not already in progress. */\r
- if( sci1_txdone == TRUE )\r
- {\r
- /* Characters received from the UART are stored in this queue, ready to be\r
- received by the application. ***NOTE*** Using a queue in this way is very\r
- convenient, but also very inefficient. It can be used here because\r
- characters will only arrive slowly. In a higher bandwidth system a circular\r
- RAM buffer or DMA should be used in place of this queue. */\r
- xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
- }\r
+ /* Transmitting generates an interrupt for each character, which consumes\r
+ CPU time, and can cause standard demo RTOS tasks that monitor their own\r
+ performance to fail asserts - so don't receive new CLI commands if a\r
+ transmit is not already in progress. */\r
+ if( sci1_txdone == TRUE )\r
+ {\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
+ }\r
\r
/* Set up SCI1 receive buffer again */\r
R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
multiple different demo application. */\r
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
{\r
- ( void ) ulWantedBaud;\r
- ( void ) uxQueueLength;\r
-\r
- /* Characters received from the UART are stored in this queue, ready to be\r
- received by the application. ***NOTE*** Using a queue in this way is very\r
- convenient, but also very inefficient. It can be used here because\r
- characters will only arrive slowly. In a higher bandwidth system a circular\r
- RAM buffer or DMA should be used in place of this queue. */\r
- xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
- configASSERT( xRxQueue );\r
-\r
- /* Set up SCI1 receive buffer */\r
- R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
-\r
- /* Ensure the interrupt priority is at or below\r
- configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ ( void ) ulWantedBaud;\r
+ ( void ) uxQueueLength;\r
+\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Set up SCI1 receive buffer */\r
+ R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
+\r
+ /* Ensure the interrupt priority is at or below\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
IPR( SCI1, ERI1 ) = configKERNEL_INTERRUPT_PRIORITY + 1;\r
\r
- /* Enable SCI1 operations */\r
- R_SCI1_Start();\r
+ /* Enable SCI1 operations */\r
+ R_SCI1_Start();\r
\r
- /* Only one UART is supported, so it doesn't matter what is returned\r
- here. */\r
- return 0;\r
+ /* Only one UART is supported, so it doesn't matter what is returned\r
+ here. */\r
+ return 0;\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
{\r
const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 );\r
\r
- /* Only one port is supported. */\r
- ( void ) pxPort;\r
+ /* Only one port is supported. */\r
+ ( void ) pxPort;\r
\r
- /* Clear the flag before initiating a new transmission */\r
- sci1_txdone = FALSE;\r
+ /* Clear the flag before initiating a new transmission */\r
+ sci1_txdone = FALSE;\r
\r
- /* Don't send the string unless the previous string has been sent. */\r
- if( xSendingTask == NULL )\r
- {\r
- /* Ensure the calling task's notification state is not already\r
- pending. */\r
- vTaskNotifyClear( NULL );\r
+ /* Don't send the string unless the previous string has been sent. */\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
+ {\r
+ /* Ensure the calling task's notification state is not already\r
+ pending. */\r
+ vTaskNotifyClear( NULL );\r
\r
- /* Store the handle of the transmitting task. This is used to unblock\r
- the task when the transmission has completed. */\r
- xSendingTask = xTaskGetCurrentTaskHandle();\r
+ /* Store the handle of the transmitting task. This is used to unblock\r
+ the task when the transmission has completed. */\r
+ xSendingTask = xTaskGetCurrentTaskHandle();\r
\r
- /* Send the string using the auto-generated API. */\r
- R_SCI1_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
+ /* Send the string using the auto-generated API. */\r
+ R_SCI1_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
\r
- /* Wait in the Blocked state (so not using any CPU time) until the\r
- transmission has completed. */\r
- ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
- }\r
+ /* Wait in the Blocked state (so not using any CPU time) until the\r
+ transmission has completed. */\r
+ ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
+ }\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
multiple different demo application. */\r
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
{\r
- /* Only one UART is supported. */\r
- ( void ) pxPort;\r
+ /* Only one UART is supported. */\r
+ ( void ) pxPort;\r
\r
- /* Return a received character, if any are available. Otherwise block to\r
- wait for a character. */\r
- return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
+ /* Return a received character, if any are available. Otherwise block to\r
+ wait for a character. */\r
+ return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
multiple different demo application. */\r
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
{\r
- /* Just mapped to vSerialPutString() so the block time is not used. */\r
- ( void ) xBlockTime;\r
+ /* Just mapped to vSerialPutString() so the block time is not used. */\r
+ ( void ) xBlockTime;\r
\r
- vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
- return pdPASS;\r
+ vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
+ return pdPASS;\r
}\r
\r
/* End user code. Do not edit comment generated here */\r
* DISCLAIMER\r
* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.\r
* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all\r
-* applicable laws, including copyright laws. \r
+* applicable laws, including copyright laws.\r
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED\r
* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY\r
* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,\r
* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR\r
* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
-* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability \r
-* of this software. By using this software, you agree to the additional terms and conditions found by accessing the \r
+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability\r
+* of this software. By using this software, you agree to the additional terms and conditions found by accessing the\r
* following link:\r
* http://www.renesas.com/disclaimer\r
*\r
gp_sci1_tx_address++;\r
g_sci1_tx_count--;\r
}\r
- else \r
+ else\r
{\r
SCI1.SCR.BIT.TIE = 0U;\r
SCI1.SCR.BIT.TEIE = 1U;\r
void r_sci1_callback_transmitend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
- /* The sci1_txdone flag is used by the auto generated API only. */\r
- sci1_txdone = TRUE;\r
+ /* The sci1_txdone flag is used by the auto generated API only. */\r
+ sci1_txdone = TRUE;\r
\r
- if( xSendingTask != NULL )\r
- {\r
- /* A task is waiting for the end of the Tx, unblock it now.\r
- http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
- vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
- xSendingTask = NULL;\r
+ if( xSendingTask != NULL )\r
+ {\r
+ /* A task is waiting for the end of the Tx, unblock it now.\r
+ http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
+ vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
+ xSendingTask = NULL;\r
\r
- portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
- }\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ }\r
/* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
void r_sci1_callback_receiveend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
configASSERT( xRxQueue );\r
\r
- /* Transmitting generates an interrupt for each character, which consumes\r
- CPU time, and can cause standard demo RTOS tasks that monitor their own\r
- performance to fail asserts - so don't receive new CLI commands if a\r
- transmit is not already in progress. */\r
- if( sci1_txdone == TRUE )\r
- {\r
- /* Characters received from the UART are stored in this queue, ready to be\r
- received by the application. ***NOTE*** Using a queue in this way is very\r
- convenient, but also very inefficient. It can be used here because\r
- characters will only arrive slowly. In a higher bandwidth system a circular\r
- RAM buffer or DMA should be used in place of this queue. */\r
- xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
- }\r
+ /* Transmitting generates an interrupt for each character, which consumes\r
+ CPU time, and can cause standard demo RTOS tasks that monitor their own\r
+ performance to fail asserts - so don't receive new CLI commands if a\r
+ transmit is not already in progress. */\r
+ if( sci1_txdone == TRUE )\r
+ {\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
+ }\r
\r
/* Set up SCI1 receive buffer again */\r
R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
multiple different demo application. */\r
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
{\r
- ( void ) ulWantedBaud;\r
- ( void ) uxQueueLength;\r
-\r
- /* Characters received from the UART are stored in this queue, ready to be\r
- received by the application. ***NOTE*** Using a queue in this way is very\r
- convenient, but also very inefficient. It can be used here because\r
- characters will only arrive slowly. In a higher bandwidth system a circular\r
- RAM buffer or DMA should be used in place of this queue. */\r
- xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
- configASSERT( xRxQueue );\r
-\r
- /* Set up SCI1 receive buffer */\r
- R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
-\r
- /* Ensure the interrupt priority is at or below\r
- configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ ( void ) ulWantedBaud;\r
+ ( void ) uxQueueLength;\r
+\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Set up SCI1 receive buffer */\r
+ R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
+\r
+ /* Ensure the interrupt priority is at or below\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
IPR( SCI1, ERI1 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
\r
- /* Enable SCI1 operations */\r
- R_SCI1_Start();\r
+ /* Enable SCI1 operations */\r
+ R_SCI1_Start();\r
\r
- /* Only one UART is supported, so it doesn't matter what is returned\r
- here. */\r
- return 0;\r
+ /* Only one UART is supported, so it doesn't matter what is returned\r
+ here. */\r
+ return 0;\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
{\r
const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 );\r
\r
- /* Only one port is supported. */\r
- ( void ) pxPort;\r
+ /* Only one port is supported. */\r
+ ( void ) pxPort;\r
\r
- /* Clear the flag before initiating a new transmission */\r
- sci1_txdone = FALSE;\r
+ /* Clear the flag before initiating a new transmission */\r
+ sci1_txdone = FALSE;\r
\r
- /* Don't send the string unless the previous string has been sent. */\r
- if( xSendingTask == NULL )\r
- {\r
- /* Ensure the calling task's notification state is not already\r
- pending. */\r
- vTaskNotifyClear( NULL );\r
+ /* Don't send the string unless the previous string has been sent. */\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
+ {\r
+ /* Ensure the calling task's notification state is not already\r
+ pending. */\r
+ vTaskNotifyClear( NULL );\r
\r
- /* Store the handle of the transmitting task. This is used to unblock\r
- the task when the transmission has completed. */\r
- xSendingTask = xTaskGetCurrentTaskHandle();\r
+ /* Store the handle of the transmitting task. This is used to unblock\r
+ the task when the transmission has completed. */\r
+ xSendingTask = xTaskGetCurrentTaskHandle();\r
\r
- /* Send the string using the auto-generated API. */\r
- R_SCI1_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
+ /* Send the string using the auto-generated API. */\r
+ R_SCI1_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
\r
- /* Wait in the Blocked state (so not using any CPU time) until the\r
- transmission has completed. */\r
- ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
- }\r
+ /* Wait in the Blocked state (so not using any CPU time) until the\r
+ transmission has completed. */\r
+ ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
+ }\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
multiple different demo application. */\r
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
{\r
- /* Only one UART is supported. */\r
- ( void ) pxPort;\r
+ /* Only one UART is supported. */\r
+ ( void ) pxPort;\r
\r
- /* Return a received character, if any are available. Otherwise block to\r
- wait for a character. */\r
- return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
+ /* Return a received character, if any are available. Otherwise block to\r
+ wait for a character. */\r
+ return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
multiple different demo application. */\r
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
{\r
- /* Just mapped to vSerialPutString() so the block time is not used. */\r
- ( void ) xBlockTime;\r
+ /* Just mapped to vSerialPutString() so the block time is not used. */\r
+ ( void ) xBlockTime;\r
\r
- vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
- return pdPASS;\r
+ vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
+ return pdPASS;\r
}\r
\r
/* End user code. Do not edit comment generated here */\r
* DISCLAIMER\r
* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.\r
* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all\r
-* applicable laws, including copyright laws. \r
+* applicable laws, including copyright laws.\r
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED\r
* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY\r
* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,\r
* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR\r
* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
-* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability \r
-* of this software. By using this software, you agree to the additional terms and conditions found by accessing the \r
+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability\r
+* of this software. By using this software, you agree to the additional terms and conditions found by accessing the\r
* following link:\r
* http://www.renesas.com/disclaimer\r
*\r
gp_sci1_tx_address++;\r
g_sci1_tx_count--;\r
}\r
- else \r
+ else\r
{\r
SCI1.SCR.BIT.TIE = 0U;\r
SCI1.SCR.BIT.TEIE = 1U;\r
void r_sci1_callback_transmitend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
- /* The sci1_txdone flag is used by the auto generated API only. */\r
- sci1_txdone = TRUE;\r
+ /* The sci1_txdone flag is used by the auto generated API only. */\r
+ sci1_txdone = TRUE;\r
\r
- if( xSendingTask != NULL )\r
- {\r
- /* A task is waiting for the end of the Tx, unblock it now.\r
- http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
- vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
- xSendingTask = NULL;\r
+ if( xSendingTask != NULL )\r
+ {\r
+ /* A task is waiting for the end of the Tx, unblock it now.\r
+ http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
+ vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
+ xSendingTask = NULL;\r
\r
- portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
- }\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ }\r
/* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
void r_sci1_callback_receiveend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
configASSERT( xRxQueue );\r
\r
- /* Transmitting generates an interrupt for each character, which consumes\r
- CPU time, and can cause standard demo RTOS tasks that monitor their own\r
- performance to fail asserts - so don't receive new CLI commands if a\r
- transmit is not already in progress. */\r
- if( sci1_txdone == TRUE )\r
- {\r
- /* Characters received from the UART are stored in this queue, ready to be\r
- received by the application. ***NOTE*** Using a queue in this way is very\r
- convenient, but also very inefficient. It can be used here because\r
- characters will only arrive slowly. In a higher bandwidth system a circular\r
- RAM buffer or DMA should be used in place of this queue. */\r
- xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
- }\r
+ /* Transmitting generates an interrupt for each character, which consumes\r
+ CPU time, and can cause standard demo RTOS tasks that monitor their own\r
+ performance to fail asserts - so don't receive new CLI commands if a\r
+ transmit is not already in progress. */\r
+ if( sci1_txdone == TRUE )\r
+ {\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
+ }\r
\r
/* Set up SCI1 receive buffer again */\r
R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
multiple different demo application. */\r
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
{\r
- ( void ) ulWantedBaud;\r
- ( void ) uxQueueLength;\r
-\r
- /* Characters received from the UART are stored in this queue, ready to be\r
- received by the application. ***NOTE*** Using a queue in this way is very\r
- convenient, but also very inefficient. It can be used here because\r
- characters will only arrive slowly. In a higher bandwidth system a circular\r
- RAM buffer or DMA should be used in place of this queue. */\r
- xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
- configASSERT( xRxQueue );\r
-\r
- /* Set up SCI1 receive buffer */\r
- R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
-\r
- /* Ensure the interrupt priority is at or below\r
- configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ ( void ) ulWantedBaud;\r
+ ( void ) uxQueueLength;\r
+\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Set up SCI1 receive buffer */\r
+ R_SCI1_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
+\r
+ /* Ensure the interrupt priority is at or below\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
IPR( SCI1, ERI1 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
\r
- /* Enable SCI1 operations */\r
- R_SCI1_Start();\r
+ /* Enable SCI1 operations */\r
+ R_SCI1_Start();\r
\r
- /* Only one UART is supported, so it doesn't matter what is returned\r
- here. */\r
- return 0;\r
+ /* Only one UART is supported, so it doesn't matter what is returned\r
+ here. */\r
+ return 0;\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
{\r
const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 );\r
\r
- /* Only one port is supported. */\r
- ( void ) pxPort;\r
+ /* Only one port is supported. */\r
+ ( void ) pxPort;\r
\r
- /* Clear the flag before initiating a new transmission */\r
- sci1_txdone = FALSE;\r
+ /* Clear the flag before initiating a new transmission */\r
+ sci1_txdone = FALSE;\r
\r
- /* Don't send the string unless the previous string has been sent. */\r
- if( xSendingTask == NULL )\r
- {\r
- /* Ensure the calling task's notification state is not already\r
- pending. */\r
- vTaskNotifyClear( NULL );\r
+ /* Don't send the string unless the previous string has been sent. */\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
+ {\r
+ /* Ensure the calling task's notification state is not already\r
+ pending. */\r
+ vTaskNotifyClear( NULL );\r
\r
- /* Store the handle of the transmitting task. This is used to unblock\r
- the task when the transmission has completed. */\r
- xSendingTask = xTaskGetCurrentTaskHandle();\r
+ /* Store the handle of the transmitting task. This is used to unblock\r
+ the task when the transmission has completed. */\r
+ xSendingTask = xTaskGetCurrentTaskHandle();\r
\r
- /* Send the string using the auto-generated API. */\r
- R_SCI1_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
+ /* Send the string using the auto-generated API. */\r
+ R_SCI1_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
\r
- /* Wait in the Blocked state (so not using any CPU time) until the\r
- transmission has completed. */\r
- ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
- }\r
+ /* Wait in the Blocked state (so not using any CPU time) until the\r
+ transmission has completed. */\r
+ ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
+ }\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
multiple different demo application. */\r
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
{\r
- /* Only one UART is supported. */\r
- ( void ) pxPort;\r
+ /* Only one UART is supported. */\r
+ ( void ) pxPort;\r
\r
- /* Return a received character, if any are available. Otherwise block to\r
- wait for a character. */\r
- return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
+ /* Return a received character, if any are available. Otherwise block to\r
+ wait for a character. */\r
+ return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
}\r
\r
/* Function required in order to link UARTCommandConsole.c - which is used by\r
multiple different demo application. */\r
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
{\r
- /* Just mapped to vSerialPutString() so the block time is not used. */\r
- ( void ) xBlockTime;\r
+ /* Just mapped to vSerialPutString() so the block time is not used. */\r
+ ( void ) xBlockTime;\r
\r
- vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
- return pdPASS;\r
+ vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
+ return pdPASS;\r
}\r
\r
/* End user code. Do not edit comment generated here */\r
<option id="com.renesas.cdt.core.Compiler.option.deviceShortName.339321196" name="DeviceShortName" superClass="com.renesas.cdt.core.Compiler.option.deviceShortName" value="R5F571MLCxFC" valueType="string"/>\r
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.core.Compiler.option.includeFileDir.1486703917" name="Include file directories" superClass="com.renesas.cdt.core.Compiler.option.includeFileDir" valueType="includePath">\r
<listOptionValue builtIn="false" value=""${TCINSTALL}/rx-elf/optlibinc""/>\r
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo/FreeRTOS-Plus-CLI}""/>\r
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo}""/>\r
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo/Standard_Demo_Tasks/include}""/>\r
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/cg_src}""/>\r
</toolChain>\r
</folderInfo>\r
<sourceEntries>\r
- <entry excluding="cg_src/r_cg_sci_user_iar.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>\r
+ <entry excluding="cg_src/r_cg_intprg_gcc.c|cg_src/r_cg_intprg_iar.c|cg_src/r_cg_sci_user_iar.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>\r
</sourceEntries>\r
</configuration>\r
</storageModule>\r
<type>2</type>\r
<locationURI>FREERTOS_ROOT/FreeRTOS/Source</locationURI>\r
</link>\r
+ <link>\r
+ <name>src/Full_Demo/FreeRTOS-Plus-CLI</name>\r
+ <type>2</type>\r
+ <locationURI>FREERTOS_ROOT/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI</locationURI>\r
+ </link>\r
+ <link>\r
+ <name>src/Full_Demo/Sample-CLI-commands.c</name>\r
+ <type>1</type>\r
+ <locationURI>FREERTOS_ROOT/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos/Sample-CLI-commands.c</locationURI>\r
+ </link>\r
<link>\r
<name>src/Full_Demo/Standard_Demo_Tasks</name>\r
<type>2</type>\r
<locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal</locationURI>\r
</link>\r
+ <link>\r
+ <name>src/Full_Demo/UARTCommandConsole.c</name>\r
+ <type>1</type>\r
+ <locationURI>FREERTOS_ROOT/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos/UARTCommandConsole.c</locationURI>\r
+ </link>\r
<link>\r
<name>src/Full_Demo/Standard_Demo_Tasks/include</name>\r
<type>2</type>\r
</linkedResources>\r
<filteredResources>\r
<filter>\r
- <id>1442924121510</id>\r
+ <id>1444769735116</id>\r
<name></name>\r
<type>10</type>\r
<matcher>\r
<arguments>1.0-name-matches-false-false-RTOSDemo</arguments>\r
</matcher>\r
</filter>\r
+ <filter>\r
+ <id>1444769735116</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.dep</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444769735126</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.ewd</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444769735126</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.ewp</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444769735126</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.ewt</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444769735136</id>\r
+ <name></name>\r
+ <type>6</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-RTOSDemo.eww</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444769735136</id>\r
+ <name></name>\r
+ <type>10</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-Debug</arguments>\r
+ </matcher>\r
+ </filter>\r
+ <filter>\r
+ <id>1444769735146</id>\r
+ <name></name>\r
+ <type>10</type>\r
+ <matcher>\r
+ <id>org.eclipse.ui.ide.multiFilter</id>\r
+ <arguments>1.0-name-matches-false-false-settings</arguments>\r
+ </matcher>\r
+ </filter>\r
<filter>\r
<id>1442756186478</id>\r
<name>src/FreeRTOS_Source</name>\r
<configuration id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.363159113" name="HardwareDebug">\r
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">\r
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>\r
- <provider class="com.renesas.cdt.common.build.spec.RXGCCBuiltinSpecsDetector" console="false" env-hash="-1148160698755661085" id="RXGCCBuiltinSpecsDetector" keep-relative-paths="false" name="Renesas GCCBuildinCompilerSettings" options-hash="1142094570" parameter="rx-elf-gcc -E -P -v -dD ${INPUTS}" prefer-non-shared="true">\r
+ <provider class="com.renesas.cdt.common.build.spec.RXGCCBuiltinSpecsDetector" console="false" env-hash="-117486239217196327" id="RXGCCBuiltinSpecsDetector" keep-relative-paths="false" name="Renesas GCCBuildinCompilerSettings" options-hash="1142094570" parameter="rx-elf-gcc -E -P -v -dD ${INPUTS}" prefer-non-shared="true">\r
<language-scope id="org.eclipse.cdt.core.gcc"/>\r
<language-scope id="org.eclipse.cdt.core.g++"/>\r
</provider>\r
<stringAttribute key="com.renesas.cdt.core.optionInitCommands" value=""/>\r
<intAttribute key="com.renesas.cdt.core.portNumber" value="61234"/>\r
<stringAttribute key="com.renesas.cdt.core.runCommands" value=""/>\r
-<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1 -t R5F571ML -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 27.0000 -uAllowClockSourceInternal= 1 -uUseFine= 0 -uJTagClockFreq= 16.5 -w 0 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -b -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0 -uPTimerClock= 120000000 -uhookWorkRamAddr= 0x1000 -uhookWorkRamSize= 0x230"/>\r
+<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1 -t R5F571ML -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 27.0000 -uAllowClockSourceInternal= 1 -uUseFine= 0 -uJTagClockFreq= 16.5 -w 1 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -b -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0 -uPTimerClock= 120000000 -uhookWorkRamAddr= 0x1000 -uhookWorkRamSize= 0x230"/>\r
<booleanAttribute key="com.renesas.cdt.core.setResume" value="true"/>\r
<booleanAttribute key="com.renesas.cdt.core.setStopAt" value="true"/>\r
<booleanAttribute key="com.renesas.cdt.core.startServer" value="true"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.allow.clock.source.internal" value="true"/>\r
<intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="0"/>\r
<stringAttribute key="com.renesas.hardwaredebug.e1.connection.mode" value="0"/>\r
-<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="false"/>\r
+<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="true"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.enable.hot.plug" value="false"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.enable_external_flash" value="false"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.execute.program" value="false"/>\r
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>\r
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_GCC_e2studio\HardwareDebug\RTOSDemo.x"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_RSK_GCC_e2studio_IAR\HardwareDebug\RTOSDemo.x"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>\r
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_GCC_e2studio\HardwareDebug\RTOSDemo.x"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_RSK_GCC_e2studio_IAR\HardwareDebug\RTOSDemo.x"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>\r
</option>\r
<option>\r
<name>CRunToEnable</name>\r
- <state>0</state>\r
+ <state>1</state>\r
</option>\r
<option>\r
<name>CRunToName</name>\r
<option>\r
<name>GenLibInFormatter</name>\r
<version>1</version>\r
- <state>1</state>\r
+ <state>0</state>\r
</option>\r
<option>\r
<name>GenLibInFormatterDescription</name>\r
- <state>Full formatting.</state>\r
+ <state>Automatic choice of formatter.</state>\r
</option>\r
<option>\r
<name>GenLibOutFormatter</name>\r
<version>1</version>\r
- <state>1</state>\r
+ <state>0</state>\r
</option>\r
<option>\r
<name>GenLibOutFormatterDescription</name>\r
- <state>Full formatting.</state>\r
+ <state>Automatic choice of formatter.</state>\r
</option>\r
<option>\r
<name>GeneralEnableMisra</name>\r
</option>\r
<option>\r
<name>CCDefines</name>\r
- <state></state>\r
+ <state>__RX</state>\r
</option>\r
<option>\r
<name>CCPreprocFile</name>\r
<state>$PROJ_DIR$\..\..\Source\portable\IAR\RXv2</state>\r
<state>$PROJ_DIR$\..\Common\include</state>\r
<state>$PROJ_DIR$\src\Full_Demo</state>\r
+ <state>$PROJ_DIR$\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-CLI</state>\r
</option>\r
<option>\r
<name>CCStdIncCheck</name>\r
</group>\r
<group>\r
<name>Full_Demo</name>\r
+ <group>\r
+ <name>FreeRTOS+CLI</name>\r
+ <file>\r
+ <name>$PROJ_DIR$\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-CLI\FreeRTOS_CLI.c</name>\r
+ </file>\r
+ </group>\r
<group>\r
<name>Standard_Demo_Tasks</name>\r
<file>\r
<file>\r
<name>$PROJ_DIR$\src\Full_Demo\RegTest_IAR.s</name>\r
</file>\r
+ <file>\r
+ <name>$PROJ_DIR$\..\..\..\FreeRTOS-Plus\Demo\Common\FreeRTOS_Plus_CLI_Demos\Sample-CLI-commands.c</name>\r
+ </file>\r
+ <file>\r
+ <name>$PROJ_DIR$\..\..\..\FreeRTOS-Plus\Demo\Common\FreeRTOS_Plus_CLI_Demos\UARTCommandConsole.c</name>\r
+ </file>\r
</group>\r
<file>\r
<name>$PROJ_DIR$\src\FreeRTOSConfig.h</name>\r
<file>\r
<name>$PROJ_DIR$\src\main.c</name>\r
</file>\r
+ <file>\r
+ <name>$PROJ_DIR$\src\cg_src\r_cg_intprg_iar.c</name>\r
+ </file>\r
<file>\r
<name>$PROJ_DIR$\src\rskrx71mdef.h</name>\r
</file>\r
<Desktop>\r
<Static>\r
<Debug-Log>\r
- <ColumnWidth0>20</ColumnWidth0>\r
- <ColumnWidth1>1622</ColumnWidth1>\r
- </Debug-Log>\r
+ \r
+ \r
+ <ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log>\r
<Build>\r
<ColumnWidth0>20</ColumnWidth0>\r
<ColumnWidth1>1216</ColumnWidth1>\r
</Build>\r
<Workspace>\r
<ColumnWidths>\r
- <Column0>255</Column0>\r
- <Column1>27</Column1>\r
- <Column2>27</Column2>\r
- <Column3>27</Column3>\r
- </ColumnWidths>\r
+ \r
+ \r
+ \r
+ \r
+ <Column0>255</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
</Workspace>\r
<Disassembly>\r
<col-names>\r
- <item>Disassembly</item>\r
- <item>_I0</item>\r
- </col-names>\r
+ \r
+ \r
+ <item>Disassembly</item><item>_I0</item></col-names>\r
<col-widths>\r
- <item>500</item>\r
- <item>20</item>\r
- </col-widths>\r
+ \r
+ \r
+ <item>500</item><item>20</item></col-widths>\r
<DisasmHistory/>\r
<PreferedWindows>\r
- <Position>2</Position>\r
- <ScreenPosX>0</ScreenPosX>\r
- <ScreenPosY>0</ScreenPosY>\r
- <Windows/>\r
- </PreferedWindows>\r
- <ShowCodeCoverage>1</ShowCodeCoverage>\r
- <ShowInstrProfiling>1</ShowInstrProfiling>\r
- </Disassembly>\r
+ \r
+ \r
+ \r
+ \r
+ <Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows>\r
+ \r
+ \r
+ <ShowCodeCoverage>1</ShowCodeCoverage><ShowInstrProfiling>1</ShowInstrProfiling></Disassembly>\r
<Register>\r
<PreferedWindows>\r
<Position>2</Position>\r
<Windows/>\r
</PreferedWindows>\r
</Register>\r
- </Static>\r
+ <Find-in-Files><ColumnWidth0>497</ColumnWidth0><ColumnWidth1>82</ColumnWidth1><ColumnWidth2>746</ColumnWidth2><ColumnWidth3>331</ColumnWidth3></Find-in-Files><CallStack><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>Frame</item><item>_I0</item></col-names><col-widths><item>3500</item><item>20</item></col-widths></CallStack><WATCH_1><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><expressions><item/></expressions><col-names><item>Expression</item><item>Location</item><item>Type</item><item>Value</item></col-names><col-widths><item>100</item><item>150</item><item>100</item><item>100</item></col-widths></WATCH_1></Static>\r
<Windows>\r
- <Wnd1>\r
+ \r
+ \r
+ <Wnd3>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-6594-3339</Identity>\r
<Factory>Build</Factory>\r
<Session/>\r
</Tab>\r
- </Tabs>\r
- <SelectedTab>0</SelectedTab>\r
- </Wnd1>\r
- <Wnd4>\r
+ <Tab><Identity>TabID-19467-29965</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>\r
+ \r
+ <SelectedTab>0</SelectedTab></Wnd3><Wnd4>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-17343-3342</Identity>\r
<TabName>Workspace</TabName>\r
<Factory>Workspace</Factory>\r
<Session>\r
- <NodeDict>\r
- <ExpandedNode>RTOSDemo</ExpandedNode>\r
- </NodeDict>\r
- </Session>\r
+ \r
+ <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS_Source</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo</ExpandedNode><ExpandedNode>RTOSDemo/cg_src</ExpandedNode></NodeDict></Session>\r
</Tab>\r
</Tabs>\r
- <SelectedTab>0</SelectedTab>\r
- </Wnd4>\r
- </Windows>\r
+ \r
+ <SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-15169-30612</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>\r
<Editor>\r
- <Pane>\r
- <Tab>\r
- <Factory>TextEditor</Factory>\r
- <Filename>$WS_DIR$\src\main.c</Filename>\r
- <XPos>0</XPos>\r
- <YPos>0</YPos>\r
- <SelStart>0</SelStart>\r
- <SelEnd>0</SelEnd>\r
- <XPos2>0</XPos2>\r
- <YPos2>66</YPos2>\r
- <SelStart2>5312</SelStart2>\r
- <SelEnd2>5312</SelEnd2>\r
- </Tab>\r
- <Tab>\r
- <Factory>TextEditor</Factory>\r
- <Filename>$WS_DIR$\src\Full_Demo\RegTest_IAR.s</Filename>\r
- <XPos>0</XPos>\r
- <YPos>0</YPos>\r
- <SelStart>0</SelStart>\r
- <SelEnd>0</SelEnd>\r
- <XPos2>0</XPos2>\r
- <YPos2>144</YPos2>\r
- <SelStart2>5881</SelStart2>\r
- <SelEnd2>5881</SelEnd2>\r
- </Tab>\r
- <Tab>\r
- <Factory>TextEditor</Factory>\r
- <Filename>$WS_DIR$\..\Common\Minimal\flop.c</Filename>\r
- <XPos>0</XPos>\r
- <YPos>0</YPos>\r
- <SelStart>0</SelStart>\r
- <SelEnd>0</SelEnd>\r
- <XPos2>0</XPos2>\r
- <YPos2>126</YPos2>\r
- <SelStart2>6956</SelStart2>\r
- <SelEnd2>6956</SelEnd2>\r
- </Tab>\r
- <Tab>\r
- <Factory>TextEditor</Factory>\r
- <Filename>$WS_DIR$\..\Common\Minimal\TimerDemo.c</Filename>\r
- <XPos>0</XPos>\r
- <YPos>0</YPos>\r
- <SelStart>0</SelStart>\r
- <SelEnd>0</SelEnd>\r
- <XPos2>0</XPos2>\r
- <YPos2>242</YPos2>\r
- <SelStart2>12612</SelStart2>\r
- <SelEnd2>12612</SelEnd2>\r
- </Tab>\r
- <Tab>\r
- <Factory>TextEditor</Factory>\r
- <Filename>$WS_DIR$\..\Common\Minimal\IntQueue.c</Filename>\r
- <XPos>0</XPos>\r
- <YPos>0</YPos>\r
- <SelStart>0</SelStart>\r
- <SelEnd>0</SelEnd>\r
- <XPos2>0</XPos2>\r
- <YPos2>381</YPos2>\r
- <SelStart2>0</SelStart2>\r
- <SelEnd2>0</SelEnd2>\r
- </Tab>\r
- <Tab>\r
- <Factory>TextEditor</Factory>\r
- <Filename>$WS_DIR$\src\Full_Demo\IntQueueTimer.c</Filename>\r
- <XPos>0</XPos>\r
- <YPos>0</YPos>\r
- <SelStart>0</SelStart>\r
- <SelEnd>0</SelEnd>\r
- <XPos2>0</XPos2>\r
- <YPos2>154</YPos2>\r
- <SelStart2>7349</SelStart2>\r
- <SelEnd2>7349</SelEnd2>\r
- </Tab>\r
- <ActiveTab>5</ActiveTab>\r
- </Pane>\r
- <ActivePane>0</ActivePane>\r
- <Sizes>\r
- <Pane>\r
- <X>1000000</X>\r
- <Y>1000000</Y>\r
- </Pane>\r
- </Sizes>\r
- <SplitMode>1</SplitMode>\r
- </Editor>\r
+ \r
+ \r
+ \r
+ \r
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>112</YPos2><SelStart2>6366</SelStart2><SelEnd2>6366</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>61</YPos2><SelStart2>4905</SelStart2><SelEnd2>4905</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\cg_src\r_cg_sci_user_iar.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>309</YPos2><SelStart2>14485</SelStart2><SelEnd2>14485</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\cg_src\r_cg_sci.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>163</YPos2><SelStart2>8761</SelStart2><SelEnd2>8761</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>1670</YPos2><SelStart2>60105</SelStart2><SelEnd2>60105</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Full_Demo\main_full.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>390</YPos2><SelStart2>16934</SelStart2><SelEnd2>16934</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\FreeRTOS-Plus\Demo\Common\FreeRTOS_Plus_CLI_Demos\Sample-CLI-commands.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>401</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\FreeRTOS-Plus\Demo\Common\FreeRTOS_Plus_CLI_Demos\UARTCommandConsole.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>187</YPos2><SelStart2>8728</SelStart2><SelEnd2>8728</SelEnd2></Tab><ActiveTab>7</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
<Positions>\r
- <Top>\r
- <Row0>\r
- <Sizes>\r
- <Toolbar-026E7B08>\r
- <key>iaridepm.enu1</key>\r
- </Toolbar-026E7B08>\r
- </Sizes>\r
- </Row0>\r
- <Row1>\r
- <Sizes>\r
- <Toolbar-1DFB9BD8>\r
- <key>debuggergui.enu1</key>\r
- </Toolbar-1DFB9BD8>\r
- </Sizes>\r
- </Row1>\r
- </Top>\r
- <Left>\r
- <Row0>\r
- <Sizes>\r
- <Wnd4>\r
- <Rect>\r
- <Top>-2</Top>\r
- <Left>-2</Left>\r
- <Bottom>718</Bottom>\r
- <Right>329</Right>\r
- <x>-2</x>\r
- <y>-2</y>\r
- <xscreen>200</xscreen>\r
- <yscreen>200</yscreen>\r
- <sizeHorzCX>119048</sizeHorzCX>\r
- <sizeHorzCY>203252</sizeHorzCY>\r
- <sizeVertCX>197024</sizeVertCX>\r
- <sizeVertCY>731707</sizeVertCY>\r
- </Rect>\r
- </Wnd4>\r
- </Sizes>\r
- </Row0>\r
- </Left>\r
- <Right>\r
- <Row0>\r
- <Sizes/>\r
- </Row0>\r
- </Right>\r
- <Bottom>\r
- <Row0>\r
- <Sizes>\r
- <Wnd1>\r
- <Rect>\r
- <Top>-2</Top>\r
- <Left>-2</Left>\r
- <Bottom>198</Bottom>\r
- <Right>1682</Right>\r
- <x>-2</x>\r
- <y>-2</y>\r
- <xscreen>1684</xscreen>\r
- <yscreen>200</yscreen>\r
- <sizeHorzCX>1002381</sizeHorzCX>\r
- <sizeHorzCY>203252</sizeHorzCY>\r
- <sizeVertCX>119048</sizeVertCX>\r
- <sizeVertCY>203252</sizeVertCY>\r
- </Rect>\r
- </Wnd1>\r
- </Sizes>\r
- </Row0>\r
- </Bottom>\r
- <Float>\r
- <Sizes/>\r
- </Float>\r
- </Positions>\r
+ \r
+ \r
+ \r
+ \r
+ \r
+ <Top><Row0><Sizes><Toolbar-026C81F0><key>iaridepm.enu1</key></Toolbar-026C81F0></Sizes></Row0><Row1><Sizes><Toolbar-1B927300><key>debuggergui.enu1</key></Toolbar-1B927300></Sizes></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>718</Bottom><Right>329</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>197024</sizeVertCX><sizeVertCY>731707</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>718</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>731707</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
</Desktop>\r
</Project>\r
\r
[DebugChecksum]\r
-Checksum=-126027898\r
+Checksum=-1340739960\r
[CodeCoverage]\r
Enabled=_ 0\r
[Stack]\r
RegMode=0\r
Endian=0\r
ExtMemBlockNum=55\r
-ExtMemEndian_000=0 \r
-ExtMemCondAccess_000=0 \r
-ExtMemEndian_001=0 \r
-ExtMemCondAccess_001=0 \r
-ExtMemEndian_002=0 \r
-ExtMemCondAccess_002=0 \r
-ExtMemEndian_003=0 \r
-ExtMemCondAccess_003=0 \r
-ExtMemEndian_004=0 \r
-ExtMemCondAccess_004=0 \r
-ExtMemEndian_005=0 \r
-ExtMemCondAccess_005=0 \r
-ExtMemEndian_006=0 \r
-ExtMemCondAccess_006=0 \r
-ExtMemEndian_007=0 \r
-ExtMemCondAccess_007=0 \r
-ExtMemEndian_008=0 \r
-ExtMemCondAccess_008=0 \r
-ExtMemEndian_009=0 \r
-ExtMemCondAccess_009=0 \r
-ExtMemEndian_010=0 \r
-ExtMemCondAccess_010=0 \r
-ExtMemEndian_011=0 \r
-ExtMemCondAccess_011=0 \r
-ExtMemEndian_012=0 \r
-ExtMemCondAccess_012=0 \r
-ExtMemEndian_013=0 \r
-ExtMemCondAccess_013=0 \r
-ExtMemEndian_014=0 \r
-ExtMemCondAccess_014=0 \r
-ExtMemEndian_015=0 \r
-ExtMemCondAccess_015=0 \r
-ExtMemEndian_016=0 \r
-ExtMemCondAccess_016=0 \r
-ExtMemEndian_017=0 \r
-ExtMemCondAccess_017=0 \r
-ExtMemEndian_018=0 \r
-ExtMemCondAccess_018=0 \r
-ExtMemEndian_019=0 \r
-ExtMemCondAccess_019=0 \r
-ExtMemEndian_020=0 \r
-ExtMemCondAccess_020=0 \r
-ExtMemEndian_021=0 \r
-ExtMemCondAccess_021=0 \r
-ExtMemEndian_022=0 \r
-ExtMemCondAccess_022=0 \r
-ExtMemEndian_023=0 \r
-ExtMemCondAccess_023=0 \r
-ExtMemEndian_024=0 \r
-ExtMemCondAccess_024=0 \r
-ExtMemEndian_025=0 \r
-ExtMemCondAccess_025=0 \r
-ExtMemEndian_026=0 \r
-ExtMemCondAccess_026=0 \r
-ExtMemEndian_027=0 \r
-ExtMemCondAccess_027=0 \r
-ExtMemEndian_028=0 \r
-ExtMemCondAccess_028=0 \r
-ExtMemEndian_029=0 \r
-ExtMemCondAccess_029=0 \r
-ExtMemEndian_030=0 \r
-ExtMemCondAccess_030=0 \r
-ExtMemEndian_031=0 \r
-ExtMemCondAccess_031=0 \r
-ExtMemEndian_032=0 \r
-ExtMemCondAccess_032=0 \r
-ExtMemEndian_033=0 \r
-ExtMemCondAccess_033=0 \r
-ExtMemEndian_034=0 \r
-ExtMemCondAccess_034=0 \r
-ExtMemEndian_035=0 \r
-ExtMemCondAccess_035=0 \r
-ExtMemEndian_036=0 \r
-ExtMemCondAccess_036=0 \r
-ExtMemEndian_037=0 \r
-ExtMemCondAccess_037=0 \r
-ExtMemEndian_038=0 \r
-ExtMemCondAccess_038=0 \r
-ExtMemEndian_039=0 \r
-ExtMemCondAccess_039=0 \r
-ExtMemEndian_040=0 \r
-ExtMemCondAccess_040=0 \r
-ExtMemEndian_041=0 \r
-ExtMemCondAccess_041=0 \r
-ExtMemEndian_042=0 \r
-ExtMemCondAccess_042=0 \r
-ExtMemEndian_043=0 \r
-ExtMemCondAccess_043=0 \r
-ExtMemEndian_044=0 \r
-ExtMemCondAccess_044=0 \r
-ExtMemEndian_045=0 \r
-ExtMemCondAccess_045=0 \r
-ExtMemEndian_046=0 \r
-ExtMemCondAccess_046=0 \r
-ExtMemEndian_047=0 \r
-ExtMemCondAccess_047=0 \r
-ExtMemEndian_048=0 \r
-ExtMemCondAccess_048=0 \r
-ExtMemEndian_049=0 \r
-ExtMemCondAccess_049=0 \r
-ExtMemEndian_050=0 \r
-ExtMemCondAccess_050=0 \r
-ExtMemEndian_051=0 \r
-ExtMemCondAccess_051=0 \r
-ExtMemEndian_052=0 \r
-ExtMemCondAccess_052=0 \r
-ExtMemEndian_053=0 \r
-ExtMemCondAccess_053=0 \r
-ExtMemEndian_054=0 \r
-ExtMemCondAccess_054=0 \r
+ExtMemEndian_000=0 \r
+ExtMemCondAccess_000=0 \r
+ExtMemEndian_001=0 \r
+ExtMemCondAccess_001=0 \r
+ExtMemEndian_002=0 \r
+ExtMemCondAccess_002=0 \r
+ExtMemEndian_003=0 \r
+ExtMemCondAccess_003=0 \r
+ExtMemEndian_004=0 \r
+ExtMemCondAccess_004=0 \r
+ExtMemEndian_005=0 \r
+ExtMemCondAccess_005=0 \r
+ExtMemEndian_006=0 \r
+ExtMemCondAccess_006=0 \r
+ExtMemEndian_007=0 \r
+ExtMemCondAccess_007=0 \r
+ExtMemEndian_008=0 \r
+ExtMemCondAccess_008=0 \r
+ExtMemEndian_009=0 \r
+ExtMemCondAccess_009=0 \r
+ExtMemEndian_010=0 \r
+ExtMemCondAccess_010=0 \r
+ExtMemEndian_011=0 \r
+ExtMemCondAccess_011=0 \r
+ExtMemEndian_012=0 \r
+ExtMemCondAccess_012=0 \r
+ExtMemEndian_013=0 \r
+ExtMemCondAccess_013=0 \r
+ExtMemEndian_014=0 \r
+ExtMemCondAccess_014=0 \r
+ExtMemEndian_015=0 \r
+ExtMemCondAccess_015=0 \r
+ExtMemEndian_016=0 \r
+ExtMemCondAccess_016=0 \r
+ExtMemEndian_017=0 \r
+ExtMemCondAccess_017=0 \r
+ExtMemEndian_018=0 \r
+ExtMemCondAccess_018=0 \r
+ExtMemEndian_019=0 \r
+ExtMemCondAccess_019=0 \r
+ExtMemEndian_020=0 \r
+ExtMemCondAccess_020=0 \r
+ExtMemEndian_021=0 \r
+ExtMemCondAccess_021=0 \r
+ExtMemEndian_022=0 \r
+ExtMemCondAccess_022=0 \r
+ExtMemEndian_023=0 \r
+ExtMemCondAccess_023=0 \r
+ExtMemEndian_024=0 \r
+ExtMemCondAccess_024=0 \r
+ExtMemEndian_025=0 \r
+ExtMemCondAccess_025=0 \r
+ExtMemEndian_026=0 \r
+ExtMemCondAccess_026=0 \r
+ExtMemEndian_027=0 \r
+ExtMemCondAccess_027=0 \r
+ExtMemEndian_028=0 \r
+ExtMemCondAccess_028=0 \r
+ExtMemEndian_029=0 \r
+ExtMemCondAccess_029=0 \r
+ExtMemEndian_030=0 \r
+ExtMemCondAccess_030=0 \r
+ExtMemEndian_031=0 \r
+ExtMemCondAccess_031=0 \r
+ExtMemEndian_032=0 \r
+ExtMemCondAccess_032=0 \r
+ExtMemEndian_033=0 \r
+ExtMemCondAccess_033=0 \r
+ExtMemEndian_034=0 \r
+ExtMemCondAccess_034=0 \r
+ExtMemEndian_035=0 \r
+ExtMemCondAccess_035=0 \r
+ExtMemEndian_036=0 \r
+ExtMemCondAccess_036=0 \r
+ExtMemEndian_037=0 \r
+ExtMemCondAccess_037=0 \r
+ExtMemEndian_038=0 \r
+ExtMemCondAccess_038=0 \r
+ExtMemEndian_039=0 \r
+ExtMemCondAccess_039=0 \r
+ExtMemEndian_040=0 \r
+ExtMemCondAccess_040=0 \r
+ExtMemEndian_041=0 \r
+ExtMemCondAccess_041=0 \r
+ExtMemEndian_042=0 \r
+ExtMemCondAccess_042=0 \r
+ExtMemEndian_043=0 \r
+ExtMemCondAccess_043=0 \r
+ExtMemEndian_044=0 \r
+ExtMemCondAccess_044=0 \r
+ExtMemEndian_045=0 \r
+ExtMemCondAccess_045=0 \r
+ExtMemEndian_046=0 \r
+ExtMemCondAccess_046=0 \r
+ExtMemEndian_047=0 \r
+ExtMemCondAccess_047=0 \r
+ExtMemEndian_048=0 \r
+ExtMemCondAccess_048=0 \r
+ExtMemEndian_049=0 \r
+ExtMemCondAccess_049=0 \r
+ExtMemEndian_050=0 \r
+ExtMemCondAccess_050=0 \r
+ExtMemEndian_051=0 \r
+ExtMemCondAccess_051=0 \r
+ExtMemEndian_052=0 \r
+ExtMemCondAccess_052=0 \r
+ExtMemEndian_053=0 \r
+ExtMemCondAccess_053=0 \r
+ExtMemEndian_054=0 \r
+ExtMemCondAccess_054=0 \r
InputClock=25.000000\r
ICLK=240.000000\r
AllowClkSrcChange=0\r
\r
\r
\r
- <Column0>310</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
+ <Column0>326</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
</Workspace>\r
<Build>\r
\r
<ColumnWidth0>20</ColumnWidth0>\r
<ColumnWidth1>1622</ColumnWidth1>\r
</Debug-Log>\r
- </Static>\r
+ <Find-in-Files><ColumnWidth0>497</ColumnWidth0><ColumnWidth1>82</ColumnWidth1><ColumnWidth2>746</ColumnWidth2><ColumnWidth3>331</ColumnWidth3></Find-in-Files></Static>\r
<Windows>\r
\r
\r
<Factory>Workspace</Factory>\r
<Session>\r
\r
- <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Blinky_Demo</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS_Source</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS_Source/portable</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo/Standard_Demo_Tasks</ExpandedNode><ExpandedNode>RTOSDemo/cg_src</ExpandedNode></NodeDict></Session>\r
+ <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo/FreeRTOS+CLI</ExpandedNode><ExpandedNode>RTOSDemo/cg_src</ExpandedNode></NodeDict></Session>\r
</Tab>\r
</Tabs>\r
\r
<Factory>Debug-Log</Factory>\r
<Session/>\r
</Tab>\r
- </Tabs>\r
+ <Tab><Identity>TabID-17690-32046</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>\r
\r
<SelectedTab>0</SelectedTab></Wnd3></Windows>\r
<Editor>\r
\r
\r
\r
- <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>66</YPos2><SelStart2>5312</SelStart2><SelEnd2>5312</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Full_Demo\RegTest_IAR.s</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>144</YPos2><SelStart2>5881</SelStart2><SelEnd2>5881</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\flop.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>126</YPos2><SelStart2>6956</SelStart2><SelEnd2>6956</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\TimerDemo.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>242</YPos2><SelStart2>12612</SelStart2><SelEnd2>12612</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\IntQueue.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>381</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\Full_Demo\IntQueueTimer.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>142</YPos2><SelStart2>7349</SelStart2><SelEnd2>7349</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\IAR\RXv2\port.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>61</YPos2><SelStart2>4241</SelStart2><SelEnd2>4241</SelEnd2></Tab><ActiveTab>6</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\src\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>67</YPos2><SelStart2>0</SelStart2><SelEnd2>0</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
<Positions>\r
\r
\r
\r
\r
\r
- <Top><Row0><Sizes><Toolbar-00887B08><key>iaridepm.enu1</key></Toolbar-00887B08></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>742</Bottom><Right>400</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>239286</sizeVertCX><sizeVertCY>756098</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+ <Top><Row0><Sizes><Toolbar-0106A4B8><key>iaridepm.enu1</key></Toolbar-0106A4B8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>400</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>201</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>204268</sizeHorzCY><sizeVertCX>239286</sizeVertCX><sizeVertCY>755081</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>199</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>201</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>204268</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>204268</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
</Desktop>\r
</Workspace>\r
\r
[MainWindow]\r
-WindowPlacement=_ 519 0 1619 872 3\r
+WindowPlacement=_ 250 0 1350 872 3\r
*\r
* The Queue Send Task:\r
* The queue send task is implemented by the prvQueueSendTask() function in\r
- * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly\r
- * block for 200 milliseconds, before sending the value 100 to the queue that\r
- * was created within main_blinky(). Once the value is sent, the task loops\r
- * back around to block for another 200 milliseconds...and so on.\r
+ * this file. It sends the value 100 to the queue every 200 milliseconds.\r
*\r
* The Queue Receive Task:\r
* The queue receive task is implemented by the prvQueueReceiveTask() function\r
- * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly\r
- * blocks on attempts to read data from the queue that was created within\r
- * main_blinky(). When data is received, the task checks the value of the\r
- * data, and if the value equals the expected 100, toggles an LED. The 'block\r
- * time' parameter passed to the queue receive function specifies that the\r
- * task should be held in the Blocked state indefinitely to wait for data to\r
- * be available on the queue. The queue receive task will only leave the\r
- * Blocked state when the queue send task writes to the queue. As the queue\r
- * send task writes to the queue every 200 milliseconds, the queue receive\r
- * task leaves the Blocked state every 200 milliseconds, and therefore toggles\r
- * the LED every 200 milliseconds.\r
+ * in this file. It blocks on the queue to wait for data to arrive from the\r
+ * queue send task - toggling the LED each time it receives the value 100. The\r
+ * queue send task writes to the queue every 200ms, so the LED should toggle\r
+ * every 200ms.\r
*/\r
\r
/* Kernel includes. */\r
\r
/* The rate at which data is sent to the queue. The 200ms value is converted\r
to ticks using the portTICK_PERIOD_MS constant. */\r
-#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS )\r
+#define mainQUEUE_SEND_FREQUENCY_MS ( pdMS_TO_TICKS( 200UL ) )\r
\r
/* The number of items the queue can hold. This is 1 as the receive task\r
will remove items as they are added, meaning the send task should always find\r
#define configUSE_PREEMPTION 1\r
#define configUSE_IDLE_HOOK 1\r
#define configUSE_TICK_HOOK 1\r
-#define configCPU_CLOCK_HZ ( 120000000UL ) /*_RB_ guess*/\r
-#define configPERIPHERAL_CLOCK_HZ ( 60000000UL ) /*_RB_ guess*/\r
+#define configCPU_CLOCK_HZ ( 120000000UL )\r
+#define configPERIPHERAL_CLOCK_HZ ( 60000000UL )\r
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )\r
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 140 )\r
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40 * 1024 ) )\r
+#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 )\r
+#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 50 * 1024 ) )\r
#define configMAX_TASK_NAME_LEN ( 12 )\r
#define configUSE_TRACE_FACILITY 1\r
#define configUSE_16_BIT_TICKS 0\r
#define configMAX_PRIORITIES ( 7 )\r
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
\r
+/* This demo makes use of one or more example stats formatting functions. These\r
+format the raw data provided by the uxTaskGetSystemState() function in to human\r
+readable ASCII form. See the notes in the implementation of vTaskList() within\r
+FreeRTOS/Source/tasks.c for limitations. */\r
+#define configUSE_STATS_FORMATTING_FUNCTIONS 1\r
+\r
/* Software timer definitions. */\r
#define configUSE_TIMERS 1\r
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )\r
#define INCLUDE_eTaskGetState 1\r
#define INCLUDE_xTimerPendFunctionCall 1\r
\r
-void vAssertCalled( void );\r
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }\r
\r
+/* The buffer into which output generated by FreeRTOS+CLI is placed. This must\r
+be at least big enough to contain the output of the task-stats command, as the\r
+example implementation does not include buffer overlow checking. */\r
+#define configCOMMAND_INT_MAX_OUTPUT_SIZE 3500\r
+#define configINCLUDE_QUERY_HEAP_COMMAND 1\r
+\r
/* Override some of the priorities set in the common demo tasks. This is\r
required to ensure flase positive timing errors are not reported. */\r
#define bktPRIMARY_PRIORITY ( configMAX_PRIORITIES - 3 )\r
#define intqHIGHER_PRIORITY ( configMAX_PRIORITIES - 3 )\r
\r
\r
-/*-----------------------------------------------------------\r
- * Ethernet configuration.\r
- *-----------------------------------------------------------*/\r
-\r
-/* MAC address configuration. */\r
-#define configMAC_ADDR0 0x00\r
-#define configMAC_ADDR1 0x12\r
-#define configMAC_ADDR2 0x13\r
-#define configMAC_ADDR3 0x10\r
-#define configMAC_ADDR4 0x15\r
-#define configMAC_ADDR5 0x11\r
-\r
-/* IP address configuration. */\r
-#define configIP_ADDR0 192\r
-#define configIP_ADDR1 168\r
-#define configIP_ADDR2 0\r
-#define configIP_ADDR3 200\r
-\r
-/* Netmask configuration. */\r
-#define configNET_MASK0 255\r
-#define configNET_MASK1 255\r
-#define configNET_MASK2 255\r
-#define configNET_MASK3 0\r
-\r
#endif /* FREERTOS_CONFIG_H */\r
#define INT_QUEUE_TIMER_H\r
\r
void vInitialiseTimerForIntQueueTest( void );\r
-portBASE_TYPE xTimer0Handler( void );\r
-portBASE_TYPE xTimer1Handler( void );\r
+BaseType_t xTimer0Handler( void );\r
+BaseType_t xTimer1Handler( void );\r
\r
#endif\r
\r
*\r
******************************************************************************\r
*\r
- * main_full() creates all the demo application tasks and software timers, then\r
+ * main_full() creates a set of demo application tasks and software timers, then\r
* starts the scheduler. The web documentation provides more details of the\r
* standard demo application tasks, which provide no particular functionality,\r
* but do provide a good example of how to use the FreeRTOS API.\r
* In addition to the standard demo tasks, the following tasks and tests are\r
* defined and/or created within this file:\r
*\r
+ * "FreeRTOS+CLI command console" - The command console uses SCI1 for its\r
+ * input and output. The baud rate is set to 19200. Type "help" to see a list\r
+ * of registered commands. The FreeRTOS+CLI license is different to the\r
+ * FreeRTOS license, see http://www.FreeRTOS.org/cli for license and usage\r
+ * details.\r
+ *\r
* "Reg test" tasks - These fill both the core and floating point registers with\r
* known values, then check that each register maintains its expected value for\r
* the lifetime of the task. Each task uses a different set of values. The reg\r
* error in the context switching mechanism.\r
*\r
* "Check" task - The check task period is initially set to three seconds. The\r
- * task checks that all the standard demo tasks, and the register check tasks,\r
- * are not only still executing, but are executing without reporting any errors.\r
- * If the check task discovers that a task has either stalled, or reported an\r
- * error, then it changes its own execution period from the initial three\r
- * seconds, to just 200ms. The check task also toggles an LED each time it is\r
- * called. This provides a visual indication of the system status: If the LED\r
- * toggles every three seconds, then no issues have been discovered. If the LED\r
- * toggles every 200ms, then an issue has been discovered with at least one\r
- * task.\r
+ * task checks that all the standard demo tasks are not only still executing,\r
+ * but are executing without reporting any errors. If the check task discovers\r
+ * that a task has either stalled, or reported an error, then it changes its own\r
+ * execution period from the initial three seconds, to just 200ms. The check\r
+ * task also toggles an LED on each iteration of its loop. This provides a\r
+ * visual indication of the system status: If the LED toggles every three\r
+ * seconds, then no issues have been discovered. If the LED toggles every\r
+ * 200ms, then an issue has been discovered with at least one task.\r
*/\r
\r
/* Standard includes. */\r
-#include <rskrx71mdef.h>\r
#include <stdio.h>\r
\r
/* Kernel includes. */\r
#include "IntSemTest.h"\r
\r
/* Renesas includes. */\r
+#include <rskrx71mdef.h>\r
#include "r_cg_macrodriver.h"\r
#include "r_cg_userdefine.h"\r
\r
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3UL )\r
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
#define mainUART_COMMAND_CONSOLE_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3UL )\r
-#define mainCOM_TEST_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )\r
#define mainQUEUE_OVERWRITE_PRIORITY ( tskIDLE_PRIORITY )\r
\r
/* The priority used by the UART command console task. */\r
#define mainUART_COMMAND_CONSOLE_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )\r
\r
-/* A block time of zero simply means "don't block". */\r
-#define mainDONT_BLOCK ( 0UL )\r
-\r
/* The period after which the check timer will expire, in ms, provided no errors\r
have been reported by any of the standard demo tasks. ms are converted to the\r
equivalent in ticks using the portTICK_PERIOD_MS constant. */\r
-#define mainNO_ERROR_CHECK_TASK_PERIOD ( 3000UL / portTICK_PERIOD_MS )\r
+#define mainNO_ERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 3000UL )\r
\r
/* The period at which the check timer will expire, in ms, if an error has been\r
reported in one of the standard demo tasks. ms are converted to the equivalent\r
in ticks using the portTICK_PERIOD_MS constant. */\r
-#define mainERROR_CHECK_TASK_PERIOD ( 200UL / portTICK_PERIOD_MS )\r
+#define mainERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 200UL )\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_1_PARAMETER ( ( void * ) 0x12121212UL )\r
-#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x12345678UL )\r
+#define mainREG_TEST_1_PARAMETER ( ( void * ) 0x12121212UL )\r
+#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x12345678UL )\r
\r
/* The base period used by the timer test tasks. */\r
#define mainTIMER_TEST_PERIOD ( 50 )\r
*/\r
static void prvPseudoRandomiser( void *pvParameters );\r
\r
+/*\r
+ * Register commands that can be used with FreeRTOS+CLI. The commands are\r
+ * defined in CLI-Commands.c and File-Related-CLI-Command.c respectively.\r
+ */\r
+extern void vRegisterSampleCLICommands( void );\r
+\r
+/*\r
+ * The task that manages the FreeRTOS+CLI input and output.\r
+ */\r
+extern void vUARTCommandConsoleStart( uint16_t usStackSize, UBaseType_t uxPriority );\r
+\r
/*-----------------------------------------------------------*/\r
\r
/* The following two variables are used to communicate the status of the\r
stops incrementing, then an error has been found. */\r
volatile unsigned long ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;\r
\r
-/* String for display in the web server. It is set to an error message if the\r
-check task detects an error. */\r
-const char *pcStatusMessage = "All tasks running without error";\r
/*-----------------------------------------------------------*/\r
\r
void main_full( void )\r
xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );\r
\r
/* Create the task that just adds a little random behaviour. */\r
- xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL );\r
+ xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 2, NULL );\r
+\r
+ /* Start the tasks that implements the command console on the UART, as\r
+ described above. */\r
+ vUARTCommandConsoleStart( mainUART_COMMAND_CONSOLE_STACK_SIZE, mainUART_COMMAND_CONSOLE_TASK_PRIORITY );\r
+\r
+ /* Register the standard CLI commands. */\r
+ vRegisterSampleCLICommands();\r
\r
/* Create the task that performs the 'check' functionality, as described at\r
the top of this file. */\r
gone wrong (it might just be that the loop back connector required\r
by the comtest tasks has not been fitted). */\r
xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;\r
- pcStatusMessage = "Error found in at least one task.";\r
}\r
}\r
}\r
\r
static void prvPseudoRandomiser( void *pvParameters )\r
{\r
-const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = ( 35 / portTICK_PERIOD_MS );\r
+const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = pdMS_TO_TICKS( 35 );\r
volatile uint32_t ulNextRand = ( uint32_t ) &pvParameters, ulValue;\r
\r
/* This task does nothing other than ensure there is a little bit of\r
/* Date Generated: 18/12/2014 */\r
/************************************************************************/\r
#include "interrupt_handlers.h"\r
+#include "iodefine.h"\r
\r
// Exception(Supervisor Instruction)\r
void INT_Excep_SuperVisorInst(void){/* brk(); */}\r
//;0x01B4 Reserved \r
\r
//;0x01B8 GROUPBL0\r
-void INT_Excep_ICU_GROUPBL0(void){ }\r
+void INT_Excep_ICU_GROUPBL0(void)\r
+{\r
+extern void r_sci7_transmitend_interrupt( void );\r
+extern void r_sci7_receiveerror_interrupt( void );\r
+\r
+ if (ICU.GRPBL0.BIT.IS14 == 1U)\r
+ {\r
+ r_sci7_transmitend_interrupt();\r
+ }\r
+ if (ICU.GRPBL0.BIT.IS15 == 1U)\r
+ {\r
+ r_sci7_receiveerror_interrupt();\r
+ }\r
+}\r
\r
//;0x01BC GROUPBL1\r
void INT_Excep_ICU_GROUPBL1(void){ }\r
extern void vSoftwareInterruptISR( void );\r
extern void vIntQTimerISR0( void );\r
extern void vIntQTimerISR1( void );\r
+void r_sci7_transmit_interrupt(void);\r
+void r_sci7_receive_interrupt(void);\r
\r
#define EXVECT_SECT __attribute__ ((section (".exvectors")))\r
\r
(fp)INT_Excep_PDC_PCDFI,\r
\r
//;0x0188 RXI7\r
- (fp)INT_Excep_SCI7_RXI7,\r
+ (fp)r_sci7_receive_interrupt,\r
\r
//;0x018C TXI7\r
- (fp)INT_Excep_SCI7_TXI7,\r
+ (fp)r_sci7_transmit_interrupt,\r
\r
//;0x0190 RXIF8\r
(fp)INT_Excep_SCIFA8_RXIF8,\r
--- /dev/null
+/* Adapted for use with IAR Embedded Workbench */\r
+/***********************************************************************************************************************\r
+* DISCLAIMER\r
+* This software is supplied by Renesas Electronics Corporation and is only\r
+* intended for use with Renesas products. No other uses are authorized. This\r
+* software is owned by Renesas Electronics Corporation and is protected under\r
+* all applicable laws, including copyright laws.\r
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING\r
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT\r
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE\r
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.\r
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS\r
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE\r
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR\r
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE\r
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
+* Renesas reserves the right, without notice, to make changes to this software\r
+* and to discontinue the availability of this software. By using this software,\r
+* you agree to the additional terms and conditions found by accessing the\r
+* following link:\r
+* http://www.renesas.com/disclaimer\r
+*\r
+* Copyright (C) 2013, 2014 Renesas Electronics Corporation. All rights reserved.\r
+***********************************************************************************************************************/\r
+\r
+/***********************************************************************************************************************\r
+* File Name : r_cg_intprg.c\r
+* Version : Code Generator for RX64M V1.00.01.01 [09 May 2014]\r
+* Device(s) : R5F571MLCxFC\r
+* Tool-Chain : IAR Embedded Workbench\r
+* Description : Setting of B.\r
+* Creation Date: 30/06/2014\r
+***********************************************************************************************************************/\r
+\r
+/***********************************************************************************************************************\r
+Pragma directive\r
+***********************************************************************************************************************/\r
+/* Start user code for pragma. Do not edit comment generated here */\r
+/* End user code. Do not edit comment generated here */\r
+\r
+/***********************************************************************************************************************\r
+Includes\r
+***********************************************************************************************************************/\r
+#include "r_cg_macrodriver.h"\r
+#include <machine.h>\r
+#include "r_cg_userdefine.h"\r
+\r
+/***********************************************************************************************************************\r
+Global variables and functions\r
+***********************************************************************************************************************/\r
+\r
+\r
+// fixedint.c in $TOOLKIT$/rx/src/lib/src\r
+/* Undefined exceptions for supervisor instruction, undefined instruction and floating point exceptions */\r
+__interrupt void __undefined_handler (void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/* NMI */\r
+__interrupt void __NMI_handler (void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+\r
+/* BRK */\r
+#pragma vector=0\r
+__interrupt void r_brk_exception(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/* ICU GROUPBE0 */\r
+#pragma vector=VECT(ICU,GROUPBE0)\r
+__interrupt void r_icu_group_be0_interrupt(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+\r
+/* ICU GROUPBL0 */\r
+#pragma vector=VECT(ICU,GROUPBL0)\r
+__interrupt void r_icu_group_bl0_interrupt(void)\r
+{\r
+ if (ICU.GRPBL0.BIT.IS14 == 1U)\r
+ {\r
+ r_sci7_transmitend_interrupt();\r
+ }\r
+ if (ICU.GRPBL0.BIT.IS15 == 1U)\r
+ {\r
+ r_sci7_receiveerror_interrupt();\r
+ }\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/* ICU GROUPBL1 */\r
+#pragma vector=VECT(ICU,GROUPBL1)\r
+__interrupt void r_icu_group_bl1_interrupt(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/* ICU GROUPAL0 */\r
+#pragma vector=VECT(ICU,GROUPAL0)\r
+__interrupt void r_icu_group_al0_interrupt(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/* ICU GROUPAL1 */\r
+#pragma vector=VECT(ICU,GROUPAL1)\r
+__interrupt void r_icu_group_al1_interrupt(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/* Start user code for adding. Do not edit comment generated here */\r
+/* End user code. Do not edit comment generated here */\r
#ifdef __ICCRX__\r
#include <iorx71m.h>\r
#include <machine.h>\r
+ #include <stdint.h>\r
#endif\r
\r
#ifdef __GNUC__\r
+++ /dev/null
-/***********************************************************************************************************************\r
-* DISCLAIMER\r
-* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.\r
-* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all\r
-* applicable laws, including copyright laws. \r
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED\r
-* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY\r
-* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,\r
-* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR\r
-* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
-* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability \r
-* of this software. By using this software, you agree to the additional terms and conditions found by accessing the \r
-* following link:\r
-* http://www.renesas.com/disclaimer\r
-*\r
-* Copyright (C) 2015 Renesas Electronics Corporation. All rights reserved.\r
-***********************************************************************************************************************/\r
-\r
-/***********************************************************************************************************************\r
-* File Name : r_cg_sci_user.c\r
-* Version : Code Generator for RX71M V1.00.02.02 [28 May 2015]\r
-* Device(s) : R5F571MLCxFC\r
-* Tool-Chain : CCRX\r
-* Description : This file implements device driver for SCI module.\r
-* Creation Date: 20/09/2015\r
-***********************************************************************************************************************/\r
-\r
-/***********************************************************************************************************************\r
-Pragma directive\r
-***********************************************************************************************************************/\r
-/* Start user code for pragma. Do not edit comment generated here */\r
-/* End user code. Do not edit comment generated here */\r
-\r
-/***********************************************************************************************************************\r
-Includes\r
-***********************************************************************************************************************/\r
-#include "r_cg_macrodriver.h"\r
-#include "r_cg_sci.h"\r
-/* Start user code for include. Do not edit comment generated here */\r
-/* End user code. Do not edit comment generated here */\r
-#include "r_cg_userdefine.h"\r
-\r
-/***********************************************************************************************************************\r
-Global variables and functions\r
-***********************************************************************************************************************/\r
-extern uint8_t * gp_sci7_tx_address; /* SCI7 send buffer address */\r
-extern uint16_t g_sci7_tx_count; /* SCI7 send data number */\r
-extern uint8_t * gp_sci7_rx_address; /* SCI7 receive buffer address */\r
-extern uint16_t g_sci7_rx_count; /* SCI7 receive data number */\r
-extern uint16_t g_sci7_rx_length; /* SCI7 receive data length */\r
-/* Start user code for global. Do not edit comment generated here */\r
-/* Flag used locally to detect transmission complete */\r
-\r
-/* Global used to receive a character from the PC terminal */\r
-uint8_t g_rx_char;\r
-\r
-/* Flag used to control transmission to PC terminal */\r
-volatile uint8_t g_tx_flag = FALSE;\r
-\r
-/* Flag used locally to detect transmission complete */\r
-static volatile uint8_t sci6_txdone;\r
-static volatile uint8_t sci7_txdone;\r
-\r
-/* End user code. Do not edit comment generated here */\r
-\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_transmit_interrupt\r
-* Description : None\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-#if FAST_INTERRUPT_VECTOR == VECT_SCI7_TXI7\r
-#pragma interrupt r_sci7_transmit_interrupt(vect=VECT(SCI7,TXI7),fint)\r
-#else\r
-#pragma interrupt r_sci7_transmit_interrupt(vect=VECT(SCI7,TXI7))\r
-#endif\r
-static void r_sci7_transmit_interrupt(void)\r
-{\r
- if (0U < g_sci7_tx_count)\r
- {\r
- SCI7.TDR = *gp_sci7_tx_address;\r
- gp_sci7_tx_address++;\r
- g_sci7_tx_count--;\r
- }\r
- else\r
- {\r
- SCI7.SCR.BIT.TIE = 0U;\r
- SCI7.SCR.BIT.TEIE = 1U;\r
- }\r
-}\r
-\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_transmitend_interrupt\r
-* Description : This function is TEI7 interrupt service routine.\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-void r_sci7_transmitend_interrupt(void)\r
-{\r
- /* Set TXD7 pin */\r
- PORT9.PMR.BYTE &= 0xFEU;\r
- SCI7.SCR.BIT.TIE = 0U;\r
- SCI7.SCR.BIT.TE = 0U;\r
- SCI7.SCR.BIT.TEIE = 0U;\r
-\r
- r_sci7_callback_transmitend();\r
-}\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_receive_interrupt\r
-* Description : None\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-#if FAST_INTERRUPT_VECTOR == VECT_SCI7_RXI7\r
-#pragma interrupt r_sci7_receive_interrupt(vect=VECT(SCI7,RXI7),fint)\r
-#else\r
-#pragma interrupt r_sci7_receive_interrupt(vect=VECT(SCI7,RXI7))\r
-#endif\r
-static void r_sci7_receive_interrupt(void)\r
-{\r
- if (g_sci7_rx_length > g_sci7_rx_count)\r
- {\r
- *gp_sci7_rx_address = SCI7.RDR;\r
- gp_sci7_rx_address++;\r
- g_sci7_rx_count++;\r
-\r
- if (g_sci7_rx_length <= g_sci7_rx_count)\r
- {\r
- r_sci7_callback_receiveend();\r
- }\r
- }\r
-}\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_receiveerror_interrupt\r
-* Description : This function is ERI7 interrupt service routine.\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-void r_sci7_receiveerror_interrupt(void)\r
-{\r
- uint8_t err_type;\r
-\r
- r_sci7_callback_receiveerror();\r
-\r
- /* Clear overrun, framing and parity error flags */\r
- err_type = SCI7.SSR.BYTE;\r
- err_type &= 0xC7U;\r
- err_type |= 0xC0U;\r
- SCI7.SSR.BYTE = err_type;\r
-}\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_callback_transmitend\r
-* Description : This function is a callback function when SCI7 finishes transmission.\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-static void r_sci7_callback_transmitend(void)\r
-{\r
- /* Start user code. Do not edit comment generated here */\r
- sci7_txdone = TRUE;\r
-\r
- /* End user code. Do not edit comment generated here */\r
-}\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_callback_receiveend\r
-* Description : This function is a callback function when SCI7 finishes reception.\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-static void r_sci7_callback_receiveend(void)\r
-{\r
- /* Start user code. Do not edit comment generated here */\r
- /* Check the contents of g_rx_char */\r
- if (('c' == g_rx_char) || ('C' == g_rx_char))\r
- {\r
-//_RB_ g_adc_trigger = TRUE;\r
- }\r
-\r
- /* Set up SCI7 receive buffer and callback function again */\r
- R_SCI7_Serial_Receive((uint8_t *)&g_rx_char, 1);\r
-\r
- /* End user code. Do not edit comment generated here */\r
-}\r
-/***********************************************************************************************************************\r
-* Function Name: r_sci7_callback_receiveerror\r
-* Description : This function is a callback function when SCI7 reception encounters error.\r
-* Arguments : None\r
-* Return Value : None\r
-***********************************************************************************************************************/\r
-static void r_sci7_callback_receiveerror(void)\r
-{\r
- /* Start user code. Do not edit comment generated here */\r
- /* End user code. Do not edit comment generated here */\r
-}\r
-\r
-/* Start user code for adding. Do not edit comment generated here */\r
-\r
-/*******************************************************************************\r
-* Function Name: R_SCI7_AsyncTransmit\r
-* Description : This function sends SCI7 data and waits for the transmit end flag.\r
-* Arguments : tx_buf -\r
-* transfer buffer pointer\r
-* tx_num -\r
-* buffer size\r
-* Return Value : status -\r
-* MD_OK or MD_ARGERROR\r
-*******************************************************************************/\r
-MD_STATUS R_SCI7_AsyncTransmit (uint8_t * const tx_buf, const uint16_t tx_num)\r
-{\r
- MD_STATUS status = MD_OK;\r
- \r
- /* clear the flag before initiating a new transmission */\r
- sci7_txdone = FALSE;\r
-\r
- /* Send the data using the API */\r
- status = R_SCI7_Serial_Send(tx_buf, tx_num);\r
-\r
- /* Wait for the transmit end flag */\r
- while (FALSE == sci7_txdone)\r
- {\r
- /* Wait */\r
- }\r
- return (status);\r
-}\r
-\r
-/*******************************************************************************\r
-* End of function R_SCI7_AsyncTransmit\r
-*******************************************************************************/\r
-\r
-\r
-/* End user code. Do not edit comment generated here */\r
--- /dev/null
+/*Adapted for IAR Embedded Workbench*/\r
+/***********************************************************************************************************************\r
+* DISCLAIMER\r
+* This software is supplied by Renesas Electronics Corporation and is only\r
+* intended for use with Renesas products. No other uses are authorized. This\r
+* software is owned by Renesas Electronics Corporation and is protected under\r
+* all applicable laws, including copyright laws.\r
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING\r
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT\r
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE\r
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.\r
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS\r
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE\r
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR\r
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE\r
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
+* Renesas reserves the right, without notice, to make changes to this software\r
+* and to discontinue the availability of this software. By using this software,\r
+* you agree to the additional terms and conditions found by accessing the\r
+* following link:\r
+* http://www.renesas.com/disclaimer\r
+*\r
+* Copyright (C) 2013, 2014 Renesas Electronics Corporation. All rights reserved.\r
+***********************************************************************************************************************/\r
+\r
+/***********************************************************************************************************************\r
+* File Name : r_cg_sci_user.c\r
+* Version : Code Generator for RX64M V1.00.01.01 [09 May 2014]\r
+* Device(s) : R5F571MLCxFC\r
+* Tool-Chain : IAR Embedded Workbench\r
+* Description : This file implements device driver for SCI module.\r
+* Creation Date: 30/06/2014\r
+***********************************************************************************************************************/\r
+\r
+/***********************************************************************************************************************\r
+Pragma directive\r
+***********************************************************************************************************************/\r
+/* Start user code for pragma. Do not edit comment generated here */\r
+\r
+\r
+/*\r
+ * This file originated from an example project for the RSK - it has been\r
+ * adapted to allow it to be used in the FreeRTOS demo. Functions required by\r
+ * UARTCommandConsole.c have been added.\r
+ */\r
+\r
+\r
+\r
+/* End user code. Do not edit comment generated here */\r
+\r
+/***********************************************************************************************************************\r
+Includes\r
+***********************************************************************************************************************/\r
+#include "r_cg_macrodriver.h"\r
+#include "r_cg_sci.h"\r
+/* Start user code for include. Do not edit comment generated here */\r
+#include "rskrx71mdef.h"\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+#include "serial.h"\r
+/* End user code. Do not edit comment generated here */\r
+#include "r_cg_userdefine.h"\r
+\r
+/***********************************************************************************************************************\r
+Global variables and functions\r
+***********************************************************************************************************************/\r
+extern uint8_t * gp_sci7_tx_address; /* SCI7 send buffer address */\r
+extern uint16_t g_sci7_tx_count; /* SCI7 send data number */\r
+extern uint8_t * gp_sci7_rx_address; /* SCI7 receive buffer address */\r
+extern uint16_t g_sci7_rx_count; /* SCI7 receive data number */\r
+extern uint16_t g_sci7_rx_length; /* SCI7 receive data length */\r
+/* Start user code for global. Do not edit comment generated here */\r
+\r
+/* Global used to receive a character from the PC terminal */\r
+uint8_t g_rx_char;\r
+\r
+/* Flag used to control transmission to PC terminal */\r
+volatile uint8_t g_tx_flag = FALSE;\r
+\r
+/* Characters received from the UART are stored in this queue, ready to be\r
+received by the application. ***NOTE*** Using a queue in this way is very\r
+convenient, but also very inefficient. It can be used here because characters\r
+will only arrive slowly. In a higher bandwidth system a circular RAM buffer or\r
+DMA should be used in place of this queue. */\r
+static QueueHandle_t xRxQueue = NULL;\r
+\r
+/* When a task calls vSerialPutString() its handle is stored in xSendingTask,\r
+before being placed into the Blocked state (so does not use any CPU time) to\r
+wait for the transmission to end. The task handle is then used from the UART\r
+transmit end interrupt to remove the task from the Blocked state. */\r
+static TaskHandle_t xSendingTask = NULL;\r
+\r
+/* Flag used locally to detect transmission complete. This is used by the\r
+auto generated API only. */\r
+static volatile uint8_t sci7_txdone;\r
+\r
+/* End user code. Do not edit comment generated here */\r
+\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_transmit_interrupt\r
+* Description : None\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+void r_sci7_transmit_interrupt(void) __attribute__((interrupt));\r
+void r_sci7_transmit_interrupt(void)\r
+{\r
+ if (g_sci7_tx_count > 0U)\r
+ {\r
+ SCI7.TDR = *gp_sci7_tx_address;\r
+ gp_sci7_tx_address++;\r
+ g_sci7_tx_count--;\r
+ }\r
+ else\r
+ {\r
+ SCI7.SCR.BIT.TIE = 0U;\r
+ SCI7.SCR.BIT.TEIE = 1U;\r
+ }\r
+}\r
+\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_transmitend_interrupt\r
+* Description : This function is TEI7 interrupt service routine.\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+void r_sci7_transmitend_interrupt(void)\r
+{\r
+ MPC.P90PFS.BYTE = 0x00U;\r
+ PORT9.PMR.BYTE &= 0xFEU;\r
+ SCI7.SCR.BIT.TIE = 0U;\r
+ SCI7.SCR.BIT.TE = 0U;\r
+ SCI7.SCR.BIT.TEIE = 0U;\r
+\r
+ r_sci7_callback_transmitend();\r
+}\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_receive_interrupt\r
+* Description : None\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+void r_sci7_receive_interrupt(void) __attribute__((interrupt));\r
+void r_sci7_receive_interrupt(void)\r
+{\r
+ if (g_sci7_rx_length > g_sci7_rx_count)\r
+ {\r
+ *gp_sci7_rx_address = SCI7.RDR;\r
+ gp_sci7_rx_address++;\r
+ g_sci7_rx_count++;\r
+\r
+ if (g_sci7_rx_length <= g_sci7_rx_count)\r
+ {\r
+ r_sci7_callback_receiveend();\r
+ }\r
+ }\r
+}\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_receiveerror_interrupt\r
+* Description : This function is ERI7 interrupt service routine.\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+void r_sci7_receiveerror_interrupt(void)\r
+{\r
+ uint8_t err_type;\r
+\r
+ r_sci7_callback_receiveerror();\r
+\r
+ /* Clear overrun, framing and parity error flags */\r
+ err_type = SCI7.SSR.BYTE;\r
+ err_type &= 0xC7U;\r
+ err_type |= 0xC0U;\r
+ SCI7.SSR.BYTE = err_type;\r
+}\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_callback_transmitend\r
+* Description : This function is a callback function when SCI7 finishes transmission.\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+static void r_sci7_callback_transmitend(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+\r
+ /* The sci7_txdone flag is used by the auto generated API only. */\r
+ sci7_txdone = TRUE;\r
+\r
+ if( xSendingTask != NULL )\r
+ {\r
+ /* A task is waiting for the end of the Tx, unblock it now.\r
+ http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
+ vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
+ xSendingTask = NULL;\r
+\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ }\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_callback_receiveend\r
+* Description : This function is a callback function when SCI7 finishes reception.\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+static void r_sci7_callback_receiveend(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Transmitting generates an interrupt for each character, which consumes\r
+ CPU time, and can cause standard demo RTOS tasks that monitor their own\r
+ performance to fail asserts - so don't receive new CLI commands if a\r
+ transmit is not already in progress. */\r
+ if( sci7_txdone == TRUE )\r
+ {\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
+ }\r
+\r
+ /* Set up SCI7 receive buffer again */\r
+ R_SCI7_Serial_Receive((uint8_t *)&g_rx_char, 1);\r
+\r
+ /* See http://www.freertos.org/xQueueOverwriteFromISR.html for information\r
+ on the semantics of this ISR. */\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+/***********************************************************************************************************************\r
+* Function Name: r_sci7_callback_receiveerror\r
+* Description : This function is a callback function when SCI7 reception encounters error.\r
+* Arguments : None\r
+* Return Value : None\r
+***********************************************************************************************************************/\r
+static void r_sci7_callback_receiveerror(void)\r
+{\r
+ /* Start user code. Do not edit comment generated here */\r
+ /* End user code. Do not edit comment generated here */\r
+}\r
+\r
+/***********************************************************************************************************************\r
+* Function Name: R_SCI7_AsyncTransmit\r
+* Description : This function sends SCI7 data and waits for the transmit end flag.\r
+* Arguments : tx_buf -\r
+* transfer buffer pointer\r
+* tx_num -\r
+* buffer size\r
+* Return Value : status -\r
+* MD_OK or MD_ARGERROR\r
+***********************************************************************************************************************/\r
+MD_STATUS R_SCI7_AsyncTransmit (uint8_t * const tx_buf, const uint16_t tx_num)\r
+{\r
+ MD_STATUS status = MD_OK;\r
+taskDISABLE_INTERRUPTS();\r
+while( 1 );\r
+ /* clear the flag before initiating a new transmission */\r
+ sci7_txdone = FALSE;\r
+\r
+ /* Send the data using the API */\r
+ status = R_SCI7_Serial_Send(tx_buf, tx_num);\r
+\r
+ /* Wait for the transmit end flag */\r
+ while (FALSE == sci7_txdone)\r
+ {\r
+ /* Wait */\r
+ }\r
+ return (status);\r
+}\r
+/***********************************************************************************************************************\r
+* End of function R_SCI7_AsyncTransmit\r
+***********************************************************************************************************************/\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
+{\r
+ ( void ) ulWantedBaud;\r
+ ( void ) uxQueueLength;\r
+\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Set up SCI1 receive buffer */\r
+ R_SCI7_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
+\r
+ /* Ensure the interrupt priority is at or below\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ IPR(SCI7, RXI7) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ IPR(SCI7, TXI7) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ IPR(ICU,GROUPBL0) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+\r
+ /* Enable SCI1 operations */\r
+ R_SCI7_Start();\r
+\r
+ /* Only one UART is supported, so it doesn't matter what is returned\r
+ here. */\r
+ return 0;\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )\r
+{\r
+const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 );\r
+\r
+ /* Only one port is supported. */\r
+ ( void ) pxPort;\r
+\r
+ /* Clear the flag before initiating a new transmission */\r
+ sci7_txdone = FALSE;\r
+\r
+ /* Don't send the string unless the previous string has been sent. */\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
+ {\r
+ /* Ensure the calling task's notification state is not already\r
+ pending. */\r
+ vTaskNotifyStateClear( NULL );\r
+\r
+ /* Store the handle of the transmitting task. This is used to unblock\r
+ the task when the transmission has completed. */\r
+ xSendingTask = xTaskGetCurrentTaskHandle();\r
+\r
+ /* Send the string using the auto-generated API. */\r
+ R_SCI7_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
+\r
+ /* Wait in the Blocked state (so not using any CPU time) until the\r
+ transmission has completed. */\r
+ ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
+ }\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
+{\r
+ /* Only one UART is supported. */\r
+ ( void ) pxPort;\r
+\r
+ /* Return a received character, if any are available. Otherwise block to\r
+ wait for a character. */\r
+ return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
+{\r
+ /* Just mapped to vSerialPutString() so the block time is not used. */\r
+ ( void ) xBlockTime;\r
+\r
+ vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
+ return pdPASS;\r
+}\r
+\r
+/* End user code. Do not edit comment generated here */\r
Pragma directive\r
***********************************************************************************************************************/\r
/* Start user code for pragma. Do not edit comment generated here */\r
+\r
+\r
+/*\r
+ * This file originated from an example project for the RSK - it has been\r
+ * adapted to allow it to be used in the FreeRTOS demo. Functions required by\r
+ * UARTCommandConsole.c have been added.\r
+ */\r
+\r
+\r
+\r
/* End user code. Do not edit comment generated here */\r
\r
/***********************************************************************************************************************\r
#include "r_cg_sci.h"\r
/* Start user code for include. Do not edit comment generated here */\r
#include "rskrx71mdef.h"\r
-//_RB_#include "r_cg_cmt.h"\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+#include "serial.h"\r
/* End user code. Do not edit comment generated here */\r
#include "r_cg_userdefine.h"\r
\r
/* Flag used to control transmission to PC terminal */\r
volatile uint8_t g_tx_flag = FALSE;\r
\r
-/* Flag used locally to detect transmission complete */\r
+/* Characters received from the UART are stored in this queue, ready to be\r
+received by the application. ***NOTE*** Using a queue in this way is very\r
+convenient, but also very inefficient. It can be used here because characters\r
+will only arrive slowly. In a higher bandwidth system a circular RAM buffer or\r
+DMA should be used in place of this queue. */\r
+static QueueHandle_t xRxQueue = NULL;\r
+\r
+/* When a task calls vSerialPutString() its handle is stored in xSendingTask,\r
+before being placed into the Blocked state (so does not use any CPU time) to\r
+wait for the transmission to end. The task handle is then used from the UART\r
+transmit end interrupt to remove the task from the Blocked state. */\r
+static TaskHandle_t xSendingTask = NULL;\r
+\r
+/* Flag used locally to detect transmission complete. This is used by the\r
+auto generated API only. */\r
static volatile uint8_t sci7_txdone;\r
\r
/* End user code. Do not edit comment generated here */\r
static void r_sci7_callback_transmitend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+\r
+ /* The sci7_txdone flag is used by the auto generated API only. */\r
sci7_txdone = TRUE;\r
+\r
+ if( xSendingTask != NULL )\r
+ {\r
+ /* A task is waiting for the end of the Tx, unblock it now.\r
+ http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
+ vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
+ xSendingTask = NULL;\r
+\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ }\r
/* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
static void r_sci7_callback_receiveend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- /* Check the contents of g_rx_char */\r
- if ('z' == g_rx_char)\r
- {\r
- /* Stop the timer used to control transmission to PC terminal*/\r
-// R_CMT1_Stop();\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
\r
- /* Turn off LED0 and turn on LED1 to indicate serial transmission\r
- inactive */\r
- LED0 = LED_OFF;\r
- LED1 = LED_ON;\r
- }\r
- else\r
- {\r
- /* Start the timer used to control transmission to PC terminal*/\r
-//_RB_ R_CMT1_Start();\r
+ configASSERT( xRxQueue );\r
\r
- /* Turn on LED0 and turn off LED1 to indicate serial transmission\r
- active */\r
- LED0 = LED_ON;\r
- LED1 = LED_OFF;\r
+ /* Transmitting generates an interrupt for each character, which consumes\r
+ CPU time, and can cause standard demo RTOS tasks that monitor their own\r
+ performance to fail asserts - so don't receive new CLI commands if a\r
+ transmit is not already in progress. */\r
+ if( sci7_txdone == TRUE )\r
+ {\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
}\r
\r
/* Set up SCI7 receive buffer again */\r
R_SCI7_Serial_Receive((uint8_t *)&g_rx_char, 1);\r
- /* End user code. Do not edit comment generated here */\r
+\r
+ /* See http://www.freertos.org/xQueueOverwriteFromISR.html for information\r
+ on the semantics of this ISR. */\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ /* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
* Function Name: r_sci7_callback_receiveerror\r
* End of function R_SCI7_AsyncTransmit\r
***********************************************************************************************************************/\r
\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
+{\r
+ ( void ) ulWantedBaud;\r
+ ( void ) uxQueueLength;\r
+\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Set up SCI1 receive buffer */\r
+ R_SCI7_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
+\r
+ /* Ensure the interrupt priority is at or below\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ IPR(SCI7, RXI7) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ IPR(SCI7, TXI7) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ IPR(ICU,GROUPBL0) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+\r
+ /* Enable SCI1 operations */\r
+ R_SCI7_Start();\r
+\r
+ /* Only one UART is supported, so it doesn't matter what is returned\r
+ here. */\r
+ return 0;\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )\r
+{\r
+const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 );\r
+\r
+ /* Only one port is supported. */\r
+ ( void ) pxPort;\r
+\r
+ /* Clear the flag before initiating a new transmission */\r
+ sci7_txdone = FALSE;\r
+\r
+ /* Don't send the string unless the previous string has been sent. */\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
+ {\r
+ /* Ensure the calling task's notification state is not already\r
+ pending. */\r
+ vTaskNotifyStateClear( NULL );\r
+\r
+ /* Store the handle of the transmitting task. This is used to unblock\r
+ the task when the transmission has completed. */\r
+ xSendingTask = xTaskGetCurrentTaskHandle();\r
+\r
+ /* Send the string using the auto-generated API. */\r
+ R_SCI7_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
+\r
+ /* Wait in the Blocked state (so not using any CPU time) until the\r
+ transmission has completed. */\r
+ ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
+ }\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
+{\r
+ /* Only one UART is supported. */\r
+ ( void ) pxPort;\r
+\r
+ /* Return a received character, if any are available. Otherwise block to\r
+ wait for a character. */\r
+ return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
+{\r
+ /* Just mapped to vSerialPutString() so the block time is not used. */\r
+ ( void ) xBlockTime;\r
+\r
+ vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
+ return pdPASS;\r
+}\r
\r
/* End user code. Do not edit comment generated here */\r
}\r
#endif\r
\r
+ /* Should never get reached. */\r
return 0;\r
}\r
/*-----------------------------------------------------------*/\r
\r
void vApplicationTickHook( void )\r
{\r
+ /* The tick hook is not used by the blinky demo, but is by the full demo. */\r
#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0\r
{\r
extern void vFullDemoTickHook( void );\r
/*-----------------------------------------------------------*/\r
\r
/* The RX port uses this callback function to configure its tick interrupt.\r
-This allows the application to choose the tick interrupt source. */\r
+This allows the application to choose the tick interrupt source.\r
+***NOTE***: configTICK_VECTOR must be set in FreeRTOSConfig.h to be correct for\r
+whichever vector is used. */\r
void vApplicationSetupTimerInterrupt( void )\r
{\r
const uint32_t ulEnableRegisterWrite = 0xA50BUL, ulDisableRegisterWrite = 0xA500UL;\r
<option id="com.renesas.cdt.renesas.Compiler.option.deviceShortName.2099068857" name="DeviceShortName" superClass="com.renesas.cdt.renesas.Compiler.option.deviceShortName" value="R5F571MLCxFC" valueType="string"/>\r
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.renesas.Compiler.option.incFileDirectories.1186627023" name="Include file directories" superClass="com.renesas.cdt.renesas.Compiler.option.incFileDirectories" valueType="includePath">\r
<listOptionValue builtIn="false" value=""${TCINSTALL}/include""/>\r
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo/FreeRTOS-Plus-CLI}""/>\r
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/Full_Demo/Standard_Demo_Tasks/Include}""/>\r
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FreeRTOS_Source/include}""/>\r
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/FreeRTOS_Source/portable/Renesas/RX600v2}""/>\r
<type>2</type>\r
<locationURI>FREERTOS_ROOT/FreeRTOS/Source</locationURI>\r
</link>\r
+ <link>\r
+ <name>src/Full_Demo/FreeRTOS-Plus-CLI</name>\r
+ <type>2</type>\r
+ <locationURI>FREERTOS_ROOT/FreeRTOS-Plus/Source/FreeRTOS-Plus-CLI</locationURI>\r
+ </link>\r
+ <link>\r
+ <name>src/Full_Demo/Sample-CLI-commands.c</name>\r
+ <type>1</type>\r
+ <locationURI>FREERTOS_ROOT/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos/Sample-CLI-commands.c</locationURI>\r
+ </link>\r
<link>\r
<name>src/Full_Demo/Standard_Demo_Tasks</name>\r
<type>2</type>\r
<locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal</locationURI>\r
</link>\r
+ <link>\r
+ <name>src/Full_Demo/UARTCommandConsole.c</name>\r
+ <type>1</type>\r
+ <locationURI>FREERTOS_ROOT/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos/UARTCommandConsole.c</locationURI>\r
+ </link>\r
<link>\r
<name>src/Full_Demo/Standard_Demo_Tasks/Include</name>\r
<type>2</type>\r
<stringAttribute key="com.renesas.cdt.core.optionInitCommands" value=""/>\r
<intAttribute key="com.renesas.cdt.core.portNumber" value="61234"/>\r
<stringAttribute key="com.renesas.cdt.core.runCommands" value=""/>\r
-<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1 -t R5F571ML -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 27.0 -uAllowClockSourceInternal= 1 -uUseFine= 0 -uJTagClockFreq= 16.5 -w 0 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -b -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0 -uPTimerClock= 120000000 -uhookWorkRamAddr= 0x1000 -uhookWorkRamSize= 0x230"/>\r
+<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1 -t R5F571ML -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 27.0 -uAllowClockSourceInternal= 1 -uUseFine= 0 -uJTagClockFreq= 16.5 -w 1 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -b -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0 -uPTimerClock= 120000000 -uhookWorkRamAddr= 0x1000 -uhookWorkRamSize= 0x230"/>\r
<booleanAttribute key="com.renesas.cdt.core.startServer" value="true"/>\r
<stringAttribute key="com.renesas.cdt.core.targetDevice" value="R5F571ML"/>\r
<booleanAttribute key="com.renesas.cdt.core.useRemoteTarget" value="true"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.allow.clock.source.internal" value="true"/>\r
<intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="0"/>\r
<stringAttribute key="com.renesas.hardwaredebug.e1.connection.mode" value="0"/>\r
-<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="false"/>\r
+<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="true"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.enable.hot.plug" value="false"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.enable_external_flash" value="false"/>\r
<booleanAttribute key="com.renesas.hardwaredebug.e1.execute.program" value="false"/>\r
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>\r
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_Renesas_e2studio\HardwareDebug\RTOSDemo.x"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_RSK_Renesas_e2studio\HardwareDebug\RTOSDemo.x"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value="0"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>\r
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_Renesas_e2studio\HardwareDebug\RTOSDemo.x"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX700_RX71M_RSK_Renesas_e2studio\HardwareDebug\RTOSDemo.x"/>\r
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value="0"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>\r
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>\r
*\r
* The Queue Send Task:\r
* The queue send task is implemented by the prvQueueSendTask() function in\r
- * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly\r
- * block for 200 milliseconds, before sending the value 100 to the queue that\r
- * was created within main_blinky(). Once the value is sent, the task loops\r
- * back around to block for another 200 milliseconds...and so on.\r
+ * this file. It sends the value 100 to the queue every 200 milliseconds.\r
*\r
* The Queue Receive Task:\r
* The queue receive task is implemented by the prvQueueReceiveTask() function\r
- * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly\r
- * blocks on attempts to read data from the queue that was created within\r
- * main_blinky(). When data is received, the task checks the value of the\r
- * data, and if the value equals the expected 100, toggles an LED. The 'block\r
- * time' parameter passed to the queue receive function specifies that the\r
- * task should be held in the Blocked state indefinitely to wait for data to\r
- * be available on the queue. The queue receive task will only leave the\r
- * Blocked state when the queue send task writes to the queue. As the queue\r
- * send task writes to the queue every 200 milliseconds, the queue receive\r
- * task leaves the Blocked state every 200 milliseconds, and therefore toggles\r
- * the LED every 200 milliseconds.\r
+ * in this file. It blocks on the queue to wait for data to arrive from the\r
+ * queue send task - toggling the LED each time it receives the value 100. The\r
+ * queue send task writes to the queue every 200ms, so the LED should toggle\r
+ * every 200ms.\r
*/\r
\r
/* Kernel includes. */\r
\r
/* The rate at which data is sent to the queue. The 200ms value is converted\r
to ticks using the portTICK_PERIOD_MS constant. */\r
-#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS )\r
+#define mainQUEUE_SEND_FREQUENCY_MS ( pdMS_TO_TICKS( 200UL ) )\r
\r
/* The number of items the queue can hold. This is 1 as the receive task\r
will remove items as they are added, meaning the send task should always find\r
#define configUSE_PREEMPTION 1\r
#define configUSE_IDLE_HOOK 1\r
#define configUSE_TICK_HOOK 1\r
-#define configCPU_CLOCK_HZ ( 120000000UL ) /*_RB_ guess cg shows 240 and 120*/\r
-#define configPERIPHERAL_CLOCK_HZ ( 60000000UL ) /*_RB_ guess*/\r
+#define configCPU_CLOCK_HZ ( 120000000UL )\r
+#define configPERIPHERAL_CLOCK_HZ ( 60000000UL )\r
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )\r
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 140 )\r
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40 * 1024 ) )\r
+#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 )\r
+#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 50 * 1024 ) )\r
#define configMAX_TASK_NAME_LEN ( 12 )\r
#define configUSE_TRACE_FACILITY 1\r
#define configUSE_16_BIT_TICKS 0\r
#define configMAX_PRIORITIES ( 7 )\r
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
\r
+/* This demo makes use of one or more example stats formatting functions. These\r
+format the raw data provided by the uxTaskGetSystemState() function in to human\r
+readable ASCII form. See the notes in the implementation of vTaskList() within\r
+FreeRTOS/Source/tasks.c for limitations. */\r
+#define configUSE_STATS_FORMATTING_FUNCTIONS 1\r
+\r
/* Software timer definitions. */\r
#define configUSE_TIMERS 1\r
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )\r
void vAssertCalled( void );\r
#define configASSERT( x ) if( ( x ) == 0 ) { brk(); taskDISABLE_INTERRUPTS(); for( ;; ); }\r
\r
+/* The buffer into which output generated by FreeRTOS+CLI is placed. This must\r
+be at least big enough to contain the output of the task-stats command, as the\r
+example implementation does not include buffer overlow checking. */\r
+#define configCOMMAND_INT_MAX_OUTPUT_SIZE 3500\r
+#define configINCLUDE_QUERY_HEAP_COMMAND 1\r
+\r
/* Override some of the priorities set in the common demo tasks. This is\r
required to ensure flase positive timing errors are not reported. */\r
#define bktPRIMARY_PRIORITY ( configMAX_PRIORITIES - 3 )\r
#define intqHIGHER_PRIORITY ( configMAX_PRIORITIES - 3 )\r
\r
\r
-/*-----------------------------------------------------------\r
- * Ethernet configuration.\r
- *-----------------------------------------------------------*/\r
-\r
-/* MAC address configuration. */\r
-#define configMAC_ADDR0 0x00\r
-#define configMAC_ADDR1 0x12\r
-#define configMAC_ADDR2 0x13\r
-#define configMAC_ADDR3 0x10\r
-#define configMAC_ADDR4 0x15\r
-#define configMAC_ADDR5 0x11\r
-\r
-/* IP address configuration. */\r
-#define configIP_ADDR0 192\r
-#define configIP_ADDR1 168\r
-#define configIP_ADDR2 0\r
-#define configIP_ADDR3 200\r
-\r
-/* Netmask configuration. */\r
-#define configNET_MASK0 255\r
-#define configNET_MASK1 255\r
-#define configNET_MASK2 255\r
-#define configNET_MASK3 0\r
-\r
#endif /* FREERTOS_CONFIG_H */\r
*/\r
\r
/*\r
- * This file contains the non-portable and therefore RX62N specific parts of\r
- * the IntQueue standard demo task - namely the configuration of the timers\r
- * that generate the interrupts and the interrupt entry points.\r
+ * This file contains the non-portable and therefore RX specific parts of the\r
+ * IntQueue standard demo task - namely the configuration of the timers that\r
+ * generate the interrupts and the interrupt entry points.\r
*/\r
\r
/* Scheduler includes. */\r
/* Ensure interrupts do not start until full configuration is complete. */\r
portENTER_CRITICAL();\r
{\r
+ /* Give write access. */\r
SYSTEM.PRCR.WORD = 0xa502;\r
\r
/* Cascade two 8bit timer channels to generate the interrupts. \r
TMR0.TCR.BIT.CMIEA = 1;\r
TMR2.TCR.BIT.CMIEA = 1;\r
\r
- /* Map TMR0 CMIA0 interrupt to vector slot B number 128 and set\r
- priority above the kernel's priority, but below the max syscall\r
- priority. */\r
- ICU.SLIBXR128.BYTE = 3; /* Three is TMR0 compare match A. */\r
- IPR( PERIB, INTB128 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ /* Set priority and enable interrupt. */\r
+ ICU.SLIBXR128.BYTE = 3; /* Three is TMR0 compare match A. */\r
+ IPR( PERIB, INTB128 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
IEN( PERIB, INTB128 ) = 1;\r
\r
/* Ensure that the flag is set to 0, otherwise the interrupt will not be\r
IR( PERIB, INTB128 ) = 0;\r
\r
/* Do the same for TMR2, but to vector 129. */\r
- ICU.SLIBXR129.BYTE = 9; /* Nine is TMR2 compare match A. */\r
- IPR( PERIB, INTB129 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 2;\r
+ ICU.SLIBXR129.BYTE = 9; /* Nine is TMR2 compare match A. */\r
+ IPR( PERIB, INTB129 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 2;\r
IEN( PERIB, INTB129 ) = 1;\r
IR( PERIB, INTB129 ) = 0;\r
}\r
#define INT_QUEUE_TIMER_H\r
\r
void vInitialiseTimerForIntQueueTest( void );\r
-portBASE_TYPE xTimer0Handler( void );\r
-portBASE_TYPE xTimer1Handler( void );\r
+BaseType_t xTimer0Handler( void );\r
+BaseType_t xTimer1Handler( void );\r
\r
#endif\r
\r
*\r
******************************************************************************\r
*\r
- * main_full() creates all the demo application tasks and software timers, then\r
+ * main_full() creates a set of demo application tasks and software timers, then\r
* starts the scheduler. The web documentation provides more details of the\r
* standard demo application tasks, which provide no particular functionality,\r
* but do provide a good example of how to use the FreeRTOS API.\r
* In addition to the standard demo tasks, the following tasks and tests are\r
* defined and/or created within this file:\r
*\r
+ * "FreeRTOS+CLI command console" - The command console uses SCI1 for its\r
+ * input and output. The baud rate is set to 19200. Type "help" to see a list\r
+ * of registered commands. The FreeRTOS+CLI license is different to the\r
+ * FreeRTOS license, see http://www.FreeRTOS.org/cli for license and usage\r
+ * details.\r
+ *\r
* "Reg test" tasks - These fill both the core and floating point registers with\r
* known values, then check that each register maintains its expected value for\r
* the lifetime of the task. Each task uses a different set of values. The reg\r
* error in the context switching mechanism.\r
*\r
* "Check" task - The check task period is initially set to three seconds. The\r
- * task checks that all the standard demo tasks, and the register check tasks,\r
- * are not only still executing, but are executing without reporting any errors.\r
- * If the check task discovers that a task has either stalled, or reported an\r
- * error, then it changes its own execution period from the initial three\r
- * seconds, to just 200ms. The check task also toggles an LED each time it is\r
- * called. This provides a visual indication of the system status: If the LED\r
- * toggles every three seconds, then no issues have been discovered. If the LED\r
- * toggles every 200ms, then an issue has been discovered with at least one\r
- * task.\r
+ * task checks that all the standard demo tasks are not only still executing,\r
+ * but are executing without reporting any errors. If the check task discovers\r
+ * that a task has either stalled, or reported an error, then it changes its own\r
+ * execution period from the initial three seconds, to just 200ms. The check\r
+ * task also toggles an LED on each iteration of its loop. This provides a\r
+ * visual indication of the system status: If the LED toggles every three\r
+ * seconds, then no issues have been discovered. If the LED toggles every\r
+ * 200ms, then an issue has been discovered with at least one task.\r
*/\r
\r
/* Standard includes. */\r
-#include <rskrx71mdef.h>\r
#include <stdio.h>\r
\r
/* Kernel includes. */\r
#include "IntSemTest.h"\r
\r
/* Renesas includes. */\r
+#include <rskrx71mdef.h>\r
#include "r_cg_macrodriver.h"\r
#include "r_cg_userdefine.h"\r
\r
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3UL )\r
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )\r
#define mainUART_COMMAND_CONSOLE_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3UL )\r
-#define mainCOM_TEST_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )\r
#define mainQUEUE_OVERWRITE_PRIORITY ( tskIDLE_PRIORITY )\r
\r
/* The priority used by the UART command console task. */\r
#define mainUART_COMMAND_CONSOLE_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )\r
\r
-/* A block time of zero simply means "don't block". */\r
-#define mainDONT_BLOCK ( 0UL )\r
-\r
/* The period after which the check timer will expire, in ms, provided no errors\r
have been reported by any of the standard demo tasks. ms are converted to the\r
equivalent in ticks using the portTICK_PERIOD_MS constant. */\r
-#define mainNO_ERROR_CHECK_TASK_PERIOD ( 3000UL / portTICK_PERIOD_MS )\r
+#define mainNO_ERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 3000UL )\r
\r
/* The period at which the check timer will expire, in ms, if an error has been\r
reported in one of the standard demo tasks. ms are converted to the equivalent\r
in ticks using the portTICK_PERIOD_MS constant. */\r
-#define mainERROR_CHECK_TASK_PERIOD ( 200UL / portTICK_PERIOD_MS )\r
+#define mainERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 200UL )\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_1_PARAMETER ( ( void * ) 0x12121212UL )\r
-#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x12345678UL )\r
+#define mainREG_TEST_1_PARAMETER ( ( void * ) 0x12121212UL )\r
+#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x12345678UL )\r
\r
/* The base period used by the timer test tasks. */\r
#define mainTIMER_TEST_PERIOD ( 50 )\r
*/\r
static void prvPseudoRandomiser( void *pvParameters );\r
\r
+/*\r
+ * Register commands that can be used with FreeRTOS+CLI. The commands are\r
+ * defined in CLI-Commands.c and File-Related-CLI-Command.c respectively.\r
+ */\r
+extern void vRegisterSampleCLICommands( void );\r
+\r
+/*\r
+ * The task that manages the FreeRTOS+CLI input and output.\r
+ */\r
+extern void vUARTCommandConsoleStart( uint16_t usStackSize, UBaseType_t uxPriority );\r
+\r
/*-----------------------------------------------------------*/\r
\r
/* The following two variables are used to communicate the status of the\r
stops incrementing, then an error has been found. */\r
volatile unsigned long ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;\r
\r
-/* String for display in the web server. It is set to an error message if the\r
-check task detects an error. */\r
-const char *pcStatusMessage = "All tasks running without error";\r
/*-----------------------------------------------------------*/\r
\r
void main_full( void )\r
xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );\r
\r
/* Create the task that just adds a little random behaviour. */\r
- xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL );\r
+ xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 2, NULL );\r
+\r
+ /* Start the tasks that implements the command console on the UART, as\r
+ described above. */\r
+ vUARTCommandConsoleStart( mainUART_COMMAND_CONSOLE_STACK_SIZE, mainUART_COMMAND_CONSOLE_TASK_PRIORITY );\r
+\r
+ /* Register the standard CLI commands. */\r
+ vRegisterSampleCLICommands();\r
\r
/* Create the task that performs the 'check' functionality, as described at\r
the top of this file. */\r
gone wrong (it might just be that the loop back connector required\r
by the comtest tasks has not been fitted). */\r
xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;\r
- pcStatusMessage = "Error found in at least one task.";\r
}\r
}\r
}\r
\r
static void prvPseudoRandomiser( void *pvParameters )\r
{\r
-const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = ( 35 / portTICK_PERIOD_MS );\r
+const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = pdMS_TO_TICKS( 35 );\r
volatile uint32_t ulNextRand = ( uint32_t ) &pvParameters, ulValue;\r
\r
/* This task does nothing other than ensure there is a little bit of\r
Pragma directive\r
***********************************************************************************************************************/\r
/* Start user code for pragma. Do not edit comment generated here */\r
+\r
+\r
+/*\r
+ * This file originated from an example project for the RSK - it has been\r
+ * adapted to allow it to be used in the FreeRTOS demo. Functions required by\r
+ * UARTCommandConsole.c have been added.\r
+ */\r
+\r
+\r
+\r
/* End user code. Do not edit comment generated here */\r
\r
/***********************************************************************************************************************\r
#include "r_cg_macrodriver.h"\r
#include "r_cg_sci.h"\r
/* Start user code for include. Do not edit comment generated here */\r
+#include "rskrx71mdef.h"\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+#include "serial.h"\r
/* End user code. Do not edit comment generated here */\r
#include "r_cg_userdefine.h"\r
\r
extern uint16_t g_sci7_rx_count; /* SCI7 receive data number */\r
extern uint16_t g_sci7_rx_length; /* SCI7 receive data length */\r
/* Start user code for global. Do not edit comment generated here */\r
-/* Flag used locally to detect transmission complete */\r
\r
/* Global used to receive a character from the PC terminal */\r
uint8_t g_rx_char;\r
/* Flag used to control transmission to PC terminal */\r
volatile uint8_t g_tx_flag = FALSE;\r
\r
-/* Flag used locally to detect transmission complete */\r
-static volatile uint8_t sci6_txdone;\r
+/* Characters received from the UART are stored in this queue, ready to be\r
+received by the application. ***NOTE*** Using a queue in this way is very\r
+convenient, but also very inefficient. It can be used here because characters\r
+will only arrive slowly. In a higher bandwidth system a circular RAM buffer or\r
+DMA should be used in place of this queue. */\r
+static QueueHandle_t xRxQueue = NULL;\r
+\r
+/* When a task calls vSerialPutString() its handle is stored in xSendingTask,\r
+before being placed into the Blocked state (so does not use any CPU time) to\r
+wait for the transmission to end. The task handle is then used from the UART\r
+transmit end interrupt to remove the task from the Blocked state. */\r
+static TaskHandle_t xSendingTask = NULL;\r
+\r
+/* Flag used locally to detect transmission complete. This is used by the\r
+auto generated API only. */\r
static volatile uint8_t sci7_txdone;\r
\r
/* End user code. Do not edit comment generated here */\r
***********************************************************************************************************************/\r
void r_sci7_transmitend_interrupt(void)\r
{\r
- /* Set TXD7 pin */\r
+ MPC.P90PFS.BYTE = 0x00U;\r
PORT9.PMR.BYTE &= 0xFEU;\r
SCI7.SCR.BIT.TIE = 0U;\r
SCI7.SCR.BIT.TE = 0U;\r
static void r_sci7_callback_transmitend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+\r
+ /* The sci7_txdone flag is used by the auto generated API only. */\r
sci7_txdone = TRUE;\r
\r
+ if( xSendingTask != NULL )\r
+ {\r
+ /* A task is waiting for the end of the Tx, unblock it now.\r
+ http://www.freertos.org/vTaskNotifyGiveFromISR.html */\r
+ vTaskNotifyGiveFromISR( xSendingTask, &xHigherPriorityTaskWoken );\r
+ xSendingTask = NULL;\r
+\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+ }\r
/* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
static void r_sci7_callback_receiveend(void)\r
{\r
/* Start user code. Do not edit comment generated here */\r
- /* Check the contents of g_rx_char */\r
- if (('c' == g_rx_char) || ('C' == g_rx_char))\r
+ BaseType_t xHigherPriorityTaskWoken = pdFALSE;\r
+\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Transmitting generates an interrupt for each character, which consumes\r
+ CPU time, and can cause standard demo RTOS tasks that monitor their own\r
+ performance to fail asserts - so don't receive new CLI commands if a\r
+ transmit is not already in progress. */\r
+ if( sci7_txdone == TRUE )\r
{\r
-//_RB_ g_adc_trigger = TRUE;\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xQueueSendFromISR( xRxQueue, &g_rx_char, &xHigherPriorityTaskWoken );\r
}\r
\r
- /* Set up SCI7 receive buffer and callback function again */\r
+ /* Set up SCI7 receive buffer again */\r
R_SCI7_Serial_Receive((uint8_t *)&g_rx_char, 1);\r
\r
+ /* See http://www.freertos.org/xQueueOverwriteFromISR.html for information\r
+ on the semantics of this ISR. */\r
+ portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
/* End user code. Do not edit comment generated here */\r
}\r
/***********************************************************************************************************************\r
* End of function R_SCI7_AsyncTransmit\r
*******************************************************************************/\r
\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
+{\r
+ ( void ) ulWantedBaud;\r
+ ( void ) uxQueueLength;\r
+\r
+ /* Characters received from the UART are stored in this queue, ready to be\r
+ received by the application. ***NOTE*** Using a queue in this way is very\r
+ convenient, but also very inefficient. It can be used here because\r
+ characters will only arrive slowly. In a higher bandwidth system a circular\r
+ RAM buffer or DMA should be used in place of this queue. */\r
+ xRxQueue = xQueueCreate( uxQueueLength, sizeof( char ) );\r
+ configASSERT( xRxQueue );\r
+\r
+ /* Set up SCI1 receive buffer */\r
+ R_SCI7_Serial_Receive((uint8_t *) &g_rx_char, 1);\r
+\r
+ /* Ensure the interrupt priority is at or below\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ IPR(SCI7, RXI7) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ IPR(SCI7, TXI7) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+ IPR(ICU,GROUPBL0) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+\r
+ /* Enable SCI1 operations */\r
+ R_SCI7_Start();\r
+\r
+ /* Only one UART is supported, so it doesn't matter what is returned\r
+ here. */\r
+ return 0;\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )\r
+{\r
+const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 );\r
+\r
+ /* Only one port is supported. */\r
+ ( void ) pxPort;\r
+\r
+ /* Clear the flag before initiating a new transmission */\r
+ sci7_txdone = FALSE;\r
+\r
+ /* Don't send the string unless the previous string has been sent. */\r
+ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) )\r
+ {\r
+ /* Ensure the calling task's notification state is not already\r
+ pending. */\r
+ vTaskNotifyStateClear( NULL );\r
+\r
+ /* Store the handle of the transmitting task. This is used to unblock\r
+ the task when the transmission has completed. */\r
+ xSendingTask = xTaskGetCurrentTaskHandle();\r
+\r
+ /* Send the string using the auto-generated API. */\r
+ R_SCI7_Serial_Send( ( uint8_t * ) pcString, usStringLength );\r
+\r
+ /* Wait in the Blocked state (so not using any CPU time) until the\r
+ transmission has completed. */\r
+ ulTaskNotifyTake( pdTRUE, xMaxBlockTime );\r
+ }\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
+{\r
+ /* Only one UART is supported. */\r
+ ( void ) pxPort;\r
+\r
+ /* Return a received character, if any are available. Otherwise block to\r
+ wait for a character. */\r
+ return xQueueReceive( xRxQueue, pcRxedChar, xBlockTime );\r
+}\r
+\r
+/* Function required in order to link UARTCommandConsole.c - which is used by\r
+multiple different demo application. */\r
+signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
+{\r
+ /* Just mapped to vSerialPutString() so the block time is not used. */\r
+ ( void ) xBlockTime;\r
+\r
+ vSerialPutString( pxPort, &cOutChar, sizeof( cOutChar ) );\r
+ return pdPASS;\r
+}\r
\r
/* End user code. Do not edit comment generated here */\r
\r
/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,\r
or 0 to run the more comprehensive test and demo application. */\r
-#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0\r
+#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1\r
\r
/*-----------------------------------------------------------*/\r
\r
}\r
#endif\r
\r
+ /* Should never get reached. */\r
return 0;\r
}\r
/*-----------------------------------------------------------*/\r
\r
void vApplicationTickHook( void )\r
{\r
+ /* The tick hook is not used by the blinky demo, but is by the full demo. */\r
#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0\r
{\r
extern void vFullDemoTickHook( void );\r
/*-----------------------------------------------------------*/\r
\r
/* The RX port uses this callback function to configure its tick interrupt.\r
-This allows the application to choose the tick interrupt source. */\r
+This allows the application to choose the tick interrupt source.\r
+***NOTE***: configTICK_VECTOR must be set in FreeRTOSConfig.h to be correct for\r
+whichever vector is used. */\r
void vApplicationSetupTimerInterrupt( void )\r
{\r
const uint32_t ulEnableRegisterWrite = 0xA50BUL, ulDisableRegisterWrite = 0xA500UL;\r
#define xList List_t\r
#endif /* configENABLE_BACKWARD_COMPATIBILITY */\r
\r
+/* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even\r
+if floating point hardware is otherwise supported by the FreeRTOS port in use.\r
+This constant is not supported by all FreeRTOS ports that include floating \r
+point support. */\r
+#ifndef configUSE_TASK_FPU_SUPPORT\r
+ #define configUSE_TASK_FPU_SUPPORT 1\r
+#endif\r
+ \r
#ifdef __cplusplus\r
}\r
#endif\r
\r
/*-----------------------------------------------------------*/\r
\r
-#if( configCHECK_FOR_STACK_OVERFLOW == 0 )\r
-\r
- /* FreeRTOSConfig.h is not set to check for stack overflows. */\r
- #define taskFIRST_CHECK_FOR_STACK_OVERFLOW()\r
- #define taskSECOND_CHECK_FOR_STACK_OVERFLOW()\r
-\r
-#endif /* configCHECK_FOR_STACK_OVERFLOW == 0 */\r
-/*-----------------------------------------------------------*/\r
-\r
-#if( configCHECK_FOR_STACK_OVERFLOW == 1 )\r
-\r
- /* FreeRTOSConfig.h is only set to use the first method of\r
- overflow checking. */\r
- #define taskSECOND_CHECK_FOR_STACK_OVERFLOW()\r
-\r
-#endif\r
-/*-----------------------------------------------------------*/\r
-\r
-#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH < 0 ) )\r
+#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) )\r
\r
/* Only the current stack state is to be checked. */\r
- #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \\r
+ #define taskCHECK_FOR_STACK_OVERFLOW() \\r
{ \\r
/* Is the currently saved stack pointer within the stack limit? */ \\r
if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \\r
} \\r
}\r
\r
-#endif /* configCHECK_FOR_STACK_OVERFLOW > 0 */\r
+#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */\r
/*-----------------------------------------------------------*/\r
\r
-#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH > 0 ) )\r
+#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH > 0 ) )\r
\r
/* Only the current stack state is to be checked. */\r
- #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \\r
+ #define taskCHECK_FOR_STACK_OVERFLOW() \\r
{ \\r
\\r
/* Is the currently saved stack pointer within the stack limit? */ \\r
\r
#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) )\r
\r
- #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \\r
- { \\r
- static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \\r
- tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \\r
- tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \\r
- tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \\r
- tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \\r
- \\r
- \\r
- /* Has the extremity of the task stack ever been written over? */ \\r
- if( memcmp( ( const void * ) pxCurrentTCB->pxStack, ( const void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \\r
- { \\r
- vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \\r
- } \\r
+ #define taskCHECK_FOR_STACK_OVERFLOW() \\r
+ { \\r
+ const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack; \\r
+ const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; \\r
+ \\r
+ if( ( pulStack[ 0 ] != ulCheckValue ) || \\r
+ ( pulStack[ 1 ] != ulCheckValue ) || \\r
+ ( pulStack[ 2 ] != ulCheckValue ) || \\r
+ ( pulStack[ 3 ] != ulCheckValue ) ) \\r
+ { \\r
+ vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \\r
+ } \\r
}\r
\r
#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */\r
\r
#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) )\r
\r
- #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \\r
+ #define taskCHECK_FOR_STACK_OVERFLOW() \\r
{ \\r
int8_t *pcEndOfStack = ( int8_t * ) pxCurrentTCB->pxEndOfStack; \\r
static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \\r
#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */\r
/*-----------------------------------------------------------*/\r
\r
+/* Remove stack overflow macro if not being used. */\r
+#ifndef taskCHECK_FOR_STACK_OVERFLOW\r
+ #define taskCHECK_FOR_STACK_OVERFLOW()\r
+#endif\r
+\r
+\r
+\r
#endif /* STACK_MACROS_H */\r
\r
*/\r
uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;\r
\r
+/**\r
+ * task. h\r
+ * <PRE>void vTaskNotifyClear( TaskHandle_t xTask );</pre>\r
+ *\r
+ * Clear the notification state of the task referenced by the handle xTask. The\r
+ * task's notification value is not altered. Set xTask to NULL to clear the\r
+ * notification state of the calling task.\r
+ * \defgroup vTaskNotifyClear vTaskNotifyClear\r
+ * \ingroup TaskNotifications\r
+ */\r
+void vTaskNotifyStateClear( TaskHandle_t xTask );\r
+\r
/*-----------------------------------------------------------\r
* SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES\r
*----------------------------------------------------------*/\r
#include "string.h"\r
\r
/* Hardware specifics. */\r
-#warning RX600v1 port included chip specific header file here.\r
#include <machine.h>\r
\r
/*-----------------------------------------------------------*/\r
\r
#include "FreeRTOSConfig.h"\r
\r
-#define portCONTEXT_SIZE 160\r
-#define portEPC_STACK_LOCATION 152\r
-#define portSTATUS_STACK_LOCATION 156\r
+#define portCONTEXT_SIZE 160\r
+#define portEPC_STACK_LOCATION 152\r
+#define portSTATUS_STACK_LOCATION 156\r
+#define portFPCSR_STACK_LOCATION 0\r
+#define portTASK_HAS_FPU_STACK_LOCATION 0\r
+#define portFPU_CONTEXT_SIZE 264\r
+\r
+/******************************************************************/\r
+.macro portSAVE_FPU_REGS offset, base\r
+ /* Macro to assist with saving just the FPU registers to the\r
+ * specified address and base offset,\r
+ * offset is a constant, base is the base pointer register */\r
+\r
+ sdc1 $f31, \offset + 248(\base)\r
+ sdc1 $f30, \offset + 240(\base)\r
+ sdc1 $f29, \offset + 232(\base)\r
+ sdc1 $f28, \offset + 224(\base)\r
+ sdc1 $f27, \offset + 216(\base)\r
+ sdc1 $f26, \offset + 208(\base)\r
+ sdc1 $f25, \offset + 200(\base)\r
+ sdc1 $f24, \offset + 192(\base)\r
+ sdc1 $f23, \offset + 184(\base)\r
+ sdc1 $f22, \offset + 176(\base)\r
+ sdc1 $f21, \offset + 168(\base)\r
+ sdc1 $f20, \offset + 160(\base)\r
+ sdc1 $f19, \offset + 152(\base)\r
+ sdc1 $f18, \offset + 144(\base)\r
+ sdc1 $f17, \offset + 136(\base)\r
+ sdc1 $f16, \offset + 128(\base)\r
+ sdc1 $f15, \offset + 120(\base)\r
+ sdc1 $f14, \offset + 112(\base)\r
+ sdc1 $f13, \offset + 104(\base)\r
+ sdc1 $f12, \offset + 96(\base)\r
+ sdc1 $f11, \offset + 88(\base)\r
+ sdc1 $f10, \offset + 80(\base)\r
+ sdc1 $f9, \offset + 72(\base)\r
+ sdc1 $f8, \offset + 64(\base)\r
+ sdc1 $f7, \offset + 56(\base)\r
+ sdc1 $f6, \offset + 48(\base)\r
+ sdc1 $f5, \offset + 40(\base)\r
+ sdc1 $f4, \offset + 32(\base)\r
+ sdc1 $f3, \offset + 24(\base)\r
+ sdc1 $f2, \offset + 16(\base)\r
+ sdc1 $f1, \offset + 8(\base)\r
+ sdc1 $f0, \offset + 0(\base)\r
+\r
+ .endm\r
+\r
+/******************************************************************/\r
+.macro portLOAD_FPU_REGS offset, base\r
+ /* Macro to assist with loading just the FPU registers from the\r
+ * specified address and base offset, offset is a constant,\r
+ * base is the base pointer register */\r
+\r
+ ldc1 $f0, \offset + 0(\base)\r
+ ldc1 $f1, \offset + 8(\base)\r
+ ldc1 $f2, \offset + 16(\base)\r
+ ldc1 $f3, \offset + 24(\base)\r
+ ldc1 $f4, \offset + 32(\base)\r
+ ldc1 $f5, \offset + 40(\base)\r
+ ldc1 $f6, \offset + 48(\base)\r
+ ldc1 $f7, \offset + 56(\base)\r
+ ldc1 $f8, \offset + 64(\base)\r
+ ldc1 $f9, \offset + 72(\base)\r
+ ldc1 $f10, \offset + 80(\base)\r
+ ldc1 $f11, \offset + 88(\base)\r
+ ldc1 $f12, \offset + 96(\base)\r
+ ldc1 $f13, \offset + 104(\base)\r
+ ldc1 $f14, \offset + 112(\base)\r
+ ldc1 $f15, \offset + 120(\base)\r
+ ldc1 $f16, \offset + 128(\base)\r
+ ldc1 $f17, \offset + 136(\base)\r
+ ldc1 $f18, \offset + 144(\base)\r
+ ldc1 $f19, \offset + 152(\base)\r
+ ldc1 $f20, \offset + 160(\base)\r
+ ldc1 $f21, \offset + 168(\base)\r
+ ldc1 $f22, \offset + 176(\base)\r
+ ldc1 $f23, \offset + 184(\base)\r
+ ldc1 $f24, \offset + 192(\base)\r
+ ldc1 $f25, \offset + 200(\base)\r
+ ldc1 $f26, \offset + 208(\base)\r
+ ldc1 $f27, \offset + 216(\base)\r
+ ldc1 $f28, \offset + 224(\base)\r
+ ldc1 $f29, \offset + 232(\base)\r
+ ldc1 $f30, \offset + 240(\base)\r
+ ldc1 $f31, \offset + 248(\base)\r
+\r
+ .endm\r
\r
/******************************************************************/\r
.macro portSAVE_CONTEXT\r
captured. */\r
mfc0 k0, _CP0_CAUSE\r
addiu sp, sp, -portCONTEXT_SIZE\r
+\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ /* Test if we are already using the system stack. Only tasks may use the\r
+ FPU so if we are already in a nested interrupt then the FPU context does\r
+ not require saving. */\r
+ la k1, uxInterruptNesting\r
+ lw k1, 0(k1)\r
+ bne k1, zero, 2f\r
+ nop\r
+\r
+ /* Test if the current task needs the FPU context saving. */\r
+ la k1, ulTaskHasFPUContext\r
+ lw k1, 0(k1)\r
+ beq k1, zero, 1f\r
+ nop\r
+\r
+ /* Adjust the stack to account for the additional FPU context.*/\r
+ addiu sp, sp, -portFPU_CONTEXT_SIZE\r
+\r
+ 1:\r
+ /* Save the ulTaskHasFPUContext flag. */\r
+ sw k1, portTASK_HAS_FPU_STACK_LOCATION(sp)\r
+\r
+ 2:\r
+ #endif\r
+\r
mfc0 k1, _CP0_STATUS\r
\r
- /* Also save s6 and s5 so they can be used. Any nesting interrupts should\r
- maintain the values of these registers across the ISR. */\r
+ /* Also save s7, s6 and s5 so they can be used. Any nesting interrupts\r
+ should maintain the values of these registers across the ISR. */\r
+ sw s7, 48(sp)\r
sw s6, 44(sp)\r
sw s5, 40(sp)\r
sw k1, portSTATUS_STACK_LOCATION(sp)\r
mflo s6, $ac0\r
sw s6, 8(s5)\r
\r
+ /* Save the FPU context if the nesting count was zero. */\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ la s6, uxInterruptNesting\r
+ lw s6, 0(s6)\r
+ addiu s6, s6, -1\r
+ bne s6, zero, 1f\r
+ nop\r
+\r
+ /* Test if the current task needs the FPU context saving. */\r
+ lw s6, portTASK_HAS_FPU_STACK_LOCATION(s5)\r
+ beq s6, zero, 1f\r
+ nop\r
+\r
+ /* Save the FPU registers. */\r
+ portSAVE_FPU_REGS ( portCONTEXT_SIZE + 8 ), s5\r
+\r
+ /* Save the FPU status register */\r
+ cfc1 s6, $f31\r
+ sw s6, (portCONTEXT_SIZE + portFPCSR_STACK_LOCATION)(s5)\r
+\r
+ 1:\r
+ #endif\r
+\r
/* Update the task stack pointer value if nesting is zero. */\r
la s6, uxInterruptNesting\r
lw s6, (s6)\r
la s6, uxSavedTaskStackPointer\r
lw s5, (s6)\r
\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ /* Restore the FPU context if required. */\r
+ lw s6, portTASK_HAS_FPU_STACK_LOCATION(s5)\r
+ beq s6, zero, 1f\r
+ nop\r
+\r
+ /* Restore the FPU registers. */\r
+ portLOAD_FPU_REGS ( portCONTEXT_SIZE + 8 ), s5\r
+\r
+ /* Restore the FPU status register. */\r
+ lw s6, ( portCONTEXT_SIZE + portFPCSR_STACK_LOCATION )(s5)\r
+ ctc1 s6, $f31\r
+ #endif\r
+\r
+1:\r
+\r
/* Restore the context. */\r
-1: lw s6, 128(s5)\r
+ lw s6, 128(s5)\r
mthi s6, $ac1\r
lw s6, 124(s5)\r
mtlo s6, $ac1\r
lw s6, 144(s5)\r
mthi s6, $ac3\r
lw s6, 140(s5)\r
- mtlo s6, $ac3\r
+ mtlo s6, $ac3\r
\r
/* Restore DSPControl. */\r
lw s6, 148(s5)\r
\r
/* s6 is loaded as it was used as a scratch register and therefore saved\r
as part of the interrupt context. */\r
+ lw s7, 48(s5)\r
lw s6, 44(s5)\r
lw v0, 52(s5)\r
lw v1, 56(s5)\r
addiu k1, k1, -1\r
sw k1, 0(k0)\r
\r
- lw k0, portSTATUS_STACK_LOCATION(s5)\r
- lw k1, portEPC_STACK_LOCATION(s5)\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ /* If the nesting count is now zero then the FPU context may be restored. */\r
+ bne k1, zero, 1f\r
+ nop\r
+\r
+ /* Restore the value of ulTaskHasFPUContext */\r
+ la k0, ulTaskHasFPUContext\r
+ lw k1, 0(s5)\r
+ sw k1, 0(k0)\r
+\r
+ /* If the task does not have an FPU context then adjust the stack normally. */\r
+ beq k1, zero, 1f\r
+ nop\r
+\r
+ /* Restore the STATUS and EPC registers */\r
+ lw k0, portSTATUS_STACK_LOCATION(s5)\r
+ lw k1, portEPC_STACK_LOCATION(s5)\r
+\r
+ /* Leave the stack in its original state. First load sp from s5, then\r
+ restore s5 from the stack. */\r
+ add sp, zero, s5\r
+ lw s5, 40(sp)\r
+\r
+ /* Adjust the stack pointer to remove the FPU context */\r
+ addiu sp, sp, portFPU_CONTEXT_SIZE\r
+ beq zero, zero, 2f\r
+ nop\r
+\r
+ 1: /* Restore the STATUS and EPC registers */\r
+ lw k0, portSTATUS_STACK_LOCATION(s5)\r
+ lw k1, portEPC_STACK_LOCATION(s5)\r
+\r
+ /* Leave the stack in its original state. First load sp from s5, then\r
+ restore s5 from the stack. */\r
+ add sp, zero, s5\r
+ lw s5, 40(sp)\r
+\r
+ 2: /* Adjust the stack pointer */\r
+ addiu sp, sp, portCONTEXT_SIZE\r
+\r
+ #else\r
+\r
+ /* Restore the frame when there is no hardware FP support. */\r
+ lw k0, portSTATUS_STACK_LOCATION(s5)\r
+ lw k1, portEPC_STACK_LOCATION(s5)\r
+\r
+ /* Leave the stack in its original state. First load sp from s5, then\r
+ restore s5 from the stack. */\r
+ add sp, zero, s5\r
+ lw s5, 40(sp)\r
+\r
+ addiu sp, sp, portCONTEXT_SIZE\r
\r
- /* Leave the stack in its original state. First load sp from s5, then\r
- restore s5 from the stack. */\r
- add sp, zero, s5\r
- lw s5, 40(sp)\r
- addiu sp, sp, portCONTEXT_SIZE\r
+ #endif // ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
\r
mtc0 k0, _CP0_STATUS\r
mtc0 k1, _CP0_EPC\r
#define portIE_BIT ( 0x00000001 )\r
#define portEXL_BIT ( 0x00000002 )\r
#define portMX_BIT ( 0x01000000 ) /* Allow access to DSP instructions. */\r
+#define portCU1_BIT ( 0x20000000 ) /* enable CP1 for parts with hardware. */\r
+#define portFR_BIT ( 0x04000000 ) /* Enable 64 bit floating point registers. */\r
\r
/* Bits within the CAUSE register. */\r
#define portCORE_SW_0 ( 0x00000100 )\r
\r
/* The EXL bit is set to ensure interrupts do not occur while the context of\r
the first task is being restored. */\r
-#define portINITIAL_SR ( portIE_BIT | portEXL_BIT | portMX_BIT )\r
+#if ( __mips_hard_float == 1 )\r
+ #define portINITIAL_SR ( portIE_BIT | portEXL_BIT | portMX_BIT | portFR_BIT | portCU1_BIT )\r
+#else\r
+ #define portINITIAL_SR ( portIE_BIT | portEXL_BIT | portMX_BIT )\r
+#endif\r
+\r
+/* The initial value to store into the FPU status and control register. This is\r
+ only used on parts that support a hardware FPU. */\r
+#define portINITIAL_FPSCR (0x1000000) /* High perf on denormal ops */\r
+\r
\r
/*\r
By default port.c generates its tick interrupt from TIMER1. The user can\r
the callers stack, as some functions seem to want to do this. */\r
const StackType_t * const xISRStackTop = &( xISRStack[ configISR_STACK_SIZE - 7 ] );\r
\r
+/* Saved as part of the task context. Set to pdFALSE if the task does not\r
+ require an FPU context. */\r
+#if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ uint32_t ulTaskHasFPUContext = 0;\r
+#endif\r
+\r
/*-----------------------------------------------------------*/\r
\r
/*\r
*/\r
StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters )\r
{\r
- /* Ensure byte alignment is maintained when leaving this function. */\r
+ /* Ensure 8 byte alignment is maintained when leaving this function. */\r
+ pxTopOfStack--;\r
pxTopOfStack--;\r
\r
*pxTopOfStack = (StackType_t) 0xDEADBEEF;\r
pxTopOfStack--;\r
\r
*pxTopOfStack = (StackType_t) pxCode; /* CP0_EPC */\r
- pxTopOfStack -= 7; /* Includes space for AC1 - AC3. */\r
-\r
- *pxTopOfStack = (StackType_t) 0x00000000; /* DSPControl */\r
pxTopOfStack--;\r
+ \r
+ *pxTopOfStack = (StackType_t) 0x00000000; /* DSPControl */ \r
+ pxTopOfStack -= 7; /* Includes space for AC1 - AC3. */\r
\r
*pxTopOfStack = (StackType_t) portTASK_RETURN_ADDRESS; /* ra */\r
pxTopOfStack -= 15;\r
*pxTopOfStack = (StackType_t) pvParameters; /* Parameters to pass in. */\r
pxTopOfStack -= 15;\r
\r
+ *pxTopOfStack = (StackType_t) pdFALSE; /*by default disable FPU context save on parts with FPU */\r
+ \r
return pxTopOfStack;\r
}\r
/*-----------------------------------------------------------*/\r
}\r
/*-----------------------------------------------------------*/\r
\r
+#if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+\r
+ void vPortTaskUsesFPU(void)\r
+ {\r
+ extern void vPortInitialiseFPSCR( uint32_t uxFPSCRInit );\r
+\r
+ portENTER_CRITICAL();\r
+ \r
+ /* Initialise the floating point status register. */\r
+ vPortInitialiseFPSCR(portINITIAL_FPSCR); \r
+ \r
+ /* A task is registering the fact that it needs a FPU context. Set the\r
+ FPU flag (saved as part of the task context). */\r
+ ulTaskHasFPUContext = pdTRUE;\r
+ \r
+ portEXIT_CRITICAL();\r
+ }\r
+\r
+#endif /* __mips_hard_float == 1 */\r
+\r
+/*-----------------------------------------------------------*/\r
\r
\r
\r
.extern vTaskSwitchContext\r
.extern vPortIncrementTick\r
.extern xISRStackTop\r
+ .extern ulTaskHasFPUContext\r
\r
.global vPortStartFirstTask\r
.global vPortYieldISR\r
.global vPortTickInterruptHandler\r
+ .global vPortInitialiseFPSCR\r
\r
\r
/******************************************************************/\r
.ent vPortYieldISR\r
vPortYieldISR:\r
\r
- /* Make room for the context. First save the current status so it can be\r
- manipulated, and the cause and EPC registers so thier original values are\r
- captured. */\r
- addiu sp, sp, -portCONTEXT_SIZE\r
- mfc0 k1, _CP0_STATUS\r
-\r
- /* Also save s6 and s5 so they can be used. Any nesting interrupts should\r
- maintain the values of these registers across the ISR. */\r
- sw s6, 44(sp)\r
- sw s5, 40(sp)\r
- sw k1, portSTATUS_STACK_LOCATION(sp)\r
-\r
- /* Prepare to re-enabled interrupts above the kernel priority. */\r
- ins k1, zero, 10, 7 /* Clear IPL bits 0:6. */\r
- ins k1, zero, 18, 1 /* Clear IPL bit 7. It would be an error here if this bit were set anyway. */\r
- ori k1, k1, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 )\r
- ins k1, zero, 1, 4 /* Clear EXL, ERL and UM. */\r
-\r
- /* s5 is used as the frame pointer. */\r
- add s5, zero, sp\r
-\r
- /* Swap to the system stack. This is not conditional on the nesting\r
- count as this interrupt is always the lowest priority and therefore\r
- the nesting is always 0. */\r
- la sp, xISRStackTop\r
- lw sp, (sp)\r
-\r
- /* Set the nesting count. */\r
- la k0, uxInterruptNesting\r
- addiu s6, zero, 1\r
- sw s6, 0(k0)\r
-\r
- /* s6 holds the EPC value, this is saved with the rest of the context\r
- after interrupts are enabled. */\r
- mfc0 s6, _CP0_EPC\r
-\r
- /* Re-enable interrupts above configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
- mtc0 k1, _CP0_STATUS\r
-\r
- /* Save the context into the space just created. s6 is saved again\r
- here as it now contains the EPC value. */\r
- sw ra, 120(s5)\r
- sw s8, 116(s5)\r
- sw t9, 112(s5)\r
- sw t8, 108(s5)\r
- sw t7, 104(s5)\r
- sw t6, 100(s5)\r
- sw t5, 96(s5)\r
- sw t4, 92(s5)\r
- sw t3, 88(s5)\r
- sw t2, 84(s5)\r
- sw t1, 80(s5)\r
- sw t0, 76(s5)\r
- sw a3, 72(s5)\r
- sw a2, 68(s5)\r
- sw a1, 64(s5)\r
- sw a0, 60(s5)\r
- sw v1, 56(s5)\r
- sw v0, 52(s5)\r
- sw s7, 48(s5)\r
- sw s6, portEPC_STACK_LOCATION(s5)\r
- /* s5 and s6 has already been saved. */\r
- sw s4, 36(s5)\r
- sw s3, 32(s5)\r
- sw s2, 28(s5)\r
- sw s1, 24(s5)\r
- sw s0, 20(s5)\r
- sw $1, 16(s5)\r
-\r
- /* s7 is used as a scratch register as this should always be saved across\r
- nesting interrupts. */\r
-\r
- /* Save the AC0, AC1, AC2 and AC3. */\r
- mfhi s7, $ac1\r
- sw s7, 128(s5)\r
- mflo s7, $ac1\r
- sw s7, 124(s5)\r
-\r
- mfhi s7, $ac2\r
- sw s7, 136(s5)\r
- mflo s7, $ac2\r
- sw s7, 132(s5)\r
-\r
- mfhi s7, $ac3\r
- sw s7, 144(s5)\r
- mflo s7, $ac3\r
- sw s7, 140(s5)\r
-\r
- rddsp s7\r
- sw s7, 148(s5)\r
-\r
- mfhi s7, $ac0\r
- sw s7, 12(s5)\r
- mflo s7, $ac0\r
- sw s7, 8(s5)\r
-\r
- /* Save the stack pointer to the task. */\r
- la s7, pxCurrentTCB\r
- lw s7, (s7)\r
- sw s5, (s7)\r
-\r
- /* Set the interrupt mask to the max priority that can use the API. The\r
- yield handler will only be called at configKERNEL_INTERRUPT_PRIORITY which\r
- is below configMAX_SYSCALL_INTERRUPT_PRIORITY - so this can only ever\r
- raise the IPL value and never lower it. */\r
- di\r
- ehb\r
- mfc0 s7, _CP0_STATUS\r
- ins s7, zero, 10, 7\r
- ins s7, zero, 18, 1\r
- ori s6, s7, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 ) | 1\r
-\r
- /* This mtc0 re-enables interrupts, but only above\r
- configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
- mtc0 s6, _CP0_STATUS\r
- ehb\r
+ #if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ /* Code sequence for FPU support, the context save requires advance\r
+ knowledge of the stack frame size and if the current task actually uses the \r
+ FPU. */\r
+\r
+ /* Make room for the context. First save the current status so it can be\r
+ manipulated, and the cause and EPC registers so their original values are\r
+ captured. */\r
+ la k0, ulTaskHasFPUContext\r
+ lw k0, 0(k0)\r
+ beq k0, zero, 1f\r
+ addiu sp, sp, -portCONTEXT_SIZE /* always reserve space for the context. */\r
+ addiu sp, sp, -portFPU_CONTEXT_SIZE /* reserve additional space for the FPU context. */\r
+ 1:\r
+ mfc0 k1, _CP0_STATUS\r
+\r
+ /* Also save s6 and s5 so they can be used. Any nesting interrupts should\r
+ maintain the values of these registers across the ISR. */\r
+ sw s6, 44(sp)\r
+ sw s5, 40(sp)\r
+ sw k1, portSTATUS_STACK_LOCATION(sp)\r
+ sw k0, portTASK_HAS_FPU_STACK_LOCATION(sp)\r
+\r
+ /* Prepare to re-enabled interrupts above the kernel priority. */\r
+ ins k1, zero, 10, 7 /* Clear IPL bits 0:6. */\r
+ ins k1, zero, 18, 1 /* Clear IPL bit 7. It would be an error here if this bit were set anyway. */\r
+ ori k1, k1, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 )\r
+ ins k1, zero, 1, 4 /* Clear EXL, ERL and UM. */\r
+\r
+ /* s5 is used as the frame pointer. */\r
+ add s5, zero, sp\r
+\r
+ /* Swap to the system stack. This is not conditional on the nesting\r
+ count as this interrupt is always the lowest priority and therefore\r
+ the nesting is always 0. */\r
+ la sp, xISRStackTop\r
+ lw sp, (sp)\r
+\r
+ /* Set the nesting count. */\r
+ la k0, uxInterruptNesting\r
+ addiu s6, zero, 1\r
+ sw s6, 0(k0)\r
+\r
+ /* s6 holds the EPC value, this is saved with the rest of the context\r
+ after interrupts are enabled. */\r
+ mfc0 s6, _CP0_EPC\r
+\r
+ /* Re-enable interrupts above configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ mtc0 k1, _CP0_STATUS\r
+\r
+ /* Save the context into the space just created. s6 is saved again\r
+ here as it now contains the EPC value. */\r
+ sw ra, 120(s5)\r
+ sw s8, 116(s5)\r
+ sw t9, 112(s5)\r
+ sw t8, 108(s5)\r
+ sw t7, 104(s5)\r
+ sw t6, 100(s5)\r
+ sw t5, 96(s5)\r
+ sw t4, 92(s5)\r
+ sw t3, 88(s5)\r
+ sw t2, 84(s5)\r
+ sw t1, 80(s5)\r
+ sw t0, 76(s5)\r
+ sw a3, 72(s5)\r
+ sw a2, 68(s5)\r
+ sw a1, 64(s5)\r
+ sw a0, 60(s5)\r
+ sw v1, 56(s5)\r
+ sw v0, 52(s5)\r
+ sw s7, 48(s5)\r
+ sw s6, portEPC_STACK_LOCATION(s5)\r
+ /* s5 and s6 has already been saved. */\r
+ sw s4, 36(s5)\r
+ sw s3, 32(s5)\r
+ sw s2, 28(s5)\r
+ sw s1, 24(s5)\r
+ sw s0, 20(s5)\r
+ sw $1, 16(s5)\r
+\r
+ /* s7 is used as a scratch register as this should always be saved across\r
+ nesting interrupts. */\r
+\r
+ /* Save the AC0, AC1, AC2 and AC3. */\r
+ mfhi s7, $ac1\r
+ sw s7, 128(s5)\r
+ mflo s7, $ac1\r
+ sw s7, 124(s5)\r
+\r
+ mfhi s7, $ac2\r
+ sw s7, 136(s5)\r
+ mflo s7, $ac2\r
+ sw s7, 132(s5)\r
+\r
+ mfhi s7, $ac3\r
+ sw s7, 144(s5)\r
+ mflo s7, $ac3\r
+ sw s7, 140(s5)\r
+\r
+ rddsp s7\r
+ sw s7, 148(s5)\r
+\r
+ mfhi s7, $ac0\r
+ sw s7, 12(s5)\r
+ mflo s7, $ac0\r
+ sw s7, 8(s5)\r
+\r
+ /* Test if FPU context save is required. */\r
+ lw s7, portTASK_HAS_FPU_STACK_LOCATION(s5)\r
+ beq s7, zero, 1f\r
+ nop\r
+\r
+ /* Save the FPU registers above the normal context. */\r
+ portSAVE_FPU_REGS (portCONTEXT_SIZE + 8), s5\r
+\r
+ /* Save the FPU status register */\r
+ cfc1 s7, $f31\r
+ sw s7, ( portCONTEXT_SIZE + portFPCSR_STACK_LOCATION )(s5)\r
+\r
+ 1:\r
+ /* Save the stack pointer to the task. */\r
+ la s7, pxCurrentTCB\r
+ lw s7, (s7)\r
+ sw s5, (s7)\r
+\r
+ /* Set the interrupt mask to the max priority that can use the API. The\r
+ yield handler will only be called at configKERNEL_INTERRUPT_PRIORITY which\r
+ is below configMAX_SYSCALL_INTERRUPT_PRIORITY - so this can only ever\r
+ raise the IPL value and never lower it. */\r
+ di\r
+ ehb\r
+ mfc0 s7, _CP0_STATUS\r
+ ins s7, zero, 10, 7\r
+ ins s7, zero, 18, 1\r
+ ori s6, s7, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 ) | 1\r
+\r
+ /* This mtc0 re-enables interrupts, but only above\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ mtc0 s6, _CP0_STATUS\r
+ ehb\r
+\r
+ /* Clear the software interrupt in the core. */\r
+ mfc0 s6, _CP0_CAUSE\r
+ ins s6, zero, 8, 1\r
+ mtc0 s6, _CP0_CAUSE\r
+ ehb\r
+\r
+ /* Clear the interrupt in the interrupt controller. */\r
+ la s6, IFS0CLR\r
+ addiu s4, zero, 2\r
+ sw s4, (s6)\r
+\r
+ jal vTaskSwitchContext\r
+ nop\r
+\r
+ /* Clear the interrupt mask again. The saved status value is still in s7. */\r
+ mtc0 s7, _CP0_STATUS\r
+ ehb\r
+\r
+ /* Restore the stack pointer from the TCB. */\r
+ la s0, pxCurrentTCB\r
+ lw s0, (s0)\r
+ lw s5, (s0)\r
+\r
+ /* Test if the FPU context needs restoring. */\r
+ lw s0, portTASK_HAS_FPU_STACK_LOCATION(s5)\r
+ beq s0, zero, 1f\r
+ nop\r
+\r
+ /* Restore the FPU status register. */\r
+ lw s0, ( portCONTEXT_SIZE + portFPCSR_STACK_LOCATION )(s5)\r
+ ctc1 s0, $f31\r
+\r
+ /* Restore the FPU registers. */\r
+ portLOAD_FPU_REGS ( portCONTEXT_SIZE + 8 ), s5\r
+\r
+ 1:\r
+ /* Restore the rest of the context. */\r
+ lw s0, 128(s5)\r
+ mthi s0, $ac1\r
+ lw s0, 124(s5)\r
+ mtlo s0, $ac1\r
+\r
+ lw s0, 136(s5)\r
+ mthi s0, $ac2\r
+ lw s0, 132(s5)\r
+ mtlo s0, $ac2\r
+\r
+ lw s0, 144(s5)\r
+ mthi s0, $ac3\r
+ lw s0, 140(s5)\r
+ mtlo s0, $ac3\r
+\r
+ lw s0, 148(s5)\r
+ wrdsp s0\r
+\r
+ lw s0, 8(s5)\r
+ mtlo s0, $ac0\r
+ lw s0, 12(s5)\r
+ mthi s0, $ac0\r
+\r
+ lw $1, 16(s5)\r
+ lw s0, 20(s5)\r
+ lw s1, 24(s5)\r
+ lw s2, 28(s5)\r
+ lw s3, 32(s5)\r
+ lw s4, 36(s5)\r
+\r
+ /* s5 is loaded later. */\r
+ lw s6, 44(s5)\r
+ lw s7, 48(s5)\r
+ lw v0, 52(s5)\r
+ lw v1, 56(s5)\r
+ lw a0, 60(s5)\r
+ lw a1, 64(s5)\r
+ lw a2, 68(s5)\r
+ lw a3, 72(s5)\r
+ lw t0, 76(s5)\r
+ lw t1, 80(s5)\r
+ lw t2, 84(s5)\r
+ lw t3, 88(s5)\r
+ lw t4, 92(s5)\r
+ lw t5, 96(s5)\r
+ lw t6, 100(s5)\r
+ lw t7, 104(s5)\r
+ lw t8, 108(s5)\r
+ lw t9, 112(s5)\r
+ lw s8, 116(s5)\r
+ lw ra, 120(s5)\r
+\r
+ /* Protect access to the k registers, and others. */\r
+ di\r
+ ehb\r
+\r
+ /* Set nesting back to zero. As the lowest priority interrupt this\r
+ interrupt cannot have nested. */\r
+ la k0, uxInterruptNesting\r
+ sw zero, 0(k0)\r
+\r
+ /* Switch back to use the real stack pointer. */\r
+ add sp, zero, s5\r
+\r
+ /* Restore the real s5 value. */\r
+ lw s5, 40(sp)\r
+\r
+ /* Pop the FPU context value from the stack */\r
+ lw k0, portTASK_HAS_FPU_STACK_LOCATION(sp)\r
+ la k1, ulTaskHasFPUContext\r
+ sw k0, 0(k1)\r
+ beq k0, zero, 1f\r
+ nop\r
+\r
+ /* task has FPU context so adjust the stack frame after popping the\r
+ status and epc values. */\r
+ lw k1, portSTATUS_STACK_LOCATION(sp)\r
+ lw k0, portEPC_STACK_LOCATION(sp)\r
+ addiu sp, sp, portFPU_CONTEXT_SIZE\r
+ beq zero, zero, 2f\r
+ nop\r
+\r
+ 1:\r
+ /* Pop the status and epc values. */\r
+ lw k1, portSTATUS_STACK_LOCATION(sp)\r
+ lw k0, portEPC_STACK_LOCATION(sp)\r
+\r
+ 2:\r
+ /* Remove stack frame. */\r
+ addiu sp, sp, portCONTEXT_SIZE\r
\r
- /* Clear the software interrupt in the core. */\r
- mfc0 s6, _CP0_CAUSE\r
- ins s6, zero, 8, 1\r
- mtc0 s6, _CP0_CAUSE\r
+ #else\r
+ /* Code sequence for no FPU support, the context save requires advance\r
+ knowledge of the stack frame size when no FPU is being used */\r
+\r
+ /* Make room for the context. First save the current status so it can be\r
+ manipulated, and the cause and EPC registers so thier original values are\r
+ captured. */\r
+ addiu sp, sp, -portCONTEXT_SIZE\r
+ mfc0 k1, _CP0_STATUS\r
+\r
+ /* Also save s6 and s5 so they can be used. Any nesting interrupts should\r
+ maintain the values of these registers across the ISR. */\r
+ sw s6, 44(sp)\r
+ sw s5, 40(sp)\r
+ sw k1, portSTATUS_STACK_LOCATION(sp)\r
+\r
+ /* Prepare to re-enabled interrupts above the kernel priority. */\r
+ ins k1, zero, 10, 7 /* Clear IPL bits 0:6. */\r
+ ins k1, zero, 18, 1 /* Clear IPL bit 7. It would be an error here if this bit were set anyway. */\r
+ ori k1, k1, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 )\r
+ ins k1, zero, 1, 4 /* Clear EXL, ERL and UM. */\r
+\r
+ /* s5 is used as the frame pointer. */\r
+ add s5, zero, sp\r
+\r
+ /* Swap to the system stack. This is not conditional on the nesting\r
+ count as this interrupt is always the lowest priority and therefore\r
+ the nesting is always 0. */\r
+ la sp, xISRStackTop\r
+ lw sp, (sp)\r
+\r
+ /* Set the nesting count. */\r
+ la k0, uxInterruptNesting\r
+ addiu s6, zero, 1\r
+ sw s6, 0(k0)\r
+\r
+ /* s6 holds the EPC value, this is saved with the rest of the context\r
+ after interrupts are enabled. */\r
+ mfc0 s6, _CP0_EPC\r
+\r
+ /* Re-enable interrupts above configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ mtc0 k1, _CP0_STATUS\r
+\r
+ /* Save the context into the space just created. s6 is saved again\r
+ here as it now contains the EPC value. */\r
+ sw ra, 120(s5)\r
+ sw s8, 116(s5)\r
+ sw t9, 112(s5)\r
+ sw t8, 108(s5)\r
+ sw t7, 104(s5)\r
+ sw t6, 100(s5)\r
+ sw t5, 96(s5)\r
+ sw t4, 92(s5)\r
+ sw t3, 88(s5)\r
+ sw t2, 84(s5)\r
+ sw t1, 80(s5)\r
+ sw t0, 76(s5)\r
+ sw a3, 72(s5)\r
+ sw a2, 68(s5)\r
+ sw a1, 64(s5)\r
+ sw a0, 60(s5)\r
+ sw v1, 56(s5)\r
+ sw v0, 52(s5)\r
+ sw s7, 48(s5)\r
+ sw s6, portEPC_STACK_LOCATION(s5)\r
+ /* s5 and s6 has already been saved. */\r
+ sw s4, 36(s5)\r
+ sw s3, 32(s5)\r
+ sw s2, 28(s5)\r
+ sw s1, 24(s5)\r
+ sw s0, 20(s5)\r
+ sw $1, 16(s5)\r
+\r
+ /* s7 is used as a scratch register as this should always be saved across\r
+ nesting interrupts. */\r
+\r
+ /* Save the AC0, AC1, AC2 and AC3. */\r
+ mfhi s7, $ac1\r
+ sw s7, 128(s5)\r
+ mflo s7, $ac1\r
+ sw s7, 124(s5)\r
+\r
+ mfhi s7, $ac2\r
+ sw s7, 136(s5)\r
+ mflo s7, $ac2\r
+ sw s7, 132(s5)\r
+\r
+ mfhi s7, $ac3\r
+ sw s7, 144(s5)\r
+ mflo s7, $ac3\r
+ sw s7, 140(s5)\r
+\r
+ rddsp s7\r
+ sw s7, 148(s5)\r
+\r
+ mfhi s7, $ac0\r
+ sw s7, 12(s5)\r
+ mflo s7, $ac0\r
+ sw s7, 8(s5)\r
+\r
+ /* Save the stack pointer to the task. */\r
+ la s7, pxCurrentTCB\r
+ lw s7, (s7)\r
+ sw s5, (s7)\r
+\r
+ /* Set the interrupt mask to the max priority that can use the API. The\r
+ yield handler will only be called at configKERNEL_INTERRUPT_PRIORITY which\r
+ is below configMAX_SYSCALL_INTERRUPT_PRIORITY - so this can only ever\r
+ raise the IPL value and never lower it. */\r
+ di\r
+ ehb\r
+ mfc0 s7, _CP0_STATUS\r
+ ins s7, zero, 10, 7\r
+ ins s7, zero, 18, 1\r
+ ori s6, s7, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 ) | 1\r
+\r
+ /* This mtc0 re-enables interrupts, but only above\r
+ configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+ mtc0 s6, _CP0_STATUS\r
+ ehb\r
+\r
+ /* Clear the software interrupt in the core. */\r
+ mfc0 s6, _CP0_CAUSE\r
+ ins s6, zero, 8, 1\r
+ mtc0 s6, _CP0_CAUSE\r
+ ehb\r
+\r
+ /* Clear the interrupt in the interrupt controller. */\r
+ la s6, IFS0CLR\r
+ addiu s4, zero, 2\r
+ sw s4, (s6)\r
+\r
+ jal vTaskSwitchContext\r
+ nop\r
+\r
+ /* Clear the interrupt mask again. The saved status value is still in s7. */\r
+ mtc0 s7, _CP0_STATUS\r
+ ehb\r
+\r
+ /* Restore the stack pointer from the TCB. */\r
+ la s0, pxCurrentTCB\r
+ lw s0, (s0)\r
+ lw s5, (s0)\r
+\r
+ /* Restore the rest of the context. */\r
+ lw s0, 128(s5)\r
+ mthi s0, $ac1\r
+ lw s0, 124(s5)\r
+ mtlo s0, $ac1\r
+\r
+ lw s0, 136(s5)\r
+ mthi s0, $ac2\r
+ lw s0, 132(s5)\r
+ mtlo s0, $ac2\r
+\r
+ lw s0, 144(s5)\r
+ mthi s0, $ac3\r
+ lw s0, 140(s5)\r
+ mtlo s0, $ac3\r
+\r
+ lw s0, 148(s5)\r
+ wrdsp s0\r
+\r
+ lw s0, 8(s5)\r
+ mtlo s0, $ac0\r
+ lw s0, 12(s5)\r
+ mthi s0, $ac0\r
+\r
+ lw $1, 16(s5)\r
+ lw s0, 20(s5)\r
+ lw s1, 24(s5)\r
+ lw s2, 28(s5)\r
+ lw s3, 32(s5)\r
+ lw s4, 36(s5)\r
+\r
+ /* s5 is loaded later. */\r
+ lw s6, 44(s5)\r
+ lw s7, 48(s5)\r
+ lw v0, 52(s5)\r
+ lw v1, 56(s5)\r
+ lw a0, 60(s5)\r
+ lw a1, 64(s5)\r
+ lw a2, 68(s5)\r
+ lw a3, 72(s5)\r
+ lw t0, 76(s5)\r
+ lw t1, 80(s5)\r
+ lw t2, 84(s5)\r
+ lw t3, 88(s5)\r
+ lw t4, 92(s5)\r
+ lw t5, 96(s5)\r
+ lw t6, 100(s5)\r
+ lw t7, 104(s5)\r
+ lw t8, 108(s5)\r
+ lw t9, 112(s5)\r
+ lw s8, 116(s5)\r
+ lw ra, 120(s5)\r
+\r
+ /* Protect access to the k registers, and others. */\r
+ di\r
+ ehb\r
+\r
+ /* Set nesting back to zero. As the lowest priority interrupt this\r
+ interrupt cannot have nested. */\r
+ la k0, uxInterruptNesting\r
+ sw zero, 0(k0)\r
+\r
+ /* Switch back to use the real stack pointer. */\r
+ add sp, zero, s5\r
+\r
+ /* Restore the real s5 value. */\r
+ lw s5, 40(sp)\r
+\r
+ /* Pop the status and epc values. */\r
+ lw k1, portSTATUS_STACK_LOCATION(sp)\r
+ lw k0, portEPC_STACK_LOCATION(sp)\r
+\r
+ /* Remove stack frame. */\r
+ addiu sp, sp, portCONTEXT_SIZE\r
+\r
+ #endif /* ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 ) */\r
+\r
+ /* Restore the status and EPC registers and return */\r
+ mtc0 k1, _CP0_STATUS\r
+ mtc0 k0, _CP0_EPC\r
ehb\r
-\r
- /* Clear the interrupt in the interrupt controller. */\r
- la s6, IFS0CLR\r
- addiu s4, zero, 2\r
- sw s4, (s6)\r
-\r
- jal vTaskSwitchContext\r
+ eret\r
nop\r
\r
- /* Clear the interrupt mask again. The saved status value is still in s7. */\r
- mtc0 s7, _CP0_STATUS\r
- ehb\r
+ .end vPortYieldISR\r
\r
- /* Restore the stack pointer from the TCB. */\r
- la s0, pxCurrentTCB\r
- lw s0, (s0)\r
- lw s5, (s0)\r
-\r
- /* Restore the rest of the context. */\r
- lw s0, 128(s5)\r
- mthi s0, $ac1\r
- lw s0, 124(s5)\r
- mtlo s0, $ac1\r
-\r
- lw s0, 136(s5)\r
- mthi s0, $ac2\r
- lw s0, 132(s5)\r
- mtlo s0, $ac2\r
-\r
- lw s0, 144(s5)\r
- mthi s0, $ac3\r
- lw s0, 140(s5)\r
- mtlo s0, $ac3\r
-\r
- lw s0, 148(s5)\r
- wrdsp s0\r
-\r
- lw s0, 8(s5)\r
- mtlo s0, $ac0\r
- lw s0, 12(s5)\r
- mthi s0, $ac0\r
-\r
- lw $1, 16(s5)\r
- lw s0, 20(s5)\r
- lw s1, 24(s5)\r
- lw s2, 28(s5)\r
- lw s3, 32(s5)\r
- lw s4, 36(s5)\r
-\r
- /* s5 is loaded later. */\r
- lw s6, 44(s5)\r
- lw s7, 48(s5)\r
- lw v0, 52(s5)\r
- lw v1, 56(s5)\r
- lw a0, 60(s5)\r
- lw a1, 64(s5)\r
- lw a2, 68(s5)\r
- lw a3, 72(s5)\r
- lw t0, 76(s5)\r
- lw t1, 80(s5)\r
- lw t2, 84(s5)\r
- lw t3, 88(s5)\r
- lw t4, 92(s5)\r
- lw t5, 96(s5)\r
- lw t6, 100(s5)\r
- lw t7, 104(s5)\r
- lw t8, 108(s5)\r
- lw t9, 112(s5)\r
- lw s8, 116(s5)\r
- lw ra, 120(s5)\r
-\r
- /* Protect access to the k registers, and others. */\r
- di\r
- ehb\r
+/******************************************************************/\r
\r
- /* Set nesting back to zero. As the lowest priority interrupt this\r
- interrupt cannot have nested. */\r
- la k0, uxInterruptNesting\r
- sw zero, 0(k0)\r
+#if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
\r
- /* Switch back to use the real stack pointer. */\r
- add sp, zero, s5\r
+ .macro portFPUSetAndInc reg, dest\r
+ mtc1 \reg, \dest\r
+ cvt.d.w \dest, \dest\r
+ addiu \reg, \reg, 1\r
+ .endm\r
\r
- /* Restore the real s5 value. */\r
- lw s5, 40(sp)\r
+ .set noreorder\r
+ .set noat\r
+ .section .text, code\r
+ .ent vPortInitialiseFPSCR\r
+\r
+vPortInitialiseFPSCR:\r
+\r
+ /* Initialize the floating point status register in CP1. The initial\r
+ value is passed in a0. */\r
+ ctc1 a0, $f31\r
+\r
+ /* Clear the FPU registers */\r
+ addiu a0, zero, 0x0000\r
+ portFPUSetAndInc a0, $f0\r
+ portFPUSetAndInc a0, $f1\r
+ portFPUSetAndInc a0, $f2\r
+ portFPUSetAndInc a0, $f3\r
+ portFPUSetAndInc a0, $f4\r
+ portFPUSetAndInc a0, $f5\r
+ portFPUSetAndInc a0, $f6\r
+ portFPUSetAndInc a0, $f7\r
+ portFPUSetAndInc a0, $f8\r
+ portFPUSetAndInc a0, $f9\r
+ portFPUSetAndInc a0, $f10\r
+ portFPUSetAndInc a0, $f11\r
+ portFPUSetAndInc a0, $f12\r
+ portFPUSetAndInc a0, $f13\r
+ portFPUSetAndInc a0, $f14\r
+ portFPUSetAndInc a0, $f15\r
+ portFPUSetAndInc a0, $f16\r
+ portFPUSetAndInc a0, $f17\r
+ portFPUSetAndInc a0, $f18\r
+ portFPUSetAndInc a0, $f19\r
+ portFPUSetAndInc a0, $f20\r
+ portFPUSetAndInc a0, $f21\r
+ portFPUSetAndInc a0, $f22\r
+ portFPUSetAndInc a0, $f23\r
+ portFPUSetAndInc a0, $f24\r
+ portFPUSetAndInc a0, $f25\r
+ portFPUSetAndInc a0, $f26\r
+ portFPUSetAndInc a0, $f27\r
+ portFPUSetAndInc a0, $f28\r
+ portFPUSetAndInc a0, $f29\r
+ portFPUSetAndInc a0, $f30\r
+ portFPUSetAndInc a0, $f31\r
+\r
+ jr ra\r
+ nop\r
\r
- /* Pop the status and epc values. */\r
- lw k1, portSTATUS_STACK_LOCATION(sp)\r
- lw k0, portEPC_STACK_LOCATION(sp)\r
+ .end vPortInitialiseFPSCR\r
\r
- /* Remove stack frame. */\r
- addiu sp, sp, portCONTEXT_SIZE\r
+#endif /* ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 ) */\r
+ \r
+#if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
\r
- mtc0 k1, _CP0_STATUS\r
- mtc0 k0, _CP0_EPC\r
- ehb\r
- eret\r
+ /**********************************************************************/\r
+ /* Test read back */\r
+ /* a0 = address to store registers */\r
+\r
+ .set noreorder\r
+ .set noat\r
+ .section .text, code\r
+ .ent vPortFPUReadback\r
+ .global vPortFPUReadback\r
+\r
+vPortFPUReadback:\r
+ sdc1 $f0, 0(a0)\r
+ sdc1 $f1, 8(a0)\r
+ sdc1 $f2, 16(a0)\r
+ sdc1 $f3, 24(a0)\r
+ sdc1 $f4, 32(a0)\r
+ sdc1 $f5, 40(a0)\r
+ sdc1 $f6, 48(a0)\r
+ sdc1 $f7, 56(a0)\r
+ sdc1 $f8, 64(a0)\r
+ sdc1 $f9, 72(a0)\r
+ sdc1 $f10, 80(a0)\r
+ sdc1 $f11, 88(a0)\r
+ sdc1 $f12, 96(a0)\r
+ sdc1 $f13, 104(a0)\r
+ sdc1 $f14, 112(a0)\r
+ sdc1 $f15, 120(a0)\r
+ sdc1 $f16, 128(a0)\r
+ sdc1 $f17, 136(a0)\r
+ sdc1 $f18, 144(a0)\r
+ sdc1 $f19, 152(a0)\r
+ sdc1 $f20, 160(a0)\r
+ sdc1 $f21, 168(a0)\r
+ sdc1 $f22, 176(a0)\r
+ sdc1 $f23, 184(a0)\r
+ sdc1 $f24, 192(a0)\r
+ sdc1 $f25, 200(a0)\r
+ sdc1 $f26, 208(a0)\r
+ sdc1 $f27, 216(a0)\r
+ sdc1 $f28, 224(a0)\r
+ sdc1 $f29, 232(a0)\r
+ sdc1 $f30, 240(a0)\r
+ sdc1 $f31, 248(a0)\r
+\r
+ jr ra\r
nop\r
\r
- .end vPortYieldISR\r
+ .end vPortFPUReadback\r
+\r
+#endif /* ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 ) */\r
+\r
\r
\r
\r
#define portSET_INTERRUPT_MASK_FROM_ISR() uxPortSetInterruptMaskFromISR()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusRegister ) vPortClearInterruptMaskFromISR( uxSavedStatusRegister )\r
\r
+#if ( __mips_hard_float == 0 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ #error configUSE_TASK_FPU_SUPPORT can only be set to 1 when the part supports a hardware FPU module.\r
+#endif\r
+\r
+#if ( __mips_hard_float == 1 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )\r
+ void vPortTaskUsesFPU( void );\r
+ #define portTASK_USES_FLOATING_POINT() vPortTaskUsesFPU()\r
+#endif\r
+\r
#ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION\r
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1\r
#endif\r
* If a timer has expired, process it. Otherwise, block the timer service task\r
* until either a timer does expire or a command is received.\r
*/\r
-static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, const BaseType_t xListWasEmpty ) PRIVILEGED_FUNCTION;\r
+static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, BaseType_t xListWasEmpty ) PRIVILEGED_FUNCTION;\r
\r
/*-----------------------------------------------------------*/\r
\r
}\r
/*-----------------------------------------------------------*/\r
\r
-static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, const BaseType_t xListWasEmpty )\r
+static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, BaseType_t xListWasEmpty )\r
{\r
TickType_t xTimeNow;\r
BaseType_t xTimerListsWereSwitched;\r
received - whichever comes first. The following line cannot\r
be reached unless xNextExpireTime > xTimeNow, except in the\r
case when the current timer list is empty. */\r
+ if( xListWasEmpty != pdFALSE )\r
+ {\r
+ /* The current timer list is empty - is the overflow list\r
+ also empty? */\r
+ xListWasEmpty = listLIST_IS_EMPTY( pxOverflowTimerList );\r
+ }\r
+\r
vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ), xListWasEmpty );\r
\r
if( xTaskResumeAll() == pdFALSE )\r