Update RX630 to add in some timer demo code, and remove all mention of Ethernet.

Minor comment corrections in the RX200 demo.
pull/1/head
Richard Barry 14 years ago
parent 56eb9ebec3
commit 3f3e6ba246

@ -16,7 +16,7 @@
[GENERAL_DATA_PROJECT] [GENERAL_DATA_PROJECT]
"FDT_UserBootAreaFiles" "" "FDT_UserBootAreaFiles" ""
[GENERAL_DATA_CONFIGURATION_Blinky] [GENERAL_DATA_CONFIGURATION_Blinky]
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" "PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE"
[SESSIONS_Blinky] [SESSIONS_Blinky]
"DefaultSession" "DefaultSession"
"SessionRX200_E1_E20_SYSTEM" "SessionRX200_E1_E20_SYSTEM"

@ -525,8 +525,6 @@
[WINDOW_POSITION_STATE_DATA_VD4] [WINDOW_POSITION_STATE_DATA_VD4]
[WINDOW_Z_ORDER] [WINDOW_Z_ORDER]
"{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" "{WK_TB00000028_RTOSDEBUG} TOOLBAR 0"
"{WK_TB00000013_SYMBOL} TOOLBAR 0"
"{WK_TB00000011_CPU} TOOLBAR 0"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c"
[TARGET_NAME] [TARGET_NAME]
@ -551,8 +549,8 @@
"SBK_TAR_EMUE100|Exception" 1 "SBK_TAR_EMUE100|Exception" 1
"SBK_TAR_EMUE100|BreakCondition" 1 "SBK_TAR_EMUE100|BreakCondition" 1
"SBK_TAR_EMUE100|TaskID" 1 "SBK_TAR_EMUE100|TaskID" 1
"SBK_TAR_EMUE100|PC" 1
"SBK_TAR_EMUE100|ExecutionTime" 1 "SBK_TAR_EMUE100|ExecutionTime" 1
"SBK_TAR_EMUE100|PC" 1
[STATUSBAR_DEBUGGER_PANESTATE_VD2] [STATUSBAR_DEBUGGER_PANESTATE_VD2]
[STATUSBAR_DEBUGGER_PANESTATE_VD3] [STATUSBAR_DEBUGGER_PANESTATE_VD3]
[STATUSBAR_DEBUGGER_PANESTATE_VD4] [STATUSBAR_DEBUGGER_PANESTATE_VD4]

@ -82,7 +82,7 @@
* standard demo tasks are not only still executing, but are executing without * standard demo tasks are not only still executing, but are executing without
* reporting any errors. If the check timer discovers that a task has either * reporting any errors. If the check timer discovers that a task has either
* stalled, or reported an error, then it changes its own period from the * stalled, or reported an error, then it changes its own period from the
* initial three seconds, to just 200ms. The check timer callback function * initial five seconds, to just 200ms. The check timer callback function
* also toggles LED 3 each time it is called. This provides a visual * also toggles LED 3 each time it is called. This provides a visual
* indication of the system status: If the LED toggles every five seconds, * indication of the system status: If the LED toggles every five seconds,
* then no issues have been discovered. If the LED toggles every 200ms, then * then no issues have been discovered. If the LED toggles every 200ms, then
@ -164,7 +164,7 @@ The tasks check that the values are passed in correctly. */
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )
/* The LED toggled by the check task. */ /* The LED toggled by the check timer. */
#define mainCHECK_LED ( 3 ) #define mainCHECK_LED ( 3 )
/* The period at which the check timer will expire, in ms, provided no errors /* The period at which the check timer will expire, in ms, provided no errors
@ -234,7 +234,7 @@ static void prvCheckTimerCallback( xTimerHandle xTimer );
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Variables that are incremented on each iteration of the reg test tasks - /* Variables that are incremented on each iteration of the reg test tasks -
provided the tasks have not reported any errors. The check task inspects these provided the tasks have not reported any errors. The check timer inspects these
variables to ensure they are still incrementing as expected. If a variable variables to ensure they are still incrementing as expected. If a variable
stops incrementing then it is likely that its associate task has stalled. */ stops incrementing then it is likely that its associate task has stalled. */
unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL; unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;
@ -304,62 +304,52 @@ extern void HardwareSetup( void );
for( ;; ); for( ;; );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
volatile long temp = 0;
static void prvCheckTimerCallback( xTimerHandle xTimer ) static void prvCheckTimerCallback( xTimerHandle xTimer )
{ {
static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS; static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;
static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL; static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;
volatile long temp2;
/* Check the standard demo tasks are running without error. */ /* Check the standard demo tasks are running without error. */
if( xAreGenericQueueTasksStillRunning() != pdTRUE ) if( xAreGenericQueueTasksStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 1;
} }
else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) else if( xAreQueuePeekTasksStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 2;
} }
else if( xAreBlockingQueuesStillRunning() != pdTRUE ) else if( xAreBlockingQueuesStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 3;
} }
else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 4;
} }
else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) else if( xAreSemaphoreTasksStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 5;
} }
else if( xArePollingQueuesStillRunning() != pdTRUE ) else if( xArePollingQueuesStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 6;
} }
else if( xIsCreateTaskStillRunning() != pdTRUE ) else if( xIsCreateTaskStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 7;
} }
else if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 8;
} }
else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 9;
} }
else if( xAreIntQueueTasksStillRunning() != pdPASS ) else if( xAreIntQueueTasksStillRunning() != pdPASS )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 10;
} }
/* Check the reg test tasks are still cycling. They will stop incrementing /* Check the reg test tasks are still cycling. They will stop incrementing
@ -367,13 +357,11 @@ volatile long temp2;
if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 11;
} }
if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )
{ {
lErrorStatus = pdFAIL; lErrorStatus = pdFAIL;
temp = 12;
} }
ulLastRegTest1CycleCount = ulRegTest1CycleCount; ulLastRegTest1CycleCount = ulRegTest1CycleCount;
@ -387,7 +375,6 @@ volatile long temp2;
/* Was an error detected this time through the callback execution? */ /* Was an error detected this time through the callback execution? */
if( lErrorStatus != pdPASS ) if( lErrorStatus != pdPASS )
{ {
temp2 = temp;
if( lChangedTimerPeriodAlready == pdFALSE ) if( lChangedTimerPeriodAlready == pdFALSE )
{ {
lChangedTimerPeriodAlready = pdTRUE; lChangedTimerPeriodAlready = pdTRUE;
@ -582,7 +569,7 @@ TestLoop1:
RegTest1Error: RegTest1Error:
; A compare failed, just loop here so the loop counter stops incrementing ; A compare failed, just loop here so the loop counter stops incrementing
; causing the check task to indicate the error. ; causing the check timer to indicate the error.
BRA RegTest1Error BRA RegTest1Error
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -660,7 +647,7 @@ TestLoop2:
RegTest2Error: RegTest2Error:
; A compare failed, just loop here so the loop counter stops incrementing ; A compare failed, just loop here so the loop counter stops incrementing
; - causing the check task to indicate the error. ; - causing the check timer to indicate the error.
BRA RegTest2Error BRA RegTest2Error
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/

@ -7,15 +7,11 @@
[GENERAL_DATA] [GENERAL_DATA]
[BREAKPOINTS] [BREAKPOINTS]
[OPEN_WORKSPACE_FILES] [OPEN_WORKSPACE_FILES]
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c"
[WORKSPACE_FILE_STATES] [WORKSPACE_FILE_STATES]
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" 66 66 1104 430 0 3 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c" 66 66 1126 360 0 1
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" 0 0 1144 335 0 0 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c" -4 -23 1310 581 1 0
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c" -4 -23 1310 655 1 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" 22 22 1104 430 0 1
[LOADED_PROJECTS] [LOADED_PROJECTS]
"RTOSDemo" "RTOSDemo"
[END] [END]

@ -70,7 +70,7 @@
*----------------------------------------------------------*/ *----------------------------------------------------------*/
#define configUSE_PREEMPTION 1 #define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0 #define configUSE_IDLE_HOOK 1
#define configUSE_TICK_HOOK 0 #define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ICLK_FREQUENCY ) /* Set in rskrx630def.h. */ #define configCPU_CLOCK_HZ ( ICLK_FREQUENCY ) /* Set in rskrx630def.h. */
#define configPERIPHERAL_CLOCK_HZ ( PCLKB_FREQUENCY ) /* Set in rskrx630def.h. */ #define configPERIPHERAL_CLOCK_HZ ( PCLKB_FREQUENCY ) /* Set in rskrx630def.h. */

@ -11,9 +11,7 @@
[CONFIGURATIONS] [CONFIGURATIONS]
"Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Blinky" "Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Blinky"
"Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Debug" "Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Debug"
"Debug_RX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Debug_RX600_E1_E20_SYSTEM"
"Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Debug_with_optimisation" "Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Debug_with_optimisation"
"SimDebug_RX600" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\SimDebug_RX600"
[BUILD_PHASES] [BUILD_PHASES]
"Renesas OptLinker" 1 "Renesas OptLinker" 1
"Renesas RX Assembler" 1 "Renesas RX Assembler" 1
@ -211,12 +209,8 @@
[ON_DEMAND_COMPONENTS_LOADED] [ON_DEMAND_COMPONENTS_LOADED]
[SYNC_SESSION_NAMES] [SYNC_SESSION_NAMES]
[SESSIONS] [SESSIONS]
"DefaultSession" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\DefaultSession.hsf" 0
"SessionRX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\SessionRX600_E1_E20_SYSTEM.hsf" 0 "SessionRX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\SessionRX600_E1_E20_SYSTEM.hsf" 0
"SimSessionRX600" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\SimSessionRX600.hsf" 0
[GENERAL_DATA_SESSION_DefaultSession]
[GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM]
[GENERAL_DATA_SESSION_SimSessionRX600]
[OPTIONS_Blinky_Renesas OptLinker] [OPTIONS_Blinky_Renesas OptLinker]
"Single Shot" "06a7a4a28738cc10" 5 "Single Shot" "06a7a4a28738cc10" 5
[OPTIONS_Blinky_Renesas RX Assembler] [OPTIONS_Blinky_Renesas RX Assembler]
@ -357,69 +351,8 @@
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c"
[LINKAGE_ORDER_Debug] [LINKAGE_ORDER_Debug]
[GENERAL_DATA_CONFIGURATION_Debug] [GENERAL_DATA_CONFIGURATION_Debug]
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas OptLinker]
"Single Shot" "058b41409738cc10" 5
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Assembler]
"Assembly source file" "0d805402da28cc10" 4
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0d805402da28cc10" 4
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "0d805402da28cc10" 4
"Linkage symbol file" "0d805402da28cc10" 4
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Compiler]
"C source file" "02d403988738cc10" 2
"C++ source file" "02d403988738cc10" 3
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\ParTest.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\cgc.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "02d403988738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "02d403988738cc10" 2
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Library Generator]
"Single Shot" "05beda5b8738cc10" 1
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Configurator]
"Single Shot" "0bf59a677438cc10" 6
[OPTIONS_Debug_RX600_E1_E20_SYSTEM]
"" 0
"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6
"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|LISTFILE|0] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 4
"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\Renesas-Files^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16]
" 3
"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\Renesas-Files^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16]
" 2
"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NEW|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16]
" 1
"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(00)|PResetPRG(0FFE00000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFE01000)|FIXEDVECT(0FFFFFFD0)]
" 5
[EXCLUDED_FILES_Debug_RX600_E1_E20_SYSTEM]
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c"
[LINKAGE_ORDER_Debug_RX600_E1_E20_SYSTEM]
[GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM]
[OPTIONS_Debug_with_optimisation_Renesas OptLinker] [OPTIONS_Debug_with_optimisation_Renesas OptLinker]
"Single Shot" "02af16b39738cc10" 5 "Single Shot" "026be049ed48cc10" 5
[OPTIONS_Debug_with_optimisation_Renesas RX Assembler] [OPTIONS_Debug_with_optimisation_Renesas RX Assembler]
"Assembly source file" "0c257402da28cc10" 4 "Assembly source file" "0c257402da28cc10" 4
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0c257402da28cc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0c257402da28cc10" 4
@ -474,118 +407,21 @@
" 2 " 2
"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] "[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1]
" 1 " 1
"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|SPACE|^"FF^"] [S|OPTIMIZEITEMS|SPEED] [S|START|B_RX_DESC,B_TX_DESC,B_ETHERNET_BUFFERS,B_1,R_1,B_2,R_2,B,R,SU,SI(00)|PResetPRG(0FFE00000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFE01000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1] "[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|SPACE|^"FF^"] [S|OPTIMIZEITEMS|SPEED] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(00)|PResetPRG(0FFE00000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFE01000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1]
" 5 " 5
[EXCLUDED_FILES_Debug_with_optimisation] [EXCLUDED_FILES_Debug_with_optimisation]
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c"
[LINKAGE_ORDER_Debug_with_optimisation] [LINKAGE_ORDER_Debug_with_optimisation]
[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation] [GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]
[OPTIONS_SimDebug_RX600_Renesas OptLinker]
"Single Shot" "027615ed9738cc10" 5
[OPTIONS_SimDebug_RX600_Renesas RX Assembler]
"Assembly source file" "07f86402da28cc10" 4
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "07f86402da28cc10" 4
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "07f86402da28cc10" 4
"Linkage symbol file" "07f86402da28cc10" 4
[OPTIONS_SimDebug_RX600_Renesas RX C/C++ Compiler]
"C source file" "074935dc9738cc10" 2
"C++ source file" "074935dc9738cc10" 3
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\ParTest.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\cgc.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "074935dc9738cc10" 2
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "074935dc9738cc10" 2
[OPTIONS_SimDebug_RX600_Renesas RX C/C++ Library Generator]
"Single Shot" "0cd2772f9738cc10" 1
[OPTIONS_SimDebug_RX600_Renesas RX Configurator]
"Single Shot" "0bf59a677438cc10" 6
[OPTIONS_SimDebug_RX600]
"" 0
"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6
"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|LISTFILE|0] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 4
"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\Renesas-Files^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16]
" 3
"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\Renesas-Files^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16]
" 2
"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NEW|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [I|PID|16]
" 1
"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(00)|PResetPRG(0FFE00000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFE01000)|FIXEDVECT(0FFFFFFD0)]
" 5
[EXCLUDED_FILES_SimDebug_RX600]
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c"
[LINKAGE_ORDER_SimDebug_RX600]
[GENERAL_DATA_CONFIGURATION_SimDebug_RX600]
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
[SESSION_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
"MEMORY_MAPPING_OPTIONS" ""
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM]
[SESSION_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM]
"MEMORY_MAPPING_OPTIONS" "Unknown Options" "MEMORY_MAPPING_OPTIONS" "Unknown Options"
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SimSessionRX600]
[SESSION_DATA_CONFIGURATION_SESSION_Blinky_SimSessionRX600]
"MEMORY_MAPPING_OPTIONS" "[V|VERSION|1] [S|CPUTYPE|^"Other (RX600)^"] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,0101,2 0x00080000,0x000FFFFF,I/O,32,0101,2 0x00100000,0x00107FFF,ROM,32,0101,2 0x007F8000,0x007F9FFF,RAM,32,0101,2 0x007FC000,0x007FC4FF,I/O,32,0101,2 0x007FFC00,0x007FFFFF,I/O,32,0101,2 0x00E00000,0x00FFFFFF,ROM,32,0101,2 0xFEFFE000,0xFEFFFFFF,ROM,32,0101,2 0xFF7FC000,0xFF7FFFFF,ROM,32,0101,2 0xFFE00000,0xFFFFFFFF,ROM,32,0101,2^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W ^"] [B|SIMIOF|0] [I|SIMIOADR|0x0] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"]"
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_DefaultSession]
"MEMORY_MAPPING_OPTIONS" ""
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM]
"MEMORY_MAPPING_OPTIONS" "Unknown Options" "MEMORY_MAPPING_OPTIONS" "Unknown Options"
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SimSessionRX600]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_SimSessionRX600]
"MEMORY_MAPPING_OPTIONS" "[V|VERSION|1] [S|CPUTYPE|^"Other (RX600)^"] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,0101,2 0x00080000,0x000FFFFF,I/O,32,0101,2 0x00100000,0x00107FFF,ROM,32,0101,2 0x007F8000,0x007F9FFF,RAM,32,0101,2 0x007FC000,0x007FC4FF,I/O,32,0101,2 0x007FFC00,0x007FFFFF,I/O,32,0101,2 0x00E00000,0x00FFFFFF,ROM,32,0101,2 0xFEFFE000,0xFEFFFFFF,ROM,32,0101,2 0xFF7FC000,0xFF7FFFFF,ROM,32,0101,2 0xFFE00000,0xFFFFFFFF,ROM,32,0101,2^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W ^"] [B|SIMIOF|0] [I|SIMIOADR|0x0] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"]"
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]
"MEMORY_MAPPING_OPTIONS" ""
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX600_E1_E20_SYSTEM]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX600_E1_E20_SYSTEM]
"MEMORY_MAPPING_OPTIONS" "Unknown Options"
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SimSessionRX600]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SimSessionRX600]
"MEMORY_MAPPING_OPTIONS" "[V|VERSION|1] [S|CPUTYPE|^"Other (RX600)^"] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,0101,2 0x00080000,0x000FFFFF,I/O,32,0101,2 0x00100000,0x00107FFF,ROM,32,0101,2 0x007F8000,0x007F9FFF,RAM,32,0101,2 0x007FC000,0x007FC4FF,I/O,32,0101,2 0x007FFC00,0x007FFFFF,I/O,32,0101,2 0x00E00000,0x00FFFFFF,ROM,32,0101,2 0xFEFFE000,0xFEFFFFFF,ROM,32,0101,2 0xFF7FC000,0xFF7FFFFF,ROM,32,0101,2 0xFFE00000,0xFFFFFFFF,ROM,32,0101,2^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W ^"] [B|SIMIOF|0] [I|SIMIOADR|0x0] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"]"
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
"MEMORY_MAPPING_OPTIONS" ""
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM]
"MEMORY_MAPPING_OPTIONS" "Unknown Options" "MEMORY_MAPPING_OPTIONS" "Unknown Options"
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SimSessionRX600]
[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SimSessionRX600]
"MEMORY_MAPPING_OPTIONS" "[V|VERSION|1] [S|CPUTYPE|^"Other (RX600)^"] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,0101,2 0x00080000,0x000FFFFF,I/O,32,0101,2 0x00100000,0x00107FFF,ROM,32,0101,2 0x007F8000,0x007F9FFF,RAM,32,0101,2 0x007FC000,0x007FC4FF,I/O,32,0101,2 0x007FFC00,0x007FFFFF,I/O,32,0101,2 0x00E00000,0x00FFFFFF,ROM,32,0101,2 0xFEFFE000,0xFEFFFFFF,ROM,32,0101,2 0xFF7FC000,0xFF7FFFFF,ROM,32,0101,2 0xFFE00000,0xFFFFFFFF,ROM,32,0101,2^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W ^"] [B|SIMIOF|0] [I|SIMIOADR|0x0] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"]"
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]
[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]
"MEMORY_MAPPING_OPTIONS" ""
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX600_E1_E20_SYSTEM]
[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX600_E1_E20_SYSTEM]
"MEMORY_MAPPING_OPTIONS" "Unknown Options"
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SimSessionRX600]
[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SimSessionRX600]
"MEMORY_MAPPING_OPTIONS" "[V|VERSION|1] [S|CPUTYPE|^"Other (RX600)^"] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,0101,2 0x00080000,0x000FFFFF,I/O,32,0101,2 0x00100000,0x00107FFF,ROM,32,0101,2 0x007F8000,0x007F9FFF,RAM,32,0101,2 0x007FC000,0x007FC4FF,I/O,32,0101,2 0x007FFC00,0x007FFFFF,I/O,32,0101,2 0x00E00000,0x00FFFFFF,ROM,32,0101,2 0xFEFFE000,0xFEFFFFFF,ROM,32,0101,2 0xFF7FC000,0xFF7FFFFF,ROM,32,0101,2 0xFFE00000,0xFFFFFFFF,ROM,32,0101,2^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W ^"] [B|SIMIOF|0] [I|SIMIOADR|0x0] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"]"
[EXT_DEBUGGER_INFO] [EXT_DEBUGGER_INFO]
0 "" "" "" "" 0 "" "" "" ""
[END] [END]

@ -3,15 +3,11 @@
[DATABASE_VERSION] [DATABASE_VERSION]
"1.1" "1.1"
[SESSIONS_] [SESSIONS_]
"DefaultSession"
"SessionRX600_E1_E20_SYSTEM" "SessionRX600_E1_E20_SYSTEM"
"SimSessionRX600"
[CONFIGURATIONS] [CONFIGURATIONS]
"Blinky" "Blinky"
"Debug" "Debug"
"Debug_RX600_E1_E20_SYSTEM"
"Debug_with_optimisation" "Debug_with_optimisation"
"SimDebug_RX600"
[CURRENT_CONFIGURATION] [CURRENT_CONFIGURATION]
"Debug" "Debug"
[CURRENT_SESSION] [CURRENT_SESSION]
@ -19,51 +15,19 @@
[GENERAL_DATA_PROJECT] [GENERAL_DATA_PROJECT]
"FDT_UserBootAreaFiles" "" "FDT_UserBootAreaFiles" ""
[GENERAL_DATA_CONFIGURATION_Blinky] [GENERAL_DATA_CONFIGURATION_Blinky]
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" "PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
[SESSIONS_Blinky] [SESSIONS_Blinky]
"DefaultSession"
"SessionRX600_E1_E20_SYSTEM" "SessionRX600_E1_E20_SYSTEM"
"SimSessionRX600"
[GENERAL_DATA_CONFIGURATION_Debug] [GENERAL_DATA_CONFIGURATION_Debug]
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" "PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
[SESSIONS_Debug] [SESSIONS_Debug]
"DefaultSession"
"SessionRX600_E1_E20_SYSTEM"
"SimSessionRX600"
[GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM]
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
[SESSIONS_Debug_RX600_E1_E20_SYSTEM]
"DefaultSession"
"SessionRX600_E1_E20_SYSTEM" "SessionRX600_E1_E20_SYSTEM"
"SimSessionRX600"
[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation] [GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" "PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
[SESSIONS_Debug_with_optimisation] [SESSIONS_Debug_with_optimisation]
"DefaultSession"
"SessionRX600_E1_E20_SYSTEM"
"SimSessionRX600"
[GENERAL_DATA_CONFIGURATION_SimDebug_RX600]
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
[SESSIONS_SimDebug_RX600]
"DefaultSession"
"SessionRX600_E1_E20_SYSTEM" "SessionRX600_E1_E20_SYSTEM"
"SimSessionRX600"
[GENERAL_DATA_SESSION_SimSessionRX600]
[GENERAL_DATA_SESSION_DefaultSession]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SimSessionRX600]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SimSessionRX600]
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM]
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX600_E1_E20_SYSTEM]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession]
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX600_E1_E20_SYSTEM]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SimSessionRX600]
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SimSessionRX600]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SimSessionRX600]
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM]
[GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM]
[END] [END]

@ -104,28 +104,28 @@
"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" "{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "16777216" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "16777216"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "768" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "768"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000007500" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "000000000000092C"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "00000000C4658E35" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "000000000000BAA4"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000007500" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "000000000000092C"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000C378" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000C044"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000030000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000030003"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFE02C63" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFE044D3"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "00000000CA0A613B" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "000000000000B940"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000FFE01388" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000FFE013C8"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000040000100" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000000000100"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "00008A613AE30000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "1234567887650000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "0000000000000001"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "000000000000FEEE" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000001"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "000000000000FEED" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "000000000000B940"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "00000000A5A5A5A5"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "00000000A5A5A5A5"
@ -470,13 +470,13 @@
[WINDOW_POSITION_STATE_DATA_VD1] [WINDOW_POSITION_STATE_DATA_VD1]
"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" "Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0"
"QzROM" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0" "QzROM" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0"
"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 205 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0" "{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 297 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0"
"{WK_00000001_DEBUGCONSOLE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 1 "1.00" 374 0 0 350 200 17 0 "57634|57637|57633|<<separator>>|32781|32782|<<separator>>|32780|32785|32787" "0.0" "{WK_00000001_DEBUGCONSOLE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 1 "1.00" 374 0 0 350 200 17 0 "57634|57637|57633|<<separator>>|32781|32782|<<separator>>|32780|32785|32787" "0.0"
"{WK_00000001_DEBUGCONSOLE}" "WINDOW" 59422 5 0 "1.00" 146 0 0 350 200 17 0 "57634|57637|57633|<<separator>>|32781|32782|<<separator>>|32780|32785|32787" "0.0" "{WK_00000001_DEBUGCONSOLE}" "WINDOW" 59422 5 0 "1.00" 146 0 0 350 200 17 0 "57634|57637|57633|<<separator>>|32781|32782|<<separator>>|32780|32785|32787" "0.0"
"{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 1310 655 9 0 "" "0.0" "{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 1310 655 9 0 "" "0.0"
"{WK_00000001_IO}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 2 "0.35" 187 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0" "{WK_00000001_IO}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 2 "0.35" 187 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0"
"{WK_00000001_MEMORY}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.54" 277 0 0 350 200 2065 0 "42202|42203|42204|42233|<<separator>>|42206|42205|42230|42229|42207|<<separator>>|42208|42209|42210|49076|42228|42227|<<separator>>|42231|42232|42234|42235|<<separator>>|42211|<<separator>>" "0.0" "{WK_00000001_MEMORY}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.54" 277 0 0 350 200 2065 0 "42202|42203|42204|42233|<<separator>>|42206|42205|42230|42229|42207|<<separator>>|42208|42209|42210|49076|42228|42227|<<separator>>|42231|42232|42234|42235|<<separator>>|42211|<<separator>>" "0.0"
"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 205 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0" "{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 297 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0"
"{WK_00000001_REGISTERS}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "0.87" 413 0 0 350 200 2065 0 "" "0.0" "{WK_00000001_REGISTERS}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "0.87" 413 0 0 350 200 2065 0 "" "0.0"
"{WK_00000001_STACKTRACE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.50" 277 0 0 350 200 2065 0 "" "0.0" "{WK_00000001_STACKTRACE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.50" 277 0 0 350 200 2065 0 "" "0.0"
"{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "1.00" 374 0 0 853 610 17 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811" "0.0" "{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "1.00" 374 0 0 853 610 17 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811" "0.0"
@ -486,7 +486,7 @@
"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0"
"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0"
"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" "{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0"
"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 2 2 "0.00" 0 914 231 0 0 18 0 "" "0.0" "{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 2 1 "0.00" 0 914 231 0 0 18 0 "" "0.0"
"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 0 0 "0.00" 0 298 189 0 0 18 0 "" "0.0" "{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 0 0 "0.00" 0 298 189 0 0 18 0 "" "0.0"
"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0"
"{WK_TB00000011_CPU}" "TOOLBAR 0" 0 0 0 "0.00" 0 427 225 0 0 5 0 "" "0.0" "{WK_TB00000011_CPU}" "TOOLBAR 0" 0 0 0 "0.00" 0 427 225 0 0 5 0 "" "0.0"
@ -508,12 +508,8 @@
[WINDOW_POSITION_STATE_DATA_VD4] [WINDOW_POSITION_STATE_DATA_VD4]
[WINDOW_Z_ORDER] [WINDOW_Z_ORDER]
"{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" "{WK_TB00000028_RTOSDEBUG} TOOLBAR 0"
"{WK_TB00000013_SYMBOL} TOOLBAR 0"
"{WK_TB00000011_CPU} TOOLBAR 0"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-full.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\main-blinky.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c"
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX630-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c"
[TARGET_NAME] [TARGET_NAME]
"RX E1/E20 SYSTEM" "" 0 "RX E1/E20 SYSTEM" "" 0
[STATUSBAR_STATEINFO_VD1] [STATUSBAR_STATEINFO_VD1]

@ -92,7 +92,8 @@ static void prvQueueSendTask( void *pvParameters );
static xQueueHandle xQueue = NULL; static xQueueHandle xQueue = NULL;
/* This variable is not used by this simple Blinky example. It is defined /* This variable is not used by this simple Blinky example. It is defined
purely to allow the project to link as it is used by the full project. */ purely to allow the project to link as it is used by the full build
configuration. */
volatile unsigned long ulHighFrequencyTickCount = 0UL; volatile unsigned long ulHighFrequencyTickCount = 0UL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -120,9 +121,9 @@ extern void HardwareSetup( void );
vTaskStartScheduler(); vTaskStartScheduler();
} }
/* If all is well we will never reach here as the scheduler will now be /* If all is well the next line of code will not be reached as the scheduler
running. If we do reach here then it is likely that there was insufficient will be running. If the next line is reached then it is likely that there was
heap available for the idle task to be created. */ insufficient heap available for the idle task to be created. */
for( ;; ); for( ;; );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -144,8 +145,10 @@ const unsigned long ulValueToSend = 100UL;
/* Send to the queue - causing the queue receive task to flash its LED. 0 /* Send to the queue - causing the queue receive task to flash its LED. 0
is used so the send does not block - it shouldn't need to as the queue is used so the send does not block - it shouldn't need to as the queue
should always be empty here. */ should always be empty here (it should always be empty because the task
xQueueSend( xQueue, &ulValueToSend, 0 ); removing items from the queue has a higher priority than the task adding
things to the queue). */
xQueueSend( xQueue, &ulValueToSend, 0UL );
} }
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -171,6 +174,11 @@ unsigned long ulReceivedValue;
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* A callback function named vApplicationSetupTimerInterrupt() must be defined
to configure a tick interrupt source, and configTICK_VECTOR set in
FreeRTOSConfig.h to install the tick interrupt handler in the correct position
in the vector table. This example uses a compare match timer. It can be
into any FreeRTOS project, provided the same compare match timer is available. */
void vApplicationSetupTimerInterrupt( void ) void vApplicationSetupTimerInterrupt( void )
{ {
/* Enable compare match timer 0. */ /* Enable compare match timer 0. */
@ -196,24 +204,28 @@ void vApplicationSetupTimerInterrupt( void )
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* This function is explained by the comments above its prototype at the top /* If configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h, then this
of this file. */ function will be called if pvPortMalloc() returns NULL because it has exhausted
the available FreeRTOS heap space. See http://www.freertos.org/a00111.html. */
void vApplicationMallocFailedHook( void ) void vApplicationMallocFailedHook( void )
{ {
for( ;; ); for( ;; );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* This function is explained by the comments above its prototype at the top /* If configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2 in
of this file. */ FreeRTOSConfig.h, then this function will be called if a task overflows its
stack space. See
http://www.freertos.org/Stacks-and-stack-overflow-checking.html. */
void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName ) void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )
{ {
for( ;; ); for( ;; );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* This function is explained by the comments above its prototype at the top /* If configUSE_IDLE_HOOK is set to 1 in FreeRTOSConfig.h, then this function
of this file. */ will be called on each iteration of the idle task. See
http://www.freertos.org/a00016.html */
void vApplicationIdleHook( void ) void vApplicationIdleHook( void )
{ {
/* Just to prevent the variable getting optimised away. */ /* Just to prevent the variable getting optimised away. */

@ -54,7 +54,8 @@
/* **************************************************************************** /* ****************************************************************************
* This project includes a lot of tasks and tests and is therefore complex. * This project includes a lot of tasks and tests and is therefore complex.
* If you would prefer a much simpler project to get started with then select * If you would prefer a much simpler project to get started with then select
* the 'Blinky' build configuration within the HEW IDE. * the 'Blinky' build configuration within the HEW IDE. The Blinky build
* configuration uses main-blinky.c instead of main-full.c.
* **************************************************************************** * ****************************************************************************
* *
* Creates all the demo application tasks, then starts the scheduler. The web * Creates all the demo application tasks, then starts the scheduler. The web
@ -67,33 +68,35 @@
* In addition to the standard demo tasks, the following tasks and tests are * In addition to the standard demo tasks, the following tasks and tests are
* defined and/or created within this file: * defined and/or created within this file:
* *
* "Reg test" tasks - These fill the registers with known values, then check * "Reg test" tasks - These fill the registers with known values, then
* that each register still contains its expected value. Each task uses * repeatedly check that each register still contains its expected value for
* different values. The tasks run with very low priority so get preempted * the lifetime of the tasks. Each task uses different values. The tasks run
* very frequently. A check variable is incremented on each iteration of the * with very low priority so get preempted very frequently. A check variable
* test loop. A register containing an unexpected value is indicative of an * is incremented on each iteration of the test loop. A register containing an
* error in the context switching mechanism and will result in a branch to a * unexpected value is indicative of an error in the context switching
* null loop - which in turn will prevent the check variable from incrementing * mechanism and will result in a branch to a null loop - which in turn will
* any further and allow the check task (described below) to determine that an * prevent the check variable from incrementing any further and allow the check
* error has occurred. The nature of the reg test tasks necessitates that they * timer (described below) to determine that an error has occurred. The nature
* are written in assembly code. * of the reg test tasks necessitates that they are written in assembly code.
* *
* "Check" task - This only executes every five seconds but has a high priority * "Check Timer" and Callback Function - The check timer period is initially
* to ensure it gets processor time. Its main function is to check that all the * set to five seconds. The check timer callback function checks that all the
* standard demo tasks are still operational. While no errors have been * standard demo tasks are not only still executing, but are executing without
* discovered the check task will toggle LED 5 every 5 seconds - the toggle * reporting any errors. If the check timer discovers that a task has either
* rate increasing to 200ms being a visual indication that at least one task has * stalled, or reported an error, then it changes its own period from the
* reported unexpected behaviour. * initial five seconds, to just 200ms. The check timer callback function
* also toggles LED 3 each time it is called. This provides a visual
* indication of the system status: If the LED toggles every five seconds,
* then no issues have been discovered. If the LED toggles every 200ms, then
* an issue has been discovered with at least one task.
* *
* "High frequency timer test" - A high frequency periodic interrupt is * "High frequency timer test" - A high frequency periodic interrupt is
* generated using a timer - the interrupt is assigned a priority above * generated using a timer - the interrupt is assigned a priority above
* configMAX_SYSCALL_INTERRUPT_PRIORITY so should not be effected by anything * configMAX_SYSCALL_INTERRUPT_PRIORITY, so will not be effected by anything
* the kernel is doing. The frequency and priority of the interrupt, in * the kernel is doing. The frequency and priority of the interrupt, in
* combination with other standard tests executed in this demo, should result * combination with other standard tests executed in this demo, will result
* in interrupts nesting at least 3 and probably 4 deep. This test is only * in interrupts nesting at least 3 and probably 4 deep. This test is only
* included in build configurations that have the optimiser switched on. In * included in build configurations that have the optimiser switched on.
* optimised builds the count of high frequency ticks is used as the time base
* for the run time stats.
* *
* *NOTE 1* If LED3 is toggling every 5 seconds then all the demo application * *NOTE 1* If LED3 is toggling every 5 seconds then all the demo application
* tasks are executing as expected and no errors have been reported in any * tasks are executing as expected and no errors have been reported in any
@ -118,6 +121,8 @@
/* Kernel includes. */ /* Kernel includes. */
#include "FreeRTOS.h" #include "FreeRTOS.h"
#include "task.h" #include "task.h"
#include "timers.h"
#include "semphr.h"
/* Standard demo includes. */ /* Standard demo includes. */
#include "partest.h" #include "partest.h"
@ -140,33 +145,30 @@ tasks check that the values are passed in correctly. */
#define mainREG_TEST_2_PARAMETER ( 0x12345678UL ) #define mainREG_TEST_2_PARAMETER ( 0x12345678UL )
/* Priorities at which the tasks are created. */ /* Priorities at which the tasks are created. */
#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 ) #define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) #define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
#define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainuIP_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )
/* The WEB server uses string handling functions, which in turn use a bit more /* The LED toggled by the check timer. */
stack than most of the other tasks. */
#define mainuIP_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3 )
/* The LED toggled by the check task. */
#define mainCHECK_LED ( 3 ) #define mainCHECK_LED ( 3 )
/* The rate at which mainCHECK_LED will toggle when all the tasks are running /* The period at which the check timer will expire, in ms, provided no errors
without error. Controlled by the check task as described at the top of this have been reported by any of the standard demo tasks. ms are converted to the
file. */ equivalent in ticks using the portTICK_RATE_MS constant. */
#define mainNO_ERROR_CYCLE_TIME ( 5000 / portTICK_RATE_MS ) #define mainCHECK_TIMER_PERIOD_MS ( 5000UL / portTICK_RATE_MS )
/* 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_RATE_MS constant. */
#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_RATE_MS )
/* The rate at which mainCHECK_LED will toggle when an error has been reported /* A block time of zero simple means "Don't Block". */
by at least one task. Controlled by the check task as described at the top of #define mainDONT_BLOCK ( 0UL )
this file. */
#define mainERROR_CYCLE_TIME ( 200 / portTICK_RATE_MS )
/* /*
* vApplicationMallocFailedHook() will only be called if * vApplicationMallocFailedHook() will only be called if
@ -214,27 +216,22 @@ static void prvRegTest1Implementation( void );
static void prvRegTest2Implementation( void ); static void prvRegTest2Implementation( void );
/* /*
* The check task as described at the top of this file. * The check timer callback function, as described at the top of this file.
*/ */
static void prvCheckTask( void *pvParameters ); static void prvCheckTimerCallback( xTimerHandle xTimer );
/*
* Contains the implementation of the WEB server.
*/
extern void vuIP_Task( void *pvParameters );
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Variables that are incremented on each iteration of the reg test tasks - /* Variables that are incremented on each iteration of the reg test tasks -
provided the tasks have not reported any errors. The check task inspects these provided the tasks have not reported any errors. The check timer inspects these
variables to ensure they are still incrementing as expected. If a variable variables to ensure they are still incrementing as expected. If a variable
stops incrementing then it is likely that its associate task has stalled. */ stops incrementing then it is likely that its associate task has stalled. */
unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL; unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;
/* The status message that is displayed at the bottom of the "task stats" web /* The check timer. This uses prvCheckTimerCallback() as its callback
page, which is served by the uIP task. This will report any errors picked up function. */
by the reg test task. */ static xTimerHandle xCheckTimer = NULL;
const char *pcStatusMessage = "All tasks executing without error.";
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -253,9 +250,6 @@ extern void HardwareSetup( void );
xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL ); xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );
xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL ); xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );
/* Start the check task as described at the top of this file. */
xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE * 3, NULL, mainCHECK_TASK_PRIORITY, NULL );
/* Create the standard demo tasks. */ /* Create the standard demo tasks. */
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
vCreateBlockTimeTasks(); vCreateBlockTimeTasks();
@ -274,110 +268,95 @@ extern void HardwareSetup( void );
or not the correct/expected number of tasks are running at any given time. */ or not the correct/expected number of tasks are running at any given time. */
vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );
/* Create the software timer that performs the 'check' functionality,
as described at the top of this file. */
xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */
( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 5000ms (5s). */
pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
( void * ) 0, /* The ID is not used, so can be set to anything. */
prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */
);
/* Sanity check that the check timer was indeed created. */
configASSERT( xCheckTimer );
/* Start the check timer. It will actually start when the scheduler is
started. */
xTimerStart( xCheckTimer, mainDONT_BLOCK );
/* Start the tasks running. */ /* Start the tasks running. */
vTaskStartScheduler(); vTaskStartScheduler();
/* If all is well we will never reach here as the scheduler will now be /* If all is well, the following line will never be reached as the scheduler
running. If we do reach here then it is likely that there was insufficient will be running. If the following line is reached, there was insufficient
heap available for the idle task to be created. */ FreeRTOS heap available for the idle task to be created. See
http://www.freertos.org/a00111.html and the malloc failed hook function for
more information. */
for( ;; ); for( ;; );
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
static void prvCheckTask( void *pvParameters ) static void prvCheckTimerCallback( xTimerHandle xTimer )
{ {
static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;
static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL; static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;
portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;
extern void vSetupHighFrequencyTimer( void );
/* If this is being executed then the kernel has been started. Start the high
frequency timer test as described at the top of this file. This is only
included in the optimised build configuration - otherwise it takes up too much
CPU time and can disrupt other tests. */
#ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST
vSetupHighFrequencyTimer();
#endif
/* Initialise xNextWakeTime - this only needs to be done once. */
xNextWakeTime = xTaskGetTickCount();
for( ;; )
{
/* Place this task in the blocked state until it is time to run again. */
vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );
/* Check the standard demo tasks are running without error. */ /* Check the standard demo tasks are running without error. */
if( xAreGenericQueueTasksStillRunning() != pdTRUE ) if( xAreGenericQueueTasksStillRunning() != pdTRUE )
{ {
/* Increase the rate at which this task cycles, which will increase the lErrorStatus = pdFAIL;
rate at which mainCHECK_LED flashes to give visual feedback that an error
has occurred. */
xCycleFrequency = mainERROR_CYCLE_TIME;
pcStatusMessage = "Error: GenQueue";
} }
else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) else if( xAreQueuePeekTasksStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: QueuePeek";
} }
else if( xAreBlockingQueuesStillRunning() != pdTRUE ) else if( xAreBlockingQueuesStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: BlockQueue";
} }
else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: BlockTime";
} }
else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) else if( xAreSemaphoreTasksStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: SemTest";
} }
else if( xArePollingQueuesStillRunning() != pdTRUE ) else if( xArePollingQueuesStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: PollQueue";
} }
else if( xIsCreateTaskStillRunning() != pdTRUE ) else if( xIsCreateTaskStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: Death";
} }
else if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: IntMath";
} }
else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: RecMutex";
} }
else if( xAreIntQueueTasksStillRunning() != pdPASS ) else if( xAreIntQueueTasksStillRunning() != pdPASS )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: IntQueue";
} }
else if( xAreMathsTaskStillRunning() != pdPASS ) else if( xAreMathsTaskStillRunning() != pdPASS )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: Flop";
} }
/* Check the reg test tasks are still cycling. They will stop incrementing /* Check the reg test tasks are still cycling. They will stop incrementing
their loop counters if they encounter an error. */ their loop counters if they encounter an error. */
if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: RegTest1";
} }
if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )
{ {
xCycleFrequency = mainERROR_CYCLE_TIME; lErrorStatus = pdFAIL;
pcStatusMessage = "Error: RegTest2";
} }
ulLastRegTest1CycleCount = ulRegTest1CycleCount; ulLastRegTest1CycleCount = ulRegTest1CycleCount;
@ -387,6 +366,19 @@ extern void vSetupHighFrequencyTimer( void );
the LED toggles every 5 seconds then everything is ok. A faster toggle the LED toggles every 5 seconds then everything is ok. A faster toggle
indicates an error. */ indicates an error. */
vParTestToggleLED( mainCHECK_LED ); vParTestToggleLED( mainCHECK_LED );
/* Was an error detected this time through the callback execution? */
if( lErrorStatus != pdPASS )
{
if( lChangedTimerPeriodAlready == pdFALSE )
{
lChangedTimerPeriodAlready = pdTRUE;
/* This call to xTimerChangePeriod() uses a zero block time.
Functions called from inside of a timer callback function must
*never* attempt to block. */
xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );
}
} }
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -438,6 +430,19 @@ void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName
of this file. */ of this file. */
void vApplicationIdleHook( void ) void vApplicationIdleHook( void )
{ {
/* If this is being executed then the kernel has been started. Start the high
frequency timer test as described at the top of this file. This is only
included in the optimised build configuration - otherwise it takes up too much
CPU time and can disrupt other tests. */
#ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST
static portBASE_TYPE xTimerTestStarted = pdFALSE;
extern void vSetupHighFrequencyTimer( void );
if( xTimerTestStarted == pdFALSE )
{
vSetupHighFrequencyTimer();
xTimerTestStarted = pdTRUE;
}
#endif
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -559,7 +564,7 @@ TestLoop1:
RegTest1Error: RegTest1Error:
; A compare failed, just loop here so the loop counter stops incrementing ; A compare failed, just loop here so the loop counter stops incrementing
; causing the check task to indicate the error. ; causing the check timer to indicate the error.
BRA RegTest1Error BRA RegTest1Error
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -637,18 +642,8 @@ TestLoop2:
RegTest2Error: RegTest2Error:
; A compare failed, just loop here so the loop counter stops incrementing ; A compare failed, just loop here so the loop counter stops incrementing
; - causing the check task to indicate the error. ; - causing the check timer to indicate the error.
BRA RegTest2Error BRA RegTest2Error
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
char *pcGetTaskStatusMessage( void )
{
/* Not bothered about a critical section here although technically because of
the task priorities the pointer could change it will be atomic if not near
atomic and its not critical. */
return ( char * ) pcStatusMessage;
}
/*-----------------------------------------------------------*/

@ -1,345 +0,0 @@
/*
FreeRTOS V7.0.2 - Copyright (C) 2011 Real Time Engineers Ltd.
***************************************************************************
* *
* FreeRTOS tutorial books are available in pdf and paperback. *
* Complete, revised, and edited pdf reference manuals are also *
* available. *
* *
* Purchasing FreeRTOS documentation will not only help you, by *
* ensuring you get running as quickly as possible and with an *
* in-depth knowledge of how to use FreeRTOS, it will also help *
* the FreeRTOS project to continue with its mission of providing *
* professional grade, cross platform, de facto standard solutions *
* for microcontrollers - completely free of charge! *
* *
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
* *
* Thank you for using FreeRTOS, and thank you for your support! *
* *
***************************************************************************
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
>>>NOTE<<< The modification to the GPL is included to allow you to
distribute a combined work that includes FreeRTOS without being obliged to
provide the source code for proprietary components outside of the FreeRTOS
kernel. FreeRTOS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details. You should have received a copy of the GNU General Public
License and the FreeRTOS license exception along with FreeRTOS; if not it
can be viewed here: http://www.freertos.org/a00114.html and also obtained
by writing to Richard Barry, contact details for whom are available on the
FreeRTOS WEB site.
1 tab == 4 spaces!
http://www.FreeRTOS.org - Documentation, latest information, license and
contact details.
http://www.SafeRTOS.com - A version that is certified for use in safety
critical systems.
http://www.OpenRTOS.com - Commercial support, development, porting,
licensing and training services.
*/
/* Standard includes. */
#include <string.h>
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "queue.h"
/* uip includes. */
#include "net/uip.h"
#include "net/uip_arp.h"
#include "apps/httpd/httpd.h"
#include "sys/timer.h"
#include "net/clock-arch.h"
#include "r_ether.h"
/* Demo includes. */
#include "ParTest.h"
/*-----------------------------------------------------------*/
/* How long to wait before attempting to connect the MAC again. */
#define uipINIT_WAIT ( 100 / portTICK_RATE_MS )
/* Shortcut to the header within the Rx buffer. */
#define xHeader ((struct uip_eth_hdr *) &uip_buf[ 0 ])
/* Standard constant. */
#define uipTOTAL_FRAME_HEADER_SIZE 54
/* The ARP timer and the periodic timer share a callback function, so the
respective timer IDs are used to determine which timer actually expired. These
constants are assigned to the timer IDs. */
#define uipARP_TIMER 0
#define uipPERIODIC_TIMER 1
/* A block time of zero ticks simply means, "don't block". */
#define uipDONT_BLOCK 0UL
/*-----------------------------------------------------------*/
/*
* Setup the MAC address in the MAC itself, and in the uIP stack.
*/
static void prvSetMACAddress( void );
/*
* Perform any uIP initialisation necessary.
*/
static void prvInitialise_uIP( void );
/*
* The callback function that is assigned to both the periodic timer and the
* ARP timer.
*/
static void prvUIPTimerCallback( xTimerHandle xTimer );
/*
* Port functions required by the uIP stack.
*/
clock_time_t clock_time( void );
/*-----------------------------------------------------------*/
/* The queue used to send TCP/IP events to the uIP stack. */
xQueueHandle xEMACEventQueue = NULL;
/*-----------------------------------------------------------*/
clock_time_t clock_time( void )
{
return xTaskGetTickCount();
}
/*-----------------------------------------------------------*/
void vuIP_Task( void *pvParameters )
{
portBASE_TYPE i;
unsigned long ulNewEvent = 0UL;
unsigned long ulUIP_Events = 0UL;
( void ) pvParameters;
/* Initialise the uIP stack. */
prvInitialise_uIP();
/* Initialise the MAC. */
vInitEmac();
while( lEMACWaitForLink() != pdPASS )
{
vTaskDelay( uipINIT_WAIT );
}
for( ;; )
{
if( ( ulUIP_Events & uipETHERNET_RX_EVENT ) != 0UL )
{
/* Is there received data ready to be processed? */
uip_len = ( unsigned short ) ulEMACRead();
if( ( uip_len > 0 ) && ( uip_buf != NULL ) )
{
/* Standard uIP loop taken from the uIP manual. */
if( xHeader->type == htons( UIP_ETHTYPE_IP ) )
{
uip_arp_ipin();
uip_input();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if( uip_len > 0 )
{
uip_arp_out();
vEMACWrite();
}
}
else if( xHeader->type == htons( UIP_ETHTYPE_ARP ) )
{
uip_arp_arpin();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if( uip_len > 0 )
{
vEMACWrite();
}
}
}
else
{
ulUIP_Events &= ~uipETHERNET_RX_EVENT;
}
}
if( ( ulUIP_Events & uipPERIODIC_TIMER_EVENT ) != 0UL )
{
ulUIP_Events &= ~uipPERIODIC_TIMER_EVENT;
for( i = 0; i < UIP_CONNS; i++ )
{
uip_periodic( i );
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if( uip_len > 0 )
{
uip_arp_out();
vEMACWrite();
}
}
}
/* Call the ARP timer function every 10 seconds. */
if( ( ulUIP_Events & uipARP_TIMER_EVENT ) != 0 )
{
ulUIP_Events &= ~uipARP_TIMER_EVENT;
uip_arp_timer();
}
if( ulUIP_Events == pdFALSE )
{
xQueueReceive( xEMACEventQueue, &ulNewEvent, portMAX_DELAY );
ulUIP_Events |= ulNewEvent;
}
}
}
/*-----------------------------------------------------------*/
static void prvInitialise_uIP( void )
{
xTimerHandle xARPTimer, xPeriodicTimer;
uip_ipaddr_t xIPAddr;
const unsigned long ul_uIPEventQueueLength = 10UL;
/* Initialise the uIP stack. */
uip_init();
uip_ipaddr( &xIPAddr, configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 );
uip_sethostaddr( &xIPAddr );
uip_ipaddr( &xIPAddr, configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 );
uip_setnetmask( &xIPAddr );
prvSetMACAddress();
httpd_init();
/* Create the queue used to sent TCP/IP events to the uIP stack. */
xEMACEventQueue = xQueueCreate( ul_uIPEventQueueLength, sizeof( unsigned long ) );
/* Create and start the uIP timers. */
xARPTimer = xTimerCreate( ( const signed char * const ) "ARPTimer", /* Just a name that is helpful for debugging, not used by the kernel. */
( 10000UL / portTICK_RATE_MS ), /* Timer period. */
pdTRUE, /* Autor-reload. */
( void * ) uipARP_TIMER,
prvUIPTimerCallback
);
xPeriodicTimer = xTimerCreate( ( const signed char * const ) "PeriodicTimer",
( 500 / portTICK_RATE_MS ),
pdTRUE, /* Autor-reload. */
( void * ) uipPERIODIC_TIMER,
prvUIPTimerCallback
);
configASSERT( xARPTimer );
configASSERT( xPeriodicTimer );
xTimerStart( xARPTimer, portMAX_DELAY );
xTimerStart( xPeriodicTimer, portMAX_DELAY );
}
/*-----------------------------------------------------------*/
static void prvUIPTimerCallback( xTimerHandle xTimer )
{
static const unsigned long ulARPTimerExpired = uipARP_TIMER_EVENT;
static const unsigned long ulPeriodicTimerExpired = uipPERIODIC_TIMER_EVENT;
/* This is a time callback, so calls to xQueueSend() must not attempt to
block. */
switch( ( int ) pvTimerGetTimerID( xTimer ) )
{
case uipARP_TIMER : xQueueSend( xEMACEventQueue, &ulARPTimerExpired, uipDONT_BLOCK );
break;
case uipPERIODIC_TIMER : xQueueSend( xEMACEventQueue, &ulPeriodicTimerExpired, uipDONT_BLOCK );
break;
default : /* Should not get here. */
break;
}
}
/*-----------------------------------------------------------*/
static void prvSetMACAddress( void )
{
struct uip_eth_addr xAddr;
/* Configure the MAC address in the uIP stack. */
xAddr.addr[ 0 ] = configMAC_ADDR0;
xAddr.addr[ 1 ] = configMAC_ADDR1;
xAddr.addr[ 2 ] = configMAC_ADDR2;
xAddr.addr[ 3 ] = configMAC_ADDR3;
xAddr.addr[ 4 ] = configMAC_ADDR4;
xAddr.addr[ 5 ] = configMAC_ADDR5;
uip_setethaddr( xAddr );
}
/*-----------------------------------------------------------*/
void vApplicationProcessFormInput( char *pcInputString )
{
char *c;
/* Only interested in processing form input if this is the IO page. */
c = strstr( pcInputString, "io.shtml" );
if( c )
{
/* Is there a command in the string? */
c = strstr( pcInputString, "?" );
if( c )
{
/* Turn the LED's on or off in accordance with the check box status. */
if( strstr( c, "LED0=1" ) != NULL )
{
/* Turn the LEDs on. */
vParTestSetLED( 7, 1 );
vParTestSetLED( 8, 1 );
vParTestSetLED( 9, 1 );
vParTestSetLED( 10, 1 );
}
else
{
/* Turn the LEDs off. */
vParTestSetLED( 7, 0 );
vParTestSetLED( 8, 0 );
vParTestSetLED( 9, 0 );
vParTestSetLED( 10, 0 );
}
}
else
{
/* Commands to turn LEDs off are not always explicit. */
vParTestSetLED( 7, 0 );
vParTestSetLED( 8, 0 );
vParTestSetLED( 9, 0 );
vParTestSetLED( 10, 0 );
}
}
}
Loading…
Cancel
Save