Check in RX231 IAR demo.

This commit is contained in:
Richard Barry 2015-10-10 20:38:12 +00:00
parent c6a4e3191e
commit 38cb08133d
33 changed files with 3674 additions and 92 deletions

View file

@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.freertos.org/RX113_RTOS_Renesas_GCC_IAR.html
IDList=

View file

@ -71,8 +71,8 @@
#define INT_QUEUE_TIMER_H
void vInitialiseTimerForIntQueueTest( void );
portBASE_TYPE xTimer0Handler( void );
portBASE_TYPE xTimer1Handler( void );
BaseType_t xTimer0Handler( void );
BaseType_t xTimer1Handler( void );
#endif

View file

@ -83,6 +83,8 @@
* THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO
* APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!
*
* See http://www.freertos.org/RX113_RTOS_Renesas_GCC_IAR.html
*
*/
/* Scheduler include files. */
@ -124,7 +126,7 @@ void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName );
void vApplicationTickHook( void );
/*-----------------------------------------------------------*/
/* See http://www.freertos.org/RX113_RTOS_Renesas_GCC_IAR.html */
int main( void )
{
/* Configure the hardware ready to run the demo. */

View file

@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.freertos.org/RX113_RTOS_Renesas_GCC_IAR.html
IDList=

View file

@ -82,6 +82,8 @@
* THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO
* APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!
*
* http://www.freertos.org/RX113_RTOS_Renesas_GCC_IAR.html
*
*/
/* Scheduler include files. */
@ -124,6 +126,7 @@ void vApplicationTickHook( void );
/*-----------------------------------------------------------*/
/* See http://www.freertos.org/RX113_RTOS_Renesas_GCC_IAR.html */
int main( void )
{
/* Configure the hardware ready to run the demo. */

View file

@ -53,6 +53,8 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
</option>
<option id="com.renesas.cdt.core.Compiler.option.CPUSeries.930403567" name="Cpu Series" superClass="com.renesas.cdt.core.Compiler.option.CPUSeries" value="RX231" valueType="string"/>
<option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel.1101824266" name="Optimization level" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel" value="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel.none" valueType="enumerated"/>
<option id="com.renesas.cdt.core.Compiler.option.misc67.567825448" name="Do not Inline functions early before doing `-fprofile-generate' instrumentation and real inlining pass (-fno-early-inlining)" superClass="com.renesas.cdt.core.Compiler.option.misc67" value="false" valueType="boolean"/>
<inputType id="%Base.Compiler.C.InputType.Id.1532375645" name="C Input" superClass="%Base.Compiler.C.InputType.Id"/>
<inputType id="Base.Compiler.CPP.InputType.Id.842694984" name="C++ Input" superClass="Base.Compiler.CPP.InputType.Id"/>
</tool>

View file

@ -3,7 +3,7 @@
<configuration id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.420935881" name="HardwareDebug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider class="com.renesas.cdt.common.build.spec.RXGCCBuiltinSpecsDetector" console="false" env-hash="-1162106695519804221" id="RXGCCBuiltinSpecsDetector" keep-relative-paths="false" name="Renesas GCCBuildinCompilerSettings" options-hash="1410121582" parameter="rx-elf-gcc -E -P -v -dD ${INPUTS}" prefer-non-shared="true">
<provider class="com.renesas.cdt.common.build.spec.RXGCCBuiltinSpecsDetector" console="false" env-hash="668737340302188245" id="RXGCCBuiltinSpecsDetector" keep-relative-paths="false" name="Renesas GCCBuildinCompilerSettings" options-hash="1410121582" parameter="rx-elf-gcc -E -P -v -dD ${INPUTS}" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

View file

@ -0,0 +1,771 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<project>
<fileVersion>2</fileVersion>
<configuration>
<name>Debug</name>
<toolchain>
<name>RX</name>
</toolchain>
<debug>1</debug>
<settings>
<name>C-SPY</name>
<archiveVersion>3</archiveVersion>
<data>
<version>6</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>CMandatory</name>
<state>1</state>
</option>
<option>
<name>CInput</name>
<state>1</state>
</option>
<option>
<name>DebuggerProcessorVariant</name>
<state>0</state>
</option>
<option>
<name>CRunToEnable</name>
<state>1</state>
</option>
<option>
<name>CRunToName</name>
<state>main</state>
</option>
<option>
<name>CMacOverride</name>
<state>0</state>
</option>
<option>
<name>CMacFile</name>
<state></state>
</option>
<option>
<name>DynDriver</name>
<state>RXEMUE20</state>
</option>
<option>
<name>DDFOverride</name>
<state>0</state>
</option>
<option>
<name>DDFFile</name>
<state>$TOOLKIT_DIR$\config\debugger\ior5f52318.ddf</state>
</option>
<option>
<name>DebuggerUseExtraOptions</name>
<state>0</state>
</option>
<option>
<name>DebuggerExtraOptions</name>
<state></state>
</option>
<option>
<name>ODebuggerByteOrder</name>
<state>0</state>
</option>
<option>
<name>ODebuggerDoubleSize</name>
<state>1</state>
</option>
<option>
<name>OCImagesSuppressCheck1</name>
<state>0</state>
</option>
<option>
<name>OCImagesPath1</name>
<state></state>
</option>
<option>
<name>OCImagesSuppressCheck2</name>
<state>0</state>
</option>
<option>
<name>OCImagesPath2</name>
<state></state>
</option>
<option>
<name>OCImagesSuppressCheck3</name>
<state>0</state>
</option>
<option>
<name>OCImagesPath3</name>
<state></state>
</option>
<option>
<name>ODebuggerCore</name>
<state>0</state>
</option>
<option>
<name>ODebuggerIntSize</name>
<state>1</state>
</option>
<option>
<name>OCImagesOffset1</name>
<state></state>
</option>
<option>
<name>OCImagesOffset2</name>
<state></state>
</option>
<option>
<name>OCImagesOffset3</name>
<state></state>
</option>
<option>
<name>OCImagesUse1</name>
<state>0</state>
</option>
<option>
<name>OCImagesUse2</name>
<state>0</state>
</option>
<option>
<name>OCImagesUse3</name>
<state>0</state>
</option>
<option>
<name>ODebuggerPatch</name>
<state>0</state>
</option>
<option>
<name>ODebuggerFpu</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>RXEMUE20</name>
<archiveVersion>4</archiveVersion>
<data>
<version>4</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>EmuMandatory</name>
<state>1</state>
</option>
<option>
<name>OCEmuUseUSBSerialNo</name>
<state>0</state>
</option>
<option>
<name>OCEmuUSBSerialNo</name>
<state></state>
</option>
<option>
<name>OCDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>OCDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>OCDownloadAttach</name>
<state>0</state>
</option>
<option>
<name>OCDebuggingMode</name>
<state>0</state>
</option>
<option>
<name>OCExcecuteAfterFlash</name>
<state>0</state>
</option>
<option>
<name>OCDownloadOnlyChangedBlocks</name>
<state>0</state>
</option>
<option>
<name>E20LogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>E20DoLogfile</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>RXE2LITE</name>
<archiveVersion>1</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>E2LiteMandatory</name>
<state>1</state>
</option>
<option>
<name>E2LiteUseUSBSerialNo</name>
<state>0</state>
</option>
<option>
<name>E2LiteUSBSerialNo</name>
<state></state>
</option>
<option>
<name>E2LiteDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadAttach</name>
<state>0</state>
</option>
<option>
<name>E2LiteDebuggingMode</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadExcecuteAfterFlash</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadOnlyChangedBlocks</name>
<state>0</state>
</option>
<option>
<name>E2LiteLogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>E2LiteDoLogfile</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>RXJLINK</name>
<archiveVersion>4</archiveVersion>
<data>
<version>5</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>JlinkMandatory</name>
<state>1</state>
</option>
<option>
<name>OCJlinkDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>OCJlinkDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>OCDownloadAttach</name>
<state>0</state>
</option>
<option>
<name>OCDebuggingMode</name>
<state>0</state>
</option>
<option>
<name>OCJlinkExcecuteAfterFlash</name>
<state>0</state>
</option>
<option>
<name>OCJlinkScanChainEnable</name>
<state>0</state>
</option>
<option>
<name>OCJlinkDevicePosition</name>
<state>0</state>
</option>
<option>
<name>OCJlinkOtherDeviceTypes</name>
<state>0</state>
</option>
<option>
<name>OCJlinkPreceedingIRBits</name>
<state>0</state>
</option>
<option>
<name>OCJlinkUseUSBSerialNo</name>
<state>0</state>
</option>
<option>
<name>OCJlinkUSBSerialNo</name>
<state></state>
</option>
<option>
<name>JLinkLogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>JLinkDoLogfile</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>SIMRX</name>
<archiveVersion>1</archiveVersion>
<data>
<version>1</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
<name>SimMandatory</name>
<state>1</state>
</option>
<option>
<name>SimEnablePSP</name>
<state>0</state>
</option>
<option>
<name>SimPspOverrideConfig</name>
<state>0</state>
</option>
<option>
<name>SimPspConfigFile</name>
<state>$TOOLKIT_DIR$\CONFIG\iocf.psp.config</state>
</option>
</data>
</settings>
<debuggerPlugins>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXRxPlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
</debuggerPlugins>
</configuration>
<configuration>
<name>Release</name>
<toolchain>
<name>RX</name>
</toolchain>
<debug>0</debug>
<settings>
<name>C-SPY</name>
<archiveVersion>3</archiveVersion>
<data>
<version>6</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>CMandatory</name>
<state>1</state>
</option>
<option>
<name>CInput</name>
<state>1</state>
</option>
<option>
<name>DebuggerProcessorVariant</name>
<state>0</state>
</option>
<option>
<name>CRunToEnable</name>
<state>1</state>
</option>
<option>
<name>CRunToName</name>
<state>main</state>
</option>
<option>
<name>CMacOverride</name>
<state>0</state>
</option>
<option>
<name>CMacFile</name>
<state></state>
</option>
<option>
<name>DynDriver</name>
<state>SIMRX</state>
</option>
<option>
<name>DDFOverride</name>
<state>0</state>
</option>
<option>
<name>DDFFile</name>
<state></state>
</option>
<option>
<name>DebuggerUseExtraOptions</name>
<state>0</state>
</option>
<option>
<name>DebuggerExtraOptions</name>
<state></state>
</option>
<option>
<name>ODebuggerByteOrder</name>
<state>0</state>
</option>
<option>
<name>ODebuggerDoubleSize</name>
<state>1</state>
</option>
<option>
<name>OCImagesSuppressCheck1</name>
<state>0</state>
</option>
<option>
<name>OCImagesPath1</name>
<state></state>
</option>
<option>
<name>OCImagesSuppressCheck2</name>
<state>0</state>
</option>
<option>
<name>OCImagesPath2</name>
<state></state>
</option>
<option>
<name>OCImagesSuppressCheck3</name>
<state>0</state>
</option>
<option>
<name>OCImagesPath3</name>
<state></state>
</option>
<option>
<name>ODebuggerCore</name>
<state>0</state>
</option>
<option>
<name>ODebuggerIntSize</name>
<state>1</state>
</option>
<option>
<name>OCImagesOffset1</name>
<state></state>
</option>
<option>
<name>OCImagesOffset2</name>
<state></state>
</option>
<option>
<name>OCImagesOffset3</name>
<state></state>
</option>
<option>
<name>OCImagesUse1</name>
<state>0</state>
</option>
<option>
<name>OCImagesUse2</name>
<state>0</state>
</option>
<option>
<name>OCImagesUse3</name>
<state>0</state>
</option>
<option>
<name>ODebuggerPatch</name>
<state>0</state>
</option>
<option>
<name>ODebuggerFpu</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>RXEMUE20</name>
<archiveVersion>4</archiveVersion>
<data>
<version>4</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>EmuMandatory</name>
<state>1</state>
</option>
<option>
<name>OCEmuUseUSBSerialNo</name>
<state>0</state>
</option>
<option>
<name>OCEmuUSBSerialNo</name>
<state></state>
</option>
<option>
<name>OCDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>OCDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>OCDownloadAttach</name>
<state>0</state>
</option>
<option>
<name>OCDebuggingMode</name>
<state>0</state>
</option>
<option>
<name>OCExcecuteAfterFlash</name>
<state>0</state>
</option>
<option>
<name>OCDownloadOnlyChangedBlocks</name>
<state>0</state>
</option>
<option>
<name>E20LogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>E20DoLogfile</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>RXE2LITE</name>
<archiveVersion>1</archiveVersion>
<data>
<version>0</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>E2LiteMandatory</name>
<state>1</state>
</option>
<option>
<name>E2LiteUseUSBSerialNo</name>
<state>0</state>
</option>
<option>
<name>E2LiteUSBSerialNo</name>
<state></state>
</option>
<option>
<name>E2LiteDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadAttach</name>
<state>0</state>
</option>
<option>
<name>E2LiteDebuggingMode</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadExcecuteAfterFlash</name>
<state>0</state>
</option>
<option>
<name>E2LiteDownloadOnlyChangedBlocks</name>
<state>0</state>
</option>
<option>
<name>E2LiteLogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>E2LiteDoLogfile</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>RXJLINK</name>
<archiveVersion>4</archiveVersion>
<data>
<version>5</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>JlinkMandatory</name>
<state>1</state>
</option>
<option>
<name>OCJlinkDownloadSuppressDownload</name>
<state>0</state>
</option>
<option>
<name>OCJlinkDownloadVerifyAll</name>
<state>0</state>
</option>
<option>
<name>OCDownloadAttach</name>
<state>0</state>
</option>
<option>
<name>OCDebuggingMode</name>
<state>0</state>
</option>
<option>
<name>OCJlinkExcecuteAfterFlash</name>
<state>0</state>
</option>
<option>
<name>OCJlinkScanChainEnable</name>
<state>0</state>
</option>
<option>
<name>OCJlinkDevicePosition</name>
<state>0</state>
</option>
<option>
<name>OCJlinkOtherDeviceTypes</name>
<state>0</state>
</option>
<option>
<name>OCJlinkPreceedingIRBits</name>
<state>0</state>
</option>
<option>
<name>OCJlinkUseUSBSerialNo</name>
<state>0</state>
</option>
<option>
<name>OCJlinkUSBSerialNo</name>
<state></state>
</option>
<option>
<name>JLinkLogFile</name>
<state>$PROJ_DIR$\cspycomm.log</state>
</option>
<option>
<name>JLinkDoLogfile</name>
<state>0</state>
</option>
</data>
</settings>
<settings>
<name>SIMRX</name>
<archiveVersion>1</archiveVersion>
<data>
<version>1</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
<name>SimMandatory</name>
<state>1</state>
</option>
<option>
<name>SimEnablePSP</name>
<state>0</state>
</option>
<option>
<name>SimPspOverrideConfig</name>
<state>0</state>
</option>
<option>
<name>SimPspConfigFile</name>
<state>###Uninitialized###</state>
</option>
</data>
</settings>
<debuggerPlugins>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXRxPlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>
<loadFlag>1</loadFlag>
</plugin>
<plugin>
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
</debuggerPlugins>
</configuration>
</project>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<workspace>
<project>
<path>$WS_DIR$\RTOSDemo.ewp</path>
</project>
<batchBuild/>
</workspace>

View file

@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.freertos.org/RX231_RTOS_Renesas_GCC_IAR.html
IDList=

View file

@ -0,0 +1,40 @@
@REM This batch file has been generated by the IAR Embedded Workbench
@REM C-SPY Debugger, as an aid to preparing a command line for running
@REM the cspybat command line utility using the appropriate settings.
@REM
@REM Note that this file is generated every time a new debug session
@REM is initialized, so you may want to move or rename the file before
@REM making changes.
@REM
@REM You can launch cspybat by typing the name of this batch file followed
@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).
@REM
@REM Read about available command line parameters in the C-SPY Debugging
@REM Guide. Hints about additional command line parameters that may be
@REM useful in specific cases:
@REM --download_only Downloads a code image without starting a debug
@REM session afterwards.
@REM --silent Omits the sign-on message.
@REM --timeout Limits the maximum allowed execution time.
@REM
@echo off
if not "%1" == "" goto debugFile
@echo on
"C:\DevTools\IAR Systems\Embedded Workbench 7.2\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX200_RX231-RSK_GCC_e2studio_IAR\settings\RTOSDemo.Debug.general.xcl" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX200_RX231-RSK_GCC_e2studio_IAR\settings\RTOSDemo.Debug.driver.xcl"
@echo off
goto end
:debugFile
@echo on
"C:\DevTools\IAR Systems\Embedded Workbench 7.2\common\bin\cspybat" -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX200_RX231-RSK_GCC_e2studio_IAR\settings\RTOSDemo.Debug.general.xcl" "--debug_file=%1" --backend -f "C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX200_RX231-RSK_GCC_e2studio_IAR\settings\RTOSDemo.Debug.driver.xcl"
@echo off
:end

View file

@ -0,0 +1,37 @@
-B
"-p"
"C:\DevTools\IAR Systems\Embedded Workbench 7.2\rx\config\debugger\ior5f52318.ddf"
"--endian"
"l"
"--double"
"32"
"--core"
"rxv2"
"--int"
"32"
"-d"
"emue20"
"--drv_mode"
"debugging"
"--drv_communication"
"USB"

View file

@ -0,0 +1,11 @@
"C:\DevTools\IAR Systems\Embedded Workbench 7.2\rx\bin\rxproc.dll"
"C:\DevTools\IAR Systems\Embedded Workbench 7.2\rx\bin\rxe1e20.dll"
"C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX200_RX231-RSK_GCC_e2studio_IAR\Debug\Exe\RTOSDemo.out"
--plugin "C:\DevTools\IAR Systems\Embedded Workbench 7.2\rx\bin\rxbat.dll"

View file

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<Project>
<Desktop>
<Static>
<Debug-Log>
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log>
<Build>
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build>
<Workspace>
<ColumnWidths>
<Column0>124</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Disassembly>
<col-names>
<item>Disassembly</item><item>_I0</item></col-names>
<col-widths>
<item>500</item><item>20</item></col-widths>
<DisasmHistory/>
<PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ShowCodeCoverage>1</ShowCodeCoverage><ShowInstrProfiling>1</ShowInstrProfiling></Disassembly>
</Static>
<Windows>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-29565-5593</Identity>
<TabName>Debug Log</TabName>
<Factory>Debug-Log</Factory>
<Session/>
</Tab>
<Tab>
<Identity>TabID-29043-5603</Identity>
<TabName>Build</TabName>
<Factory>Build</Factory>
<Session/>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-7546-5596</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict><ExpandedNode>RTOSDemo</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd1></Windows>
<Editor>
<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>129</YPos2><SelStart2>6690</SelStart2><SelEnd2>6690</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
<Top><Row0><Sizes><Toolbar-00B9A4B8><key>iaridepm.enu1</key></Toolbar-00B9A4B8></Sizes></Row0><Row1><Sizes><Toolbar-08B10258><key>debuggergui.enu1</key></Toolbar-08B10258></Sizes></Row1></Top><Left><Row0><Sizes><Wnd1><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></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><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></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>

View file

@ -0,0 +1,250 @@
[Stack]
FillEnabled=0
OverflowWarningsEnabled=1
WarningThreshold=90
SpWarningsEnabled=1
WarnLogOnly=1
UseTrigger=1
TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
Checksum=346728549
[E1/E20]
BlockBits=15
B0=1,0
B1=1,1024
B2=1,2048
B3=1,3072
StartEnabled=0
StartSymbol=
StopEnabled=0
StopSymbol=
RecordingCondition=0
TraceMode=0
TraceOutput=0
TraceType=0
TraceCapacity=0
TraceRestart=0
TraceTimeStamp=0
TraceTimestampDivision=0
TraceDataTransfer=1
TraceStackOperation=1
TraceStringOperation=1
TraceArithmeticalOperation=1
TraceLogicalOperation=1
TraceBitOperation=1
TraceFPU=1
TraceException=1
OperatingFrequency=0.000000
PerfEnabled=0
PerfCondition=0,0
PerfDisplayTime=0,0
PerfOnlyOnce=0,0
PerfUse64Bit=0
ChipName=R5F52318
PinMode=0
RegMode=0
Endian=0
ExtMemBlockNum=55
ExtMemEndian_000=0
ExtMemCondAccess_000=0
ExtMemEndian_001=0
ExtMemCondAccess_001=0
ExtMemEndian_002=0
ExtMemCondAccess_002=0
ExtMemEndian_003=0
ExtMemCondAccess_003=0
ExtMemEndian_004=0
ExtMemCondAccess_004=0
ExtMemEndian_005=0
ExtMemCondAccess_005=0
ExtMemEndian_006=0
ExtMemCondAccess_006=0
ExtMemEndian_007=0
ExtMemCondAccess_007=0
ExtMemEndian_008=0
ExtMemCondAccess_008=0
ExtMemEndian_009=0
ExtMemCondAccess_009=0
ExtMemEndian_010=0
ExtMemCondAccess_010=0
ExtMemEndian_011=0
ExtMemCondAccess_011=0
ExtMemEndian_012=0
ExtMemCondAccess_012=0
ExtMemEndian_013=0
ExtMemCondAccess_013=0
ExtMemEndian_014=0
ExtMemCondAccess_014=0
ExtMemEndian_015=0
ExtMemCondAccess_015=0
ExtMemEndian_016=0
ExtMemCondAccess_016=0
ExtMemEndian_017=0
ExtMemCondAccess_017=0
ExtMemEndian_018=0
ExtMemCondAccess_018=0
ExtMemEndian_019=0
ExtMemCondAccess_019=0
ExtMemEndian_020=0
ExtMemCondAccess_020=0
ExtMemEndian_021=0
ExtMemCondAccess_021=0
ExtMemEndian_022=0
ExtMemCondAccess_022=0
ExtMemEndian_023=0
ExtMemCondAccess_023=0
ExtMemEndian_024=0
ExtMemCondAccess_024=0
ExtMemEndian_025=0
ExtMemCondAccess_025=0
ExtMemEndian_026=0
ExtMemCondAccess_026=0
ExtMemEndian_027=0
ExtMemCondAccess_027=0
ExtMemEndian_028=0
ExtMemCondAccess_028=0
ExtMemEndian_029=0
ExtMemCondAccess_029=0
ExtMemEndian_030=0
ExtMemCondAccess_030=0
ExtMemEndian_031=0
ExtMemCondAccess_031=0
ExtMemEndian_032=0
ExtMemCondAccess_032=0
ExtMemEndian_033=0
ExtMemCondAccess_033=0
ExtMemEndian_034=0
ExtMemCondAccess_034=0
ExtMemEndian_035=0
ExtMemCondAccess_035=0
ExtMemEndian_036=0
ExtMemCondAccess_036=0
ExtMemEndian_037=0
ExtMemCondAccess_037=0
ExtMemEndian_038=0
ExtMemCondAccess_038=0
ExtMemEndian_039=0
ExtMemCondAccess_039=0
ExtMemEndian_040=0
ExtMemCondAccess_040=0
ExtMemEndian_041=0
ExtMemCondAccess_041=0
ExtMemEndian_042=0
ExtMemCondAccess_042=0
ExtMemEndian_043=0
ExtMemCondAccess_043=0
ExtMemEndian_044=0
ExtMemCondAccess_044=0
ExtMemEndian_045=0
ExtMemCondAccess_045=0
ExtMemEndian_046=0
ExtMemCondAccess_046=0
ExtMemEndian_047=0
ExtMemCondAccess_047=0
ExtMemEndian_048=0
ExtMemCondAccess_048=0
ExtMemEndian_049=0
ExtMemCondAccess_049=0
ExtMemEndian_050=0
ExtMemCondAccess_050=0
ExtMemEndian_051=0
ExtMemCondAccess_051=0
ExtMemEndian_052=0
ExtMemCondAccess_052=0
ExtMemEndian_053=0
ExtMemCondAccess_053=0
ExtMemEndian_054=0
ExtMemCondAccess_054=0
InputClock=8.000000
ICLK=50.000000
AllowClkSrcChange=1
WorkRamStart=4096
ComunicationSelect=1
UseExtal=1
JtagClock=5
FINE=2000000
EraseFlash=1,0
DebugFlags=0,0
EmulatorMode=0
PowerTargetFromEmulator=1
Voltage=0
UseExtFlashFile_0=0
ExtFlashFile_0=
EraseExtFlashBeforeDownload_0=0
UseExtFlashFile_1=0
ExtFlashFile_1=
EraseExtFlashBeforeDownload_1=0
UseExtFlashFile_2=0
ExtFlashFile_2=
EraseExtFlashBeforeDownload_2=0
UseExtFlashFile_3=0
ExtFlashFile_3=
EraseExtFlashBeforeDownload_3=0
NeedInitExtMem=0
NeedInit=1
[CodeCoverage]
Enabled=_ 0
[CallStackLog]
Enabled=0
[CallStackStripe]
ShowTiming=124
[CallStack]
ShowArgs=0
[Disassembly]
MixedMode=1
[InterruptLog]
LogEnabled=0
GraphEnabled=0
ShowTimeLog=1
SumEnabled=0
ShowTimeSum=1
SumSortOrder=0
[DataLog]
LogEnabled=0
GraphEnabled=0
ShowTimeLog=1
SumEnabled=0
ShowTimeSum=1
[Breakpoints2]
Count=0
[Interrupts]
Enabled=1
[MemoryMap]
Enabled=0
Base=0
UseAuto=0
TypeViolation=1
UnspecRange=1
ActionState=1
[Simulator]
Freq=98000000
[DataSample]
LogEnabled=0
GraphEnabled=0
ShowTimeLog=1
[DriverProfiling]
Enabled=0
Mode=1
Graph=0
Symbiont=0
Exclusions=
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
Category=_ 0
[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
[Breakpoints]
Count=0
[Monitor Execution]
Leave target running=0
Release target=0
[Trace1]
Enabled=0
ShowSource=1
[Aliases]
Count=0
SuppressDialog=0

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<Workspace>
<ConfigDictionary>
<CurrentConfigs><Project>RTOSDemo/Debug</Project></CurrentConfigs></ConfigDictionary>
<Desktop>
<Static>
<Build>
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build>
<Workspace>
<ColumnWidths>
<Column0>212</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Debug-Log><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log><TerminalIO/></Static>
<Windows>
<Wnd2>
<Tabs>
<Tab>
<Identity>TabID-7160-12394</Identity>
<TabName>Build</TabName>
<Factory>Build</Factory>
<Session/>
</Tab>
<Tab><Identity>TabID-23982-5084</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs>
<SelectedTab>0</SelectedTab></Wnd2><Wnd3>
<Tabs>
<Tab>
<Identity>TabID-17908-12398</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Blinky_Demo</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo</ExpandedNode><ExpandedNode>RTOSDemo/Full_Demo/FreeRTOS+CLI</ExpandedNode><ExpandedNode>RTOSDemo/Renesas_Code</ExpandedNode><ExpandedNode>RTOSDemo/System</ExpandedNode><ExpandedNode>RTOSDemo/cg_src</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd3></Windows>
<Editor>
<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>69</YPos2><SelStart2>6698</SelStart2><SelEnd2>6698</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>
<Positions>
<Top><Row0><Sizes><Toolbar-00B9A4B8><key>iaridepm.enu1</key></Toolbar-00B9A4B8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>707</Bottom><Right>286</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203252</sizeHorzCY><sizeVertCX>171429</sizeVertCX><sizeVertCY>720528</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>233</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>235</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>238821</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203252</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

View file

@ -0,0 +1,2 @@
[MainWindow]
WindowPlacement=_ 367 9 1633 963 3

View file

@ -84,24 +84,14 @@
*
* The Queue Send Task:
* The queue send task is implemented by the prvQueueSendTask() function in
* this file. prvQueueSendTask() sits in a loop that causes it to repeatedly
* block for 200 milliseconds, before sending the value 100 to the queue that
* was created within main_blinky(). Once the value is sent, the task loops
* back around to block for another 200 milliseconds...and so on.
* this file. It sends the value 100 to the queue every 200 milliseconds.
*
* The Queue Receive Task:
* The queue receive task is implemented by the prvQueueReceiveTask() function
* in this file. prvQueueReceiveTask() sits in a loop where it repeatedly
* blocks on attempts to read data from the queue that was created within
* main_blinky(). When data is received, the task checks the value of the
* data, and if the value equals the expected 100, toggles an LED. The 'block
* time' parameter passed to the queue receive function specifies that the
* task should be held in the Blocked state indefinitely to wait for data to
* be available on the queue. The queue receive task will only leave the
* Blocked state when the queue send task writes to the queue. As the queue
* send task writes to the queue every 200 milliseconds, the queue receive
* task leaves the Blocked state every 200 milliseconds, and therefore toggles
* the LED every 200 milliseconds.
* in this file. It blocks on the queue to wait for data to arrive from the
* queue send task - toggling the LED each time it receives the value 100. The
* queue send task writes to the queue every 200ms, so the LED should toggle
* every 200ms.
*/
/* Kernel includes. */
@ -118,7 +108,7 @@
/* The rate at which data is sent to the queue. The 200ms value is converted
to ticks using the portTICK_PERIOD_MS constant. */
#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS )
#define mainQUEUE_SEND_FREQUENCY_MS ( pdMS_TO_TICKS( 200UL ) )
/* The number of items the queue can hold. This is 1 as the receive task
will remove items as they are added, meaning the send task should always find

View file

@ -78,8 +78,8 @@
#include "task.h"
/* Demo includes. */
#include "IntQueue.h"
#include "IntQueueTimer.h"
#include "IntQueue.h"
#define tmrTIMER_0_1_FREQUENCY ( 2000UL )
#define tmrTIMER_2_3_FREQUENCY ( 2111UL )

View file

@ -81,7 +81,7 @@
*
******************************************************************************
*
* main_full() creates all the demo application tasks and software timers, then
* main_full() creates a set of demo application tasks and software timers, then
* starts the scheduler. The web documentation provides more details of the
* standard demo application tasks, which provide no particular functionality,
* but do provide a good example of how to use the FreeRTOS API.
@ -97,15 +97,14 @@
* error in the context switching mechanism.
*
* "Check" task - The check task period is initially set to three seconds. The
* task checks that all the standard demo tasks, and the register check tasks,
* are not only still executing, but are executing without reporting any errors.
* If the check task discovers that a task has either stalled, or reported an
* error, then it changes its own execution period from the initial three
* seconds, to just 200ms. The check task also toggles an LED each time it is
* called. This provides a visual indication of the system status: If the LED
* toggles every three seconds, then no issues have been discovered. If the LED
* toggles every 200ms, then an issue has been discovered with at least one
* task.
* task checks that all the standard demo tasks are not only still executing,
* but are executing without reporting any errors. If the check task discovers
* that a task has either stalled, or reported an error, then it changes its own
* execution period from the initial three seconds, to just 200ms. The check
* task also toggles an LED on each iteration of its loop. This provides a
* visual indication of the system status: If the LED toggles every three
* seconds, then no issues have been discovered. If the LED toggles every
* 200ms, then an issue has been discovered with at least one task.
*/
/* Standard includes. */
@ -146,30 +145,23 @@
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3UL )
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainUART_COMMAND_CONSOLE_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3UL )
#define mainCOM_TEST_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
#define mainQUEUE_OVERWRITE_PRIORITY ( tskIDLE_PRIORITY )
/* The priority used by the UART command console task. */
#define mainUART_COMMAND_CONSOLE_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
/* A block time of zero simply means "don't block". */
#define mainDONT_BLOCK ( 0UL )
/* The period after which the check timer will expire, in ms, provided no errors
have been reported by any of the standard demo tasks. ms are converted to the
equivalent in ticks using the portTICK_PERIOD_MS constant. */
#define mainNO_ERROR_CHECK_TASK_PERIOD ( 3000UL / portTICK_PERIOD_MS )
#define mainNO_ERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 3000UL )
/* The period at which the check timer will expire, in ms, if an error has been
reported in one of the standard demo tasks. ms are converted to the equivalent
in ticks using the portTICK_PERIOD_MS constant. */
#define mainERROR_CHECK_TASK_PERIOD ( 200UL / portTICK_PERIOD_MS )
#define mainERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 200UL )
/* Parameters that are passed into the register check tasks solely for the
purpose of ensuring parameters are passed into tasks correctly. */
#define mainREG_TEST_1_PARAMETER ( ( void * ) 0x12121212UL )
#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x12345678UL )
#define mainREG_TEST_1_PARAMETER ( ( void * ) 0x12121212UL )
#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x12345678UL )
/* The base period used by the timer test tasks. */
#define mainTIMER_TEST_PERIOD ( 50 )
@ -218,9 +210,6 @@ then the register check tasks have not discovered any errors. If a variable
stops incrementing, then an error has been found. */
volatile unsigned long ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;
/* String for display in the web server. It is set to an error message if the
check task detects an error. */
const char *pcStatusMessage = "All tasks running without error";
/*-----------------------------------------------------------*/
void main_full( void )
@ -248,7 +237,7 @@ void main_full( void )
xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );
/* Create the task that just adds a little random behaviour. */
xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL );
xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 2, NULL );
/* Create the task that performs the 'check' functionality, as described at
the top of this file. */
@ -402,7 +391,6 @@ unsigned long ulErrorFound = pdFALSE;
gone wrong (it might just be that the loop back connector required
by the comtest tasks has not been fitted). */
xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;
pcStatusMessage = "Error found in at least one task.";
}
}
}
@ -410,7 +398,7 @@ unsigned long ulErrorFound = pdFALSE;
static void prvPseudoRandomiser( void *pvParameters )
{
const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = ( 35 / portTICK_PERIOD_MS );
const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = pdMS_TO_TICKS( 35 );
volatile uint32_t ulNextRand = ( uint32_t ) &pvParameters, ulValue;
/* This task does nothing other than ensure there is a little bit of

View file

@ -0,0 +1,116 @@
/*---------------------------------------------------------------------------*/
/* - defaults.s - */
/* */
/* This module contains default values for the following symbols */
/* */
/* For RxV1 core: */
/* __MDES @ 0xFFFFFF80 to 0xFFFFFF83 */
/* __OFS1 @ 0xFFFFFF88 to 0xFFFFFF8B */
/* __OFS0 @ 0xFFFFFF8C to 0xFFFFFF8F */
/* __ROM_CODE @ 0xFFFFFF9C */
/* __ID_BYTES_1_4 @ 0xFFFFFFA0 to 0xFFFFFFA3 */
/* __ID_BYTES_5_8 @ 0xFFFFFFA4 to 0xFFFFFFA7 */
/* __ID_BYTES_9_12 @ 0xFFFFFFA8 to 0xFFFFFFAB */
/* __ID_BYTES_13_16 @ 0xFFFFFFAC to 0xFFFFFFAF */
/* */
/* For RxV1 core: */
/* __MDES @ 0xFFFFFF80 to 0xFFFFFF83 */
/* __OFS1 @ 0xFFFFFF88 to 0xFFFFFF8B */
/* __OFS0 @ 0xFFFFFF8C to 0xFFFFFF8F */
/* __ROM_CODE @ 0xFFFFFF9C to 0xFFFFFF9F */
/* __OSIS_1 @ 0xFFFFFFA0 to 0xFFFFFFA3 */
/* __OSIS_2 @ 0xFFFFFFA4 to 0xFFFFFFA7 */
/* __OSIS_3 @ 0xFFFFFFA8 to 0xFFFFFFAB */
/* __OSIS_4 @ 0xFFFFFFAC to 0xFFFFFFAF */
/* */
/* For RxV2 core (RX64M): */
/* __SPCC @ 0x00120040 to 0x00120043 */
/* __TMEF @ 0x00120048 to 0x0012004B */
/* __OSIS_1 @ 0x00120050 to 0x00120053 */
/* __OSIS_2 @ 0x00120054 to 0x00120057 */
/* __OSIS_3 @ 0x00120058 to 0x0012005D */
/* __OSIS_4 @ 0x0012005C to 0x0012005F */
/* __TMINF @ 0x00120060 to 0x00120063 */
/* __MDE @ 0x00120064 to 0x00120067 */
/* __OFS0 @ 0x00120068 to 0x0012006B */
/* __OFS1 @ 0x0012006C to 0x0012006F */
/* */
/* To override default values in library add this file to your */
/* project and change the values. */
/* */
/* Copyright 2014 IAR Systems AB. */
/* */
/* $Revision: 6046 $ */
/* */
/*---------------------------------------------------------------------------*/
MODULE DEFAULTS
SECTION .text:CONST:NOROOT
#if __CORE__ == __CORE_V1__
PUBWEAK __MDES
PUBWEAK __OFS1
PUBWEAK __OFS0
PUBWEAK __ROM_CODE
PUBWEAK __ID_BYTES_1_4
PUBWEAK __ID_BYTES_5_8
PUBWEAK __ID_BYTES_9_12
PUBWEAK __ID_BYTES_13_16
#if __LITTLE_ENDIAN__
__MDES equ 0xffffffff
#else
__MDES equ 0xfffffff8
#endif
__OFS0 equ 0xffffffff
__OFS1 equ 0xffffffff
__ROM_CODE equ 0xffffffff
__ID_BYTES_1_4 equ 0xffffffff
__ID_BYTES_5_8 equ 0xffffffff
__ID_BYTES_9_12 equ 0xffffffff
__ID_BYTES_13_16 equ 0xffffffff
#else /* __CORE__ == __CORE_V2__ */
PUBWEAK __ROM_CODE
PUBWEAK __MDE
PUBWEAK __OFS1
PUBWEAK __OFS0
PUBWEAK __OSIS_1
PUBWEAK __OSIS_2
PUBWEAK __OSIS_3
PUBWEAK __OSIS_4
PUBWEAK __SPCC
PUBWEAK __TMEF
PUBWEAK __TMINF
__ROM_CODE equ 0xffffffff
// 0x00120040 SPCC register
__SPCC equ 0xffffffff
// 0x00120048 TMEF register
__TMEF equ 0xffffffff
// 0x00120050 OSIC register (ID codes)
__OSIS_1 equ 0xffffffff
__OSIS_2 equ 0xffffffff
__OSIS_3 equ 0xffffffff
__OSIS_4 equ 0xffffffff
// 0x00120060 TMINF register
__TMINF equ 0xffffffff
// 0x00120064 MDE register (Single Chip Mode)
#if __LITTLE_ENDIAN__
__MDE equ 0xffffffff // little
#else
__MDE equ 0xfffffff8 // big
#endif
// 0x00120068 OFS0 register
__OFS0 equ 0xffffffff
// 0x0012006c OFS1 register
__OFS1 equ 0xffffffff
#endif
END

View file

@ -0,0 +1,56 @@
;-----------------------------------------------------------------------------
; Exception vector table. We install all fixed interrupts in
; a section called EXCEPTVECT. All fixed interrupts have a
; hard coded name that is default handled in this file.
; See fixedint.c for information how to replace them with handlers written in C.
;
; $Revision: 6884 $
;
// This segment part is marked as ROOT, since it must
// be preserved by the linker.
MODULE EXCEPTVECT
SECTION .exceptvect:CONST:ROOT
#if __CORE__ == __CORE_V2__
EXTERN ___excep_access_inst
EXTERN ___privileged_handler
EXTERN ___undefined_handler
EXTERN ___undefined_interrupt_source_handler
EXTERN ___NMI_handler
EXTERN __float_placeholder
EXTERN __MDE
EXTERN __OFS1
EXTERN __OFS0
EXTERN __ROM_CODE
EXTERN __OSIS_1
EXTERN __OSIS_2
EXTERN __OSIS_3
EXTERN __OSIS_4
PUBLIC __exceptvect
DATA
__exceptvect:
DC32 __MDE // 0xFFFFFF80 MDE register (Single Chip Mode)
DS32 1
DC32 __OFS1 // 0xFFFFFF88 OFS1 register
DC32 __OFS0 // 0xFFFFFF8C OFS0 register
DS32 3
DC32 __ROM_CODE // 0xFFFFFF8C ROM code protection
DC32 __OSIS_1 // 0xFFFFFFA0 OSIC register (ID codes)
DC32 __OSIS_2 // 0xFFFFFFA4 OSIC register (ID codes)
DC32 __OSIS_3 // 0xFFFFFFA8 OSIC register (ID codes)
DC32 __OSIS_4 // 0xFFFFFFAC OSIC register (ID codes)
DS32 8
DC32 ___privileged_handler // Exception(Supervisor Instruction)
DC32 ___excep_access_inst // Exception(Access Instruction)
DC32 ___undefined_interrupt_source_handler
DC32 ___undefined_handler // Exception(Undefined Instruction)
DC32 ___undefined_interrupt_source_handler
DC32 __float_placeholder // Exception(Floating Point)
DC32 ___undefined_interrupt_source_handler
DC32 ___undefined_interrupt_source_handler
DC32 ___undefined_interrupt_source_handler
DC32 ___undefined_interrupt_source_handler
DC32 ___NMI_handler // NMI
#endif
END

View file

@ -0,0 +1,47 @@
//-----------------------------------------------------------------------------
// ILINK command file template for the Renesas RX microcontroller R5F52318
//-----------------------------------------------------------------------------
define memory mem with size = 4G;
define region ROM_region16 = mem:[from 0xFFFF8000 to 0xFFFFFFFF];
define region RAM_region16 = mem:[from 0x00000004 to 0x00007FFF];
define region ROM_region24 = mem:[from 0xFFF80000 to 0xFFFFFFFF];
define region RAM_region24 = mem:[from 0x00000004 to 0x0000FFFF];
define region ROM_region32 = mem:[from 0xFFF80000 to 0xFFFFFFFF];
define region RAM_region32 = mem:[from 0x00000004 to 0x0000FFFF];
define region DATA_FLASH_region = mem:[from 0x00100000 to 0x00101FFF];
initialize by copy { rw, ro section D, ro section D_1, ro section D_2 };
initialize by copy with packing = none { section __DLIB_PERTHREAD };
do not initialize { section .*.noinit };
define block HEAP with alignment = 4, size = _HEAP_SIZE { };
define block USTACK with alignment = 4, size = _USTACK_SIZE { };
define block ISTACK with alignment = 4, size = _ISTACK_SIZE { };
define block STACKS with fixed order { block ISTACK,
block USTACK };
place at address mem:0x00120040 { ro section .option_rom };
place at address mem:0xFFFFFF80 { ro section .exceptvect };
place at address mem:0xFFFFFFFC { ro section .resetvect };
"ROM16":place in ROM_region16 { ro section .code16*,
ro section .data16* };
"RAM16":place in RAM_region16 { rw section .data16*,
rw section __DLIB_PERTHREAD };
"ROM24":place in ROM_region24 { ro section .code24*,
ro section .data24* };
"RAM24":place in RAM_region24 { rw section .data24* };
"ROM32":place in ROM_region32 { ro };
"RAM32":place in RAM_region32 { rw,
ro section D,
ro section D_1,
ro section D_2,
block HEAP,
block STACKS };
"DATAFLASH":place in DATA_FLASH_region
{ ro section .dataflash* };

View file

@ -0,0 +1,40 @@
// This segment part is marked as ROOT, since it must
// be preserved by the linker.
MODULE OPTION_ROM
SECTION .option_rom:CONST:ROOT
#if __CORE__ == __CORE_V2__
EXTERN __MDE
EXTERN __OFS1
EXTERN __OFS0
EXTERN __SPCC
EXTERN __TMEF
EXTERN __TMINF
EXTERN __OSIS_1
EXTERN __OSIS_2
EXTERN __OSIS_3
EXTERN __OSIS_4
PUBLIC __option_rom
// Special configuration registers for 64M
DATA
__option_rom:
#if 0
DC32 __SPCC // 0x00120040 SPCC register
DS32 1 // 0x00120044 reserved
DC32 __TMEF // 0x00120048 TMEF register
DS32 1 // 0x0012004C reserved
; DC32 __OSIS_1 // 0x00120050 OSIC register (ID codes)
; DC32 __OSIS_2 // 0x00120054 OSIC register (ID codes)
; DC32 __OSIS_3 // 0x00120058 OSIC register (ID codes)
; DC32 __OSIS_4 // 0x0012005C OSIC register (ID codes)
DC32 __TMINF // 0x00120060 TMINF register
; DC32 __MDE // 0x00120064 MDE register (Single Chip Mode)
; DC32 __OFS0 // 0x00120068 OFS0 register
; DC32 __OFS1 // 0x0012006C OFS1 register
#endif
#endif
END

View file

@ -83,6 +83,8 @@
* THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO
* APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!
*
* http://www.freertos.org/RX231_RTOS_Renesas_GCC_IAR.html
*
*/
/* Scheduler include files. */
@ -120,6 +122,7 @@ void vApplicationTickHook( void );
/*-----------------------------------------------------------*/
/* See http://www.freertos.org/RX231_RTOS_Renesas_GCC_IAR.html */
int main( void )
{
/* Configure the hardware ready to run the demo. */
@ -214,7 +217,9 @@ void vApplicationTickHook( void )
/*-----------------------------------------------------------*/
/* The RX port uses this callback function to configure its tick interrupt.
This allows the application to choose the tick interrupt source. */
This allows the application to choose the tick interrupt source.
***NOTE***: configTICK_VECTOR must be set in FreeRTOSConfig.h to be correct for
whichever vector is used. */
void vApplicationSetupTimerInterrupt( void )
{
const uint32_t ulEnableRegisterWrite = 0xA50BUL, ulDisableRegisterWrite = 0xA500UL;

View file

@ -55,6 +55,7 @@
<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.isa.760685592" name="Instruction set architecture" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.isa" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.isa.rxv2" valueType="enumerated"/>
<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.floatIns.1935378446" name="Use floating point arithmetic instructions" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.floatIns" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.floatIns.enable" valueType="enumerated"/>
<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel.1251656569" name="Optimize level" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel.0" valueType="enumerated"/>
<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizationType.1200083822" name="Optimization type" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizationType" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizationType.speed" valueType="enumerated"/>
<inputType id="%Base.Compiler.Shc.C.Input.Id.421764231" name="C Input" superClass="%Base.Compiler.Shc.C.Input.Id"/>
<inputType id="%Base.Compiler.Shc.C.Input1.Id.1660674237" name="C++ Input" superClass="%Base.Compiler.Shc.C.Input1.Id"/>
</tool>

View file

@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.freertos.org/RX231_RTOS_Renesas_GCC_IAR.html
IDList=

View file

@ -84,24 +84,14 @@
*
* The Queue Send Task:
* The queue send task is implemented by the prvQueueSendTask() function in
* this file. prvQueueSendTask() sits in a loop that causes it to repeatedly
* block for 200 milliseconds, before sending the value 100 to the queue that
* was created within main_blinky(). Once the value is sent, the task loops
* back around to block for another 200 milliseconds...and so on.
* this file. It sends the value 100 to the queue every 200 milliseconds.
*
* The Queue Receive Task:
* The queue receive task is implemented by the prvQueueReceiveTask() function
* in this file. prvQueueReceiveTask() sits in a loop where it repeatedly
* blocks on attempts to read data from the queue that was created within
* main_blinky(). When data is received, the task checks the value of the
* data, and if the value equals the expected 100, toggles an LED. The 'block
* time' parameter passed to the queue receive function specifies that the
* task should be held in the Blocked state indefinitely to wait for data to
* be available on the queue. The queue receive task will only leave the
* Blocked state when the queue send task writes to the queue. As the queue
* send task writes to the queue every 200 milliseconds, the queue receive
* task leaves the Blocked state every 200 milliseconds, and therefore toggles
* the LED every 200 milliseconds.
* in this file. It blocks on the queue to wait for data to arrive from the
* queue send task - toggling the LED each time it receives the value 100. The
* queue send task writes to the queue every 200ms, so the LED should toggle
* every 200ms.
*/
/* Kernel includes. */
@ -118,7 +108,7 @@
/* The rate at which data is sent to the queue. The 200ms value is converted
to ticks using the portTICK_PERIOD_MS constant. */
#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS )
#define mainQUEUE_SEND_FREQUENCY_MS ( pdMS_TO_TICKS( 200UL ) )
/* The number of items the queue can hold. This is 1 as the receive task
will remove items as they are added, meaning the send task should always find

View file

@ -92,6 +92,7 @@ void vInitialiseTimerForIntQueueTest( void )
/* Ensure interrupts do not start until full configuration is complete. */
portENTER_CRITICAL();
{
/* Give write access. */
SYSTEM.PRCR.WORD = 0xa502;
/* Cascade two 8bit timer channels to generate the interrupts.

View file

@ -71,8 +71,8 @@
#define INT_QUEUE_TIMER_H
void vInitialiseTimerForIntQueueTest( void );
portBASE_TYPE xTimer0Handler( void );
portBASE_TYPE xTimer1Handler( void );
BaseType_t xTimer0Handler( void );
BaseType_t xTimer1Handler( void );
#endif

View file

@ -81,7 +81,7 @@
*
******************************************************************************
*
* main_full() creates all the demo application tasks and software timers, then
* main_full() creates a set of demo application tasks and software timers, then
* starts the scheduler. The web documentation provides more details of the
* standard demo application tasks, which provide no particular functionality,
* but do provide a good example of how to use the FreeRTOS API.
@ -97,15 +97,14 @@
* error in the context switching mechanism.
*
* "Check" task - The check task period is initially set to three seconds. The
* task checks that all the standard demo tasks, and the register check tasks,
* are not only still executing, but are executing without reporting any errors.
* If the check task discovers that a task has either stalled, or reported an
* error, then it changes its own execution period from the initial three
* seconds, to just 200ms. The check task also toggles an LED each time it is
* called. This provides a visual indication of the system status: If the LED
* toggles every three seconds, then no issues have been discovered. If the LED
* toggles every 200ms, then an issue has been discovered with at least one
* task.
* task checks that all the standard demo tasks are not only still executing,
* but are executing without reporting any errors. If the check task discovers
* that a task has either stalled, or reported an error, then it changes its own
* execution period from the initial three seconds, to just 200ms. The check
* task also toggles an LED on each iteration of its loop. This provides a
* visual indication of the system status: If the LED toggles every three
* seconds, then no issues have been discovered. If the LED toggles every
* 200ms, then an issue has been discovered with at least one task.
*/
/* Standard includes. */
@ -146,25 +145,18 @@
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3UL )
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainUART_COMMAND_CONSOLE_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3UL )
#define mainCOM_TEST_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
#define mainQUEUE_OVERWRITE_PRIORITY ( tskIDLE_PRIORITY )
/* The priority used by the UART command console task. */
#define mainUART_COMMAND_CONSOLE_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
/* A block time of zero simply means "don't block". */
#define mainDONT_BLOCK ( 0UL )
/* The period after which the check timer will expire, in ms, provided no errors
have been reported by any of the standard demo tasks. ms are converted to the
equivalent in ticks using the portTICK_PERIOD_MS constant. */
#define mainNO_ERROR_CHECK_TASK_PERIOD ( 3000UL / portTICK_PERIOD_MS )
#define mainNO_ERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 3000UL )
/* The period at which the check timer will expire, in ms, if an error has been
reported in one of the standard demo tasks. ms are converted to the equivalent
in ticks using the portTICK_PERIOD_MS constant. */
#define mainERROR_CHECK_TASK_PERIOD ( 200UL / portTICK_PERIOD_MS )
#define mainERROR_CHECK_TASK_PERIOD pdMS_TO_TICKS( 200UL )
/* Parameters that are passed into the register check tasks solely for the
purpose of ensuring parameters are passed into tasks correctly. */
@ -218,9 +210,6 @@ then the register check tasks have not discovered any errors. If a variable
stops incrementing, then an error has been found. */
volatile unsigned long ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;
/* String for display in the web server. It is set to an error message if the
check task detects an error. */
const char *pcStatusMessage = "All tasks running without error";
/*-----------------------------------------------------------*/
void main_full( void )
@ -402,7 +391,6 @@ unsigned long ulErrorFound = pdFALSE;
gone wrong (it might just be that the loop back connector required
by the comtest tasks has not been fitted). */
xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;
pcStatusMessage = "Error found in at least one task.";
}
}
}
@ -410,7 +398,7 @@ unsigned long ulErrorFound = pdFALSE;
static void prvPseudoRandomiser( void *pvParameters )
{
const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = ( 35 / portTICK_PERIOD_MS );
const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = pdMS_TO_TICKS( 35 );
volatile uint32_t ulNextRand = ( uint32_t ) &pvParameters, ulValue;
/* This task does nothing other than ensure there is a little bit of

View file

@ -83,6 +83,8 @@
* THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO
* APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!
*
* http://www.freertos.org/RX231_RTOS_Renesas_GCC_IAR.html
*
*/
/* Scheduler include files. */
@ -92,7 +94,7 @@
/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,
or 0 to run the more comprehensive test and demo application. */
#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0
#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1
/*-----------------------------------------------------------*/
@ -120,6 +122,7 @@ void vApplicationTickHook( void );
/*-----------------------------------------------------------*/
/* See http://www.freertos.org/RX231_RTOS_Renesas_GCC_IAR.html */
int main( void )
{
/* Configure the hardware ready to run the demo. */