]> git.sur5r.net Git - freertos/commitdiff
Starting point for an IAR RX62N project - not yet a working project.
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sun, 29 Aug 2010 14:10:58 +0000 (14:10 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sun, 29 Aug 2010 14:10:58 +0000 (14:10 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1067 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

20 files changed:
Demo/RX600_RX62N-MDK_IAR/FreeRTOSConfig.h [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/HighFrequencyTimerTest.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/IntQueueTimer.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/ParTest.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/RSKRX62N_Demo.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/RTOSDemo.ewd [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/RTOSDemo.ewp [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/RTOSDemo.eww [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/RegTest.s [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/Renesas-Files/hwsetup.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/include/IntQueueTimer.h [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/include/inthandler.h [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/include/rskrx62ndef.h [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/include/typedefine.h [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/main-blinky.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/main-full.c [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.cspy.bat [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.dbgdt [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.dni [new file with mode: 0644]
Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.wsdt [new file with mode: 0644]

diff --git a/Demo/RX600_RX62N-MDK_IAR/FreeRTOSConfig.h b/Demo/RX600_RX62N-MDK_IAR/FreeRTOSConfig.h
new file mode 100644 (file)
index 0000000..e26c1a9
--- /dev/null
@@ -0,0 +1,144 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public \r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it \r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained \r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+#ifndef FREERTOS_CONFIG_H\r
+#define FREERTOS_CONFIG_H\r
+\r
+/* Board specifics. */\r
+#include "rskrx62ndef.h"\r
+\r
+/*-----------------------------------------------------------\r
+ * Application specific definitions.\r
+ *\r
+ * These definitions should be adjusted for your particular hardware and\r
+ * application requirements.\r
+ *\r
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
+ *\r
+ * See http://www.freertos.org/a00110.html.\r
+ *----------------------------------------------------------*/\r
+\r
+#define configUSE_PREEMPTION                   1\r
+#define configUSE_IDLE_HOOK                            1\r
+#define configUSE_TICK_HOOK                            0\r
+#define configCPU_CLOCK_HZ                             ( ICLK_FREQUENCY ) /* Set in rskrx62ndef.h. */\r
+#define configPERIPHERAL_CLOCK_HZ              ( PCLK_FREQUENCY ) /* Set in rskrx62ndef.h. */\r
+#define configTICK_RATE_HZ                             ( ( portTickType ) 1000 )\r
+#define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 140 )\r
+#define configTOTAL_HEAP_SIZE                  ( ( size_t ) ( 45 * 1024 ) )\r
+#define configMAX_TASK_NAME_LEN                        ( 12 )\r
+#define configUSE_TRACE_FACILITY               0\r
+#define configUSE_16_BIT_TICKS                 0\r
+#define configIDLE_SHOULD_YIELD                        1\r
+#define configUSE_CO_ROUTINES                  0\r
+#define configUSE_MUTEXES                              1\r
+#define configGENERATE_RUN_TIME_STATS  0\r
+#define configCHECK_FOR_STACK_OVERFLOW 2\r
+#define configUSE_RECURSIVE_MUTEXES            1\r
+#define configQUEUE_REGISTRY_SIZE              0\r
+#define configUSE_MALLOC_FAILED_HOOK   1\r
+#define configUSE_APPLICATION_TASK_TAG 0\r
+\r
+#define configMAX_PRIORITIES                   ( ( unsigned portBASE_TYPE ) 5 )\r
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
+\r
+/* The interrupt priority used by the kernel itself for the tick interrupt and\r
+the pended interrupt.  This would normally be the lowest priority. */\r
+#define configKERNEL_INTERRUPT_PRIORITY         1\r
+\r
+/* The maximum interrupt priority from which FreeRTOS API calls can be made.\r
+Interrupts that use a priority above this will not be effected by anything the\r
+kernel is doing. */\r
+#define configMAX_SYSCALL_INTERRUPT_PRIORITY    4\r
+\r
+/* Set the following definitions to 1 to include the API function, or zero\r
+to exclude the API function. */\r
+\r
+#define INCLUDE_vTaskPrioritySet                       1\r
+#define INCLUDE_uxTaskPriorityGet                      1\r
+#define INCLUDE_vTaskDelete                                    1\r
+#define INCLUDE_vTaskCleanUpResources          0\r
+#define INCLUDE_vTaskSuspend                           1\r
+#define INCLUDE_vTaskDelayUntil                                1\r
+#define INCLUDE_vTaskDelay                                     1\r
+#define INCLUDE_uxTaskGetStackHighWaterMark    1\r
+#define INCLUDE_xTaskGetSchedulerState         1\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * Ethernet configuration.\r
+ *-----------------------------------------------------------*/\r
+\r
+/* MAC address configuration. */\r
+#define configMAC_ADDR0        0x00\r
+#define configMAC_ADDR1        0x12\r
+#define configMAC_ADDR2        0x13\r
+#define configMAC_ADDR3        0x10\r
+#define configMAC_ADDR4        0x15\r
+#define configMAC_ADDR5        0x11\r
+\r
+/* IP address configuration. */\r
+#define configIP_ADDR0         192\r
+#define configIP_ADDR1         168\r
+#define configIP_ADDR2         0\r
+#define configIP_ADDR3         201\r
+\r
+/* Netmask configuration. */\r
+#define configNET_MASK0                255\r
+#define configNET_MASK1                255\r
+#define configNET_MASK2                255\r
+#define configNET_MASK3                0\r
+\r
+#endif /* FREERTOS_CONFIG_H */\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/HighFrequencyTimerTest.c b/Demo/RX600_RX62N-MDK_IAR/HighFrequencyTimerTest.c
new file mode 100644 (file)
index 0000000..a26ccc0
--- /dev/null
@@ -0,0 +1,162 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+/*\r
+ * High frequency timer test as described in main.c.\r
+ */\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+\r
+/* Hardware specifics. */\r
+#include <iorx62n.h>\r
+\r
+/* The set frequency of the interrupt.  Deviations from this are measured as\r
+the jitter. */\r
+#define timerINTERRUPT_FREQUENCY               ( 20000UL )\r
+\r
+/* The expected time between each of the timer interrupts - if the jitter was\r
+zero. */\r
+#define timerEXPECTED_DIFFERENCE_VALUE ( ( unsigned short ) ( ( configPERIPHERAL_CLOCK_HZ / 8UL ) / timerINTERRUPT_FREQUENCY ) )\r
+\r
+/* The highest available interrupt priority. */\r
+#define timerHIGHEST_PRIORITY                  ( 15 )\r
+\r
+/* Misc defines. */\r
+#define timerTIMER_3_COUNT_VALUE               ( *( ( unsigned short * ) 0x8801a ) ) /*( CMT3.CMCNT )*/\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Interrupt handler in which the jitter is measured. */\r
+__interrupt void vTimer2IntHandler( void );\r
+\r
+/* Stores the value of the maximum recorded jitter between interrupts. */\r
+volatile unsigned short usMaxJitter = 0;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vSetupHighFrequencyTimer( void )\r
+{\r
+       /* Timer CMT2 is used to generate the interrupts, and CMT3 is used\r
+       to measure the jitter. */\r
+\r
+       /* Enable compare match timer 2 and 3. */\r
+       MSTP( CMT2 ) = 0;\r
+       MSTP( CMT3 ) = 0;\r
+       \r
+       /* Interrupt on compare match. */\r
+       CMT2.CMCR.BIT.CMIE = 1;\r
+       \r
+       /* Set the compare match value. */\r
+       CMT2.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / timerINTERRUPT_FREQUENCY ) -1 ) / 8 );\r
+       \r
+       /* Divide the PCLK by 8. */\r
+       CMT2.CMCR.BIT.CKS = 0;\r
+       CMT3.CMCR.BIT.CKS = 0;\r
+       \r
+       /* Enable the interrupt... */\r
+       _IEN( _CMT2_CMI2 ) = 1;\r
+       \r
+       /* ...and set its priority to the maximum possible, this is above the priority\r
+       set by configMAX_SYSCALL_INTERRUPT_PRIORITY so will nest. */\r
+       _IPR( _CMT2_CMI2 ) = timerHIGHEST_PRIORITY;\r
+       \r
+       /* Start the timers. */\r
+       CMT.CMSTR1.BIT.STR2 = 1;\r
+       CMT.CMSTR1.BIT.STR3 = 1;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#pragma vector = VECT_CMT2_CMI2\r
+__interrupt void vTimer2IntHandler( void )\r
+{\r
+volatile unsigned short usCurrentCount;\r
+static unsigned short usMaxCount = 0;\r
+static unsigned long ulErrorCount = 0UL;\r
+\r
+       /* We use the timer 1 counter value to measure the clock cycles between\r
+       the timer 0 interrupts.  First stop the clock. */\r
+       CMT.CMSTR1.BIT.STR3 = 0;\r
+       portNOP();\r
+       portNOP();\r
+       usCurrentCount = timerTIMER_3_COUNT_VALUE;\r
+\r
+       /* Is this the largest count we have measured yet? */\r
+       if( usCurrentCount > usMaxCount )\r
+       {\r
+               if( usCurrentCount > timerEXPECTED_DIFFERENCE_VALUE )\r
+               {\r
+                       usMaxJitter = usCurrentCount - timerEXPECTED_DIFFERENCE_VALUE;\r
+               }\r
+               else\r
+               {\r
+                       /* This should not happen! */\r
+                       ulErrorCount++;\r
+               }\r
+               \r
+               usMaxCount = usCurrentCount;\r
+       }\r
+               \r
+       /* Clear the timer. */\r
+       timerTIMER_3_COUNT_VALUE = 0;\r
+       \r
+       /* Then start the clock again. */\r
+       CMT.CMSTR1.BIT.STR3 = 1;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/IntQueueTimer.c b/Demo/RX600_RX62N-MDK_IAR/IntQueueTimer.c
new file mode 100644 (file)
index 0000000..469ed7f
--- /dev/null
@@ -0,0 +1,147 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+/*\r
+ * This file contains the non-portable and therefore RX62N specific parts of\r
+ * the IntQueue standard demo task - namely the configuration of the timers\r
+ * that generate the interrupts and the interrupt entry points.\r
+ */\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Demo includes. */\r
+#include "IntQueueTimer.h"\r
+#include "IntQueue.h"\r
+\r
+/* Hardware specifics. */\r
+#include <iorx62n.h>\r
+\r
+#define tmrTIMER_0_1_FREQUENCY ( 2000UL )\r
+#define tmrTIMER_2_3_FREQUENCY ( 2001UL )\r
+\r
+/* Handlers for the two timers used. */\r
+__interrupt void vT0_1InterruptHandler( void );\r
+__interrupt void vT2_3InterruptHandler( void );\r
+\r
+void vInitialiseTimerForIntQueueTest( void )\r
+{\r
+       /* Ensure interrupts do not start until full configuration is complete. */\r
+       portENTER_CRITICAL();\r
+       {\r
+               /* Cascade two 8bit timer channels to generate the interrupts.\r
+               8bit timer unit 1 (TMR0 and TMR1) and 8bit timer unit 2 (TMR2 and TMR3 are\r
+               utilised for this test. */\r
+\r
+               /* Enable the timers. */\r
+               SYSTEM.MSTPCRA.BIT.MSTPA5 = 0;\r
+               SYSTEM.MSTPCRA.BIT.MSTPA4 = 0;\r
+\r
+               /* Enable compare match A interrupt request. */\r
+               TMR0.TCR.BIT.CMIEA = 1;\r
+               TMR2.TCR.BIT.CMIEA = 1;\r
+\r
+               /* Clear the timer on compare match A. */\r
+               TMR0.TCR.BIT.CCLR = 1;\r
+               TMR2.TCR.BIT.CCLR = 1;\r
+\r
+               /* Set the compare match value. */\r
+               TMR01.TCORA = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / tmrTIMER_0_1_FREQUENCY ) -1 ) / 8 );\r
+               TMR23.TCORA = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / tmrTIMER_0_1_FREQUENCY ) -1 ) / 8 );\r
+\r
+               /* 16 bit operation ( count from timer 1,2 ). */\r
+               TMR0.TCCR.BIT.CSS = 3;\r
+               TMR2.TCCR.BIT.CSS = 3;\r
+       \r
+               /* Use PCLK as the input. */\r
+               TMR1.TCCR.BIT.CSS = 1;\r
+               TMR3.TCCR.BIT.CSS = 1;\r
+       \r
+               /* Divide PCLK by 8. */\r
+               TMR1.TCCR.BIT.CKS = 2;\r
+               TMR3.TCCR.BIT.CKS = 2;\r
+       \r
+               /* Enable TMR 0, 2 interrupts. */\r
+               IEN( TMR0, CMIA0 ) = 1;\r
+               IEN( TMR2, CMIA2 ) = 1;\r
+\r
+               /* Set the timer interrupts to be above the kernel.  The interrupts are\r
+               assigned different priorities so they nest with each other. */\r
+               IPR( TMR0, CMIA0 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+               IPR( TMR2, CMIA2 ) = ( configMAX_SYSCALL_INTERRUPT_PRIORITY - 2 );\r
+       }\r
+       portEXIT_CRITICAL();\r
+       \r
+       /* Ensure the interrupts are clear as they are edge detected. */\r
+       IR( TMR0, CMIA0 ) = 0;\r
+       IR( TMR2, CMIA2 ) = 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#pragma vector = VECT_TMR0_CMIA0\r
+__interrupt void vT0_1InterruptHandler( void )\r
+{\r
+       portYIELD_FROM_ISR( xFirstTimerHandler() );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#pragma vector = VECT_TMR2_CMIA2\r
+__interrupt void vT2_3InterruptHandler( void )\r
+{\r
+       portYIELD_FROM_ISR( xSecondTimerHandler() );\r
+}\r
+\r
+\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/ParTest.c b/Demo/RX600_RX62N-MDK_IAR/ParTest.c
new file mode 100644 (file)
index 0000000..b41755b
--- /dev/null
@@ -0,0 +1,209 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+/*-----------------------------------------------------------\r
+ * Simple IO routines to control the LEDs.\r
+ *-----------------------------------------------------------*/\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Demo includes. */\r
+#include "partest.h"\r
+\r
+/* Hardware specifics. */\r
+#include <iorx62n.h>\r
+\r
+#define partestNUM_LEDS ( 6 )\r
+\r
+long lParTestGetLEDState( unsigned long ulLED );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vParTestInitialise( void )\r
+{\r
+       /* Port pin configuration is done by the low level set up prior to this\r
+       function being called. */\r
+\r
+       /* Start with all LEDs off. */\r
+       LED0 = LED_OFF;\r
+       LED0 = LED_OFF;\r
+       LED0 = LED_OFF;\r
+       LED0 = LED_OFF;\r
+       LED0 = LED_OFF;\r
+       LED0 = LED_OFF;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vParTestSetLED( unsigned long ulLED, signed long xValue )\r
+{\r
+       if( ulLED < partestNUM_LEDS )\r
+       {\r
+               if( xValue != 0 )\r
+               {\r
+                       /* Turn the LED on. */\r
+                       taskENTER_CRITICAL();\r
+                       {\r
+                               switch( ulLED )\r
+                               {\r
+                                       case 0: LED0 = LED_ON;\r
+                                                       break;\r
+                                       case 1: LED1 = LED_ON;\r
+                                                       break;\r
+                                       case 2: LED2 = LED_ON;\r
+                                                       break;\r
+                                       case 3: LED3 = LED_ON;\r
+                                                       break;\r
+                                       case 4: LED4 = LED_ON;\r
+                                                       break;\r
+                                       case 5: LED5 = LED_ON;\r
+                                                       break;\r
+                               }\r
+                       }\r
+                       taskEXIT_CRITICAL();\r
+               }\r
+               else\r
+               {\r
+                       /* Turn the LED off. */\r
+                       taskENTER_CRITICAL();\r
+                       {\r
+                               switch( ulLED )\r
+                               {\r
+                                       case 0: LED0 = LED_OFF;\r
+                                                       break;\r
+                                       case 1: LED1 = LED_OFF;\r
+                                                       break;\r
+                                       case 2: LED2 = LED_OFF;\r
+                                                       break;\r
+                                       case 3: LED3 = LED_OFF;\r
+                                                       break;\r
+                                       case 4: LED4 = LED_OFF;\r
+                                                       break;\r
+                                       case 5: LED5 = LED_OFF;\r
+                                                       break;\r
+                               }\r
+\r
+                       }\r
+                       taskEXIT_CRITICAL();\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vParTestToggleLED( unsigned long ulLED )\r
+{\r
+       if( ulLED < partestNUM_LEDS )\r
+       {\r
+               taskENTER_CRITICAL();\r
+               {\r
+                       if( lParTestGetLEDState( ulLED ) != 0x00 )\r
+                       {\r
+                               vParTestSetLED( ulLED, 1 );\r
+                       }\r
+                       else\r
+                       {\r
+                               vParTestSetLED( ulLED, 0 );\r
+                       }\r
+               }\r
+               taskEXIT_CRITICAL();\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+                                                       \r
+long lParTestGetLEDState( unsigned long ulLED )\r
+{\r
+long lReturn = pdFALSE;\r
+\r
+       if( ulLED < partestNUM_LEDS )\r
+       {\r
+               switch( ulLED )\r
+               {\r
+                       case 0  :       if( LED0 != 0 )\r
+                                               {\r
+                                                       lReturn =  pdTRUE;\r
+                                               }\r
+                                               break;                                  \r
+                       case 1  :       if( LED1 != 0 )\r
+                                               {\r
+                                                       lReturn =  pdTRUE;\r
+                                               }\r
+                                               break;                                  \r
+                       case 2  :       if( LED2 != 0 )\r
+                                               {\r
+                                                       lReturn =  pdTRUE;\r
+                                               }\r
+                                               break;                                  \r
+                       case 3  :       if( LED3 != 0 )\r
+                                               {\r
+                                                       lReturn =  pdTRUE;\r
+                                               }\r
+                                               break;                                  \r
+                       case 4  :       if( LED4 != 0 )\r
+                                               {\r
+                                                       lReturn =  pdTRUE;\r
+                                               }\r
+                                               break;                                  \r
+                       case 5  :       if( LED5 != 0 )\r
+                                               {\r
+                                                       lReturn =  pdTRUE;\r
+                                               }\r
+                                               break;                                  \r
+               }\r
+       }\r
+       \r
+       return lReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+                                                       
\ No newline at end of file
diff --git a/Demo/RX600_RX62N-MDK_IAR/RSKRX62N_Demo.c b/Demo/RX600_RX62N-MDK_IAR/RSKRX62N_Demo.c
new file mode 100644 (file)
index 0000000..38457cc
--- /dev/null
@@ -0,0 +1,260 @@
+/*\r
+ * Copyright (c) 20010 IAR Systems AB.\r
+ *\r
+ * Permission to use, copy, modify, and distribute this software for any\r
+ * purpose with or without fee is hereby granted, provided that the above\r
+ * copyright notice and this permission notice appear in all copies.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\r
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\r
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\r
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\r
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\r
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\r
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\r
+ */\r
+\r
+/*\r
+ * IAR Embedded Workbench tutorial\r
+ *\r
+ * Test Program for the RSKRX62N Board.\r
+ * LED's perform different display according to\r
+ * which switch is pressed.\r
+ * Used to check that all the LED's, switches,\r
+ * clock function and AD trigger are working fine.\r
+ *\r
+ * $Revision: 1556 $\r
+ */\r
+\r
+#include "iorx62n.h"\r
+#include "intrinsics.h"\r
+\r
+void ScrollLedsLowHigh(void);\r
+void ScrollLedsHighLow(void);\r
+\r
+unsigned long pause;\r
+unsigned long off_set;\r
+\r
+#define ON  0\r
+#define OFF 1\r
+#define LED0 PORT0.DR.BIT.B2  // P02 LED0\r
+#define LED1 PORT0.DR.BIT.B3  // P03 LED1\r
+#define LED2 PORT0.DR.BIT.B5  // P05 LED2\r
+#define LED3 PORT3.DR.BIT.B4  // P34 LED3\r
+#define LED4 PORT6.DR.BIT.B0  // P50 LED4\r
+#define LED5 PORT7.DR.BIT.B3  // P73 LED5\r
+\r
+/* defined words used in this program */\r
+enum {\r
+  SW1,\r
+  SW2,\r
+  SW3,\r
+  NONE\r
+}GetKey;\r
+\r
+/* SW1 ISR */\r
+#pragma vector = 72\r
+__interrupt void isr_sw1(void)\r
+{\r
+  GetKey=SW1;   \r
+   \r
+  CMT.CMSTR0.BIT.STR0 = 0; // stop timer\r
+  ICU.IR[72].BIT.IR = 0;   // clear interrupt request flag \r
+}\r
+\r
+/* SW2 ISR */\r
+#pragma vector = 73\r
+__interrupt void isr_sw2(void)\r
+{\r
+  GetKey=SW2;   \r
+    \r
+  CMT.CMSTR0.BIT.STR0 = 0; // stop timer\r
+  ICU.IR[73].BIT.IR = 0;   // clear interrupt request flag  \r
+}\r
+\r
+/* SW3 ISR */\r
+#pragma vector = 79\r
+__interrupt void isr_sw3(void)\r
+{\r
+  GetKey=SW3;   \r
+  \r
+  CMT.CMSTR0.BIT.STR0 = 1; // start timer\r
+  ICU.IR[79].BIT.IR = 0;   // clear interrupt request flag    \r
+}\r
+\r
+/* Timer ISR */\r
+#pragma vector = 0x1c\r
+__interrupt void isr_cmt0(void)\r
+{\r
+  // Toggle LED's\r
+  LED0 = ~LED0;\r
+  LED1 = ~LED1;\r
+  LED2 = ~LED2;\r
+  LED3 = ~LED3;\r
+  LED4 = ~LED4;\r
+  LED5 = ~LED5;  \r
+  ICU.IR[70].BIT.IR = 0;         // clear interrupt request flag\r
+}\r
+\r
+/* Main program. */\r
+void main (void)\r
+{\r
+  // enable modules\r
+  SYSTEM.MSTPCRA.BIT.MSTPA23 = 0; // A/D Converter (Unit 0) Module\r
+  \r
+  // Set up RV1 (potentiometer)\r
+  AD0.ADCR.BIT.MODE = 2;  // Continuous scan mode\r
+  AD0.ADCSR.BIT.CH = 0;   // only AD0\r
+  AD0.ADCSR.BIT.ADST = 1; // Start A/D\r
+  \r
+  // Set up SW1, SW2, SW3\r
+  PORT0.DDR.BIT.B0 = 0; // SW1 input on P00\r
+  PORT0.DDR.BIT.B1 = 0; // SW2 input on P01\r
+  PORT0.DDR.BIT.B7 = 0; // SW3 input on P07  \r
+\r
+  PORT0.ICR.BIT.B0 = 1; // Enable input buffer\r
+  PORT0.ICR.BIT.B1 = 1; // Enable input buffer\r
+  PORT0.ICR.BIT.B7 = 1; // Enable input buffer\r
+  \r
+  // IRQ8-A used for SW1\r
+  IOPORT.PF8IRQ.BIT.ITS8 = 0; // P00 is designated as the IRQ8-A input pin.\r
+  IEN(ICU,IRQ8) = 1;\r
+  IPR(ICU,IRQ8) = 3;         \r
+  \r
+  // IRQ9-A used for SW2\r
+  IOPORT.PF8IRQ.BIT.ITS9 = 0; // P01 is designated as IRQ9-A input pin.\r
+  IEN(ICU,IRQ9) = 1;\r
+  IPR(ICU,IRQ9) = 3;    \r
+\r
+  // IRQ15-A used for SW3\r
+  IOPORT.PF8IRQ.BIT.ITS15 = 0; // P07 is designated as the IRQ15-A input pin.\r
+  IEN(ICU,IRQ15) = 1;\r
+  IPR(ICU,IRQ15) = 3; \r
+  \r
+  // Set up LED's\r
+  PORT0.DDR.BIT.B2 = 1;   // P02 LED0 \r
+  PORT0.DDR.BIT.B3 = 1;   // P03 LED1\r
+  PORT0.DDR.BIT.B5 = 1;   // P05 LED2\r
+  PORT3.DDR.BIT.B4 = 1;   // P34 LED3\r
+  PORT6.DDR.BIT.B0 = 1;   // P50 LED4\r
+  PORT7.DDR.BIT.B3 = 1;   // P73 LED5\r
+\r
+  // Turn al LED's off\r
+  LED0 = LED1 = LED2 = LED3 = LED4 = LED5 = OFF;\r
+  \r
+  // Set up Timer\r
+  SYSTEM.MSTPCRA.BIT.MSTPA15 = 0; // CMT timers 0, \r
+  CMT0.CMCR.BIT.CKS = 3;          // 25MHz/512 = 48.8kHz\r
+  CMT0.CMCR.BIT.CMIE = 1;         // enable peripheral interrupt source\r
+  CMT0.CMCOR = 12212;             // 4 Hz operation\r
+  ICU.IER[3].BIT.IEN4 = 1;        // enable timer 0 interrupt  \r
+  IPR(CMT0,CMI0) = 1;             // LED level 1\r
+  \r
+  __enable_interrupt();  \r
+  \r
+  GetKey=SW1;\r
+  \r
+  for (;;)\r
+  {\r
+    switch (GetKey) \r
+    {\r
+      case SW1:\r
+        ScrollLedsLowHigh();\r
+        break;\r
+      case SW2:\r
+        ScrollLedsHighLow();\r
+        break;\r
+      case SW3:\r
+        GetKey=NONE;\r
+        break;\r
+    }\r
+  }\r
+}\r
+\r
+/* scrolls the LED's from low to high */\r
+void ScrollLedsLowHigh()\r
+{\r
+  char led_number = 0;\r
+  \r
+  while (GetKey == SW1)\r
+  {\r
+    if (led_number > 5)\r
+      led_number = 0;\r
+    \r
+    switch(led_number)\r
+    {\r
+    case 0:\r
+      LED0=ON;\r
+      LED1=LED2=LED3=LED4=LED5=OFF;\r
+      break;      \r
+    case 1:\r
+      LED1=ON;\r
+      LED0=LED2=LED3=LED4=LED5=OFF;\r
+      break;      \r
+    case 2:\r
+      LED2=ON;\r
+      LED0=LED1=LED3=LED4=LED5=OFF;\r
+      break;      \r
+    case 3:\r
+      LED3=ON;\r
+      LED0=LED1=LED2=LED4=LED5=OFF;\r
+      break;      \r
+    case 4:\r
+      LED4=ON;\r
+      LED0=LED1=LED2=LED3=LED5=OFF;\r
+      break;      \r
+    case 5:\r
+      LED5=ON;\r
+      LED0=LED1=LED2=LED3=LED4=OFF;\r
+      break;      \r
+    }\r
+    led_number++;\r
+\r
+    off_set = AD0.ADDRA*1000;\r
+    for (pause = off_set; pause != 0; pause --);\r
+  }\r
+}\r
+\r
+/* scrolls the LED's from high to low */\r
+void ScrollLedsHighLow()\r
+{\r
+  signed char led_number = 3;\r
+\r
+  while (GetKey == SW2)\r
+  {\r
+    if (led_number < 0)\r
+      led_number = 5;\r
+    \r
+    switch(led_number)\r
+    {\r
+    case 0:\r
+      LED0=ON;\r
+      LED1=LED2=LED3=LED4=LED5=OFF;\r
+      break;      \r
+    case 1:\r
+      LED1=ON;\r
+      LED0=LED2=LED3=LED4=LED5=OFF;\r
+      break;      \r
+    case 2:\r
+      LED2=ON;\r
+      LED0=LED1=LED3=LED4=LED5=OFF;\r
+      break;      \r
+    case 3:\r
+      LED3=ON;\r
+      LED0=LED1=LED2=LED4=LED5=OFF;\r
+      break;      \r
+    case 4:\r
+      LED4=ON;\r
+      LED0=LED1=LED2=LED3=LED5=OFF;\r
+      break;      \r
+    case 5:\r
+      LED5=ON;\r
+      LED0=LED1=LED2=LED3=LED4=OFF;\r
+      break;      \r
+    }\r
+    led_number--;\r
+\r
+    off_set = AD0.ADDRA*1000;\r
+    for (pause = off_set; pause != 0; pause --);\r
+  }\r
+}\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/RTOSDemo.ewd b/Demo/RX600_RX62N-MDK_IAR/RTOSDemo.ewd
new file mode 100644 (file)
index 0000000..5aa0e63
--- /dev/null
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="iso-8859-1"?>\r
+\r
+<project>\r
+  <fileVersion>2</fileVersion>\r
+  <configuration>\r
+    <name>Debug</name>\r
+    <toolchain>\r
+      <name>RX</name>\r
+    </toolchain>\r
+    <debug>1</debug>\r
+    <settings>\r
+      <name>C-SPY</name>\r
+      <archiveVersion>2</archiveVersion>\r
+      <data>\r
+        <version>4</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>ODebuggerCore</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CInput</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>DebuggerProcessorVariant</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CRunToEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CRunToName</name>\r
+          <state>main</state>\r
+        </option>\r
+        <option>\r
+          <name>CMacOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CMacFile</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>DynDriver</name>\r
+          <state>RXEMUE20</state>\r
+        </option>\r
+        <option>\r
+          <name>DDFOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>DDFFile</name>\r
+          <state>$TOOLKIT_DIR$\config\debugger\ior5f562n8.ddf</state>\r
+        </option>\r
+        <option>\r
+          <name>DebuggerUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>DebuggerExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>ODebuggerDoubleSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesSuppressCheck1</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesPath1</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesSuppressCheck2</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesPath2</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesSuppressCheck3</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesPath3</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>ODebuggerByteOrder</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>ODebuggerIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>RXEMUE20</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>EmuMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OCEmuUseUSBSerialNo</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCEmuUSBSerialNo</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCDownloadSuppressDownload</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCDownloadVerifyAll</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>RXJLINK</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>JlinkMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkUseUSBSerialNo</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkUSBSerialNo</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkDownloadSuppressDownload</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkDownloadVerifyAll</name>\r
+          <state>0</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>SIMRX</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>1</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>SimMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>SimEnablePSP</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>SimPspOverrideConfig</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>SimPspConfigFile</name>\r
+          <state>$TOOLKIT_DIR$\CONFIG\iocf.psp.config</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <debuggerPlugins>\r
+      <plugin>\r
+        <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+    </debuggerPlugins>\r
+  </configuration>\r
+  <configuration>\r
+    <name>Blinky</name>\r
+    <toolchain>\r
+      <name>RX</name>\r
+    </toolchain>\r
+    <debug>1</debug>\r
+    <settings>\r
+      <name>C-SPY</name>\r
+      <archiveVersion>2</archiveVersion>\r
+      <data>\r
+        <version>4</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>ODebuggerCore</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CInput</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>DebuggerProcessorVariant</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CRunToEnable</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CRunToName</name>\r
+          <state>main</state>\r
+        </option>\r
+        <option>\r
+          <name>CMacOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CMacFile</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>DynDriver</name>\r
+          <state>RXEMUE20</state>\r
+        </option>\r
+        <option>\r
+          <name>DDFOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>DDFFile</name>\r
+          <state>$TOOLKIT_DIR$\config\debugger\ior5f562n8.ddf</state>\r
+        </option>\r
+        <option>\r
+          <name>DebuggerUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>DebuggerExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>ODebuggerDoubleSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesSuppressCheck1</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesPath1</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesSuppressCheck2</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesPath2</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesSuppressCheck3</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCImagesPath3</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>ODebuggerByteOrder</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>ODebuggerIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>RXEMUE20</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>EmuMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OCEmuUseUSBSerialNo</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCEmuUSBSerialNo</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCDownloadSuppressDownload</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCDownloadVerifyAll</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>RXJLINK</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>JlinkMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkUseUSBSerialNo</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkUSBSerialNo</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkDownloadSuppressDownload</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCJlinkDownloadVerifyAll</name>\r
+          <state>0</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>SIMRX</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>1</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>SimMandatory</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>SimEnablePSP</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>SimPspOverrideConfig</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>SimPspConfigFile</name>\r
+          <state>$TOOLKIT_DIR$\CONFIG\iocf.psp.config</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <debuggerPlugins>\r
+      <plugin>\r
+        <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
+        <loadFlag>0</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+      <plugin>\r
+        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
+        <loadFlag>1</loadFlag>\r
+      </plugin>\r
+    </debuggerPlugins>\r
+  </configuration>\r
+</project>\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/RTOSDemo.ewp b/Demo/RX600_RX62N-MDK_IAR/RTOSDemo.ewp
new file mode 100644 (file)
index 0000000..3a1f0c4
--- /dev/null
@@ -0,0 +1,1768 @@
+<?xml version="1.0" encoding="iso-8859-1"?>\r
+\r
+<project>\r
+  <fileVersion>2</fileVersion>\r
+  <configuration>\r
+    <name>Debug</name>\r
+    <toolchain>\r
+      <name>RX</name>\r
+    </toolchain>\r
+    <debug>1</debug>\r
+    <settings>\r
+      <name>General</name>\r
+      <archiveVersion>2</archiveVersion>\r
+      <data>\r
+        <version>3</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>OGChipSelectMenu</name>\r
+          <state>R5F562N8      R5F562N8</state>\r
+        </option>\r
+        <option>\r
+          <name>GenDoubleSize</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenCodeModel</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenDataModel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenByteOrder</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GOutputBinary</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>ExePath</name>\r
+          <state>Debug\Exe</state>\r
+        </option>\r
+        <option>\r
+          <name>ObjPath</name>\r
+          <state>Debug\Obj</state>\r
+        </option>\r
+        <option>\r
+          <name>ListPath</name>\r
+          <state>Debug\List</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRuntimeLibSelect</name>\r
+          <version>0</version>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRuntimeLibSelectSlave</name>\r
+          <version>0</version>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRTDescription</name>\r
+          <state>Use the normal configuration of the C/EC++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRTConfigPath</name>\r
+          <state>$TOOLKIT_DIR$\LIB\dlrxflln.h</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibInFormatter</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibInFormatterDescription</name>\r
+          <state>Full formatting.</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibOutFormatter</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibOutFormatterDescription</name>\r
+          <state>Full formatting.</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralEnableMisra</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraVerbose</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraVer</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraRules04</name>\r
+          <version>0</version>\r
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraRules98</name>\r
+          <version>0</version>\r
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>StackSize</name>\r
+          <state>0x100</state>\r
+        </option>\r
+        <option>\r
+          <name>IStackSize</name>\r
+          <state>0x100</state>\r
+        </option>\r
+        <option>\r
+          <name>HeapSize</name>\r
+          <state>0x400</state>\r
+        </option>\r
+        <option>\r
+          <name>GenSubnormalNumbers</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>ICCRX</name>\r
+      <archiveVersion>3</archiveVersion>\r
+      <data>\r
+        <version>10</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>IccLockRegisters</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR8</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR9</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR10</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR11</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR12</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR13</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLanguageConformance</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccCharIs</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccMultibyteSupport</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptLevel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptStrategy</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptLevelSlave</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptAllowList</name>\r
+          <version>1</version>\r
+          <state>0000000</state>\r
+        </option>\r
+        <option>\r
+          <name>IccGenerateDebugInfo</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOutputFile</name>\r
+          <state>$FILE_BNAME$.o</state>\r
+        </option>\r
+        <option>\r
+          <name>IccProcessor</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccObjPrefix</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLibConfigHeader</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccDoubleSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccDataModel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMacroChars</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccByteOrder</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CCDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCPreprocFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCPreprocComments</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCPreprocLine</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListCFile</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListCMnemonics</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListCMessages</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListAssFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListAssSource</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCEnableRemarks</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagSuppress</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagRemark</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagWarning</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagError</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagWarnAreErr</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCCompilerRuntimeInfo</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>PreInclude</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCIncludePath2</name>\r
+          <state>$PROJ_DIR$\.</state>\r
+          <state>$PROJ_DIR$\..\Common\include</state>\r
+          <state>$PROJ_DIR$\..\..\Source\include</state>\r
+          <state>$PROJ_DIR$\..\..\Source\portable\IAR\RX600</state>\r
+          <state>$PROJ_DIR$\include</state>\r
+        </option>\r
+        <option>\r
+          <name>CCStdIncCheck</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerMisraOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerMisraRules04</name>\r
+          <version>0</version>\r
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerMisraRules98</name>\r
+          <version>0</version>\r
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>IccUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerCpuCore</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLang</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccCDialect</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccAllowVLA</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccCppDialect</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccRequirePrototypes2</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccRelaxedFpPrecision</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>ARX</name>\r
+      <archiveVersion>2</archiveVersion>\r
+      <data>\r
+        <version>3</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>AsmCaseSensitivity</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMultibyteSupport</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmAllowMnemonics</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmAllowDirectives</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMacroChars</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDebugInfo</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListNoDiagnostics</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListIncludeCrossRef</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListMacroDefinitions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListNoMacroExpansion</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListAssembledOnly</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListTruncateMultiline</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmIncludePath</name>\r
+          <state>$TOOLKIT_DIR$\INC\</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmPreprocOutput</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmPreprocComment</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmPreprocLine</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmEnableRemarks</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsSuppress</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsRemark</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsWarning</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsError</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsWarningsAreErrors</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmLimitNumberOfErrors</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMaxNumberOfErrors</name>\r
+          <state>100</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmProcessor</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmObjPrefix</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmOutputFile</name>\r
+          <state>$FILE_BNAME$.o</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmByteOrder</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDataModel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDoubleSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmStdIncludeIgnore2</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>OBJCOPY</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>OOCOutputFormat</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCOutputOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OOCOutputFile</name>\r
+          <state>RTOSDemo.srec</state>\r
+        </option>\r
+        <option>\r
+          <name>OOCCommandLineProducer</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OOCObjCopyEnable</name>\r
+          <state>0</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>CUSTOM</name>\r
+      <archiveVersion>3</archiveVersion>\r
+      <data>\r
+        <extensions></extensions>\r
+        <cmdline></cmdline>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>BICOMP</name>\r
+      <archiveVersion>0</archiveVersion>\r
+      <data/>\r
+    </settings>\r
+    <settings>\r
+      <name>BUILDACTION</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <prebuild></prebuild>\r
+        <postbuild></postbuild>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>ILINK</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>IlinkLibIOConfig</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>XLinkMisraHandler</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkInputFileSlave</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkOutputFile</name>\r
+          <state>RTOSDemo.out</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkDebugInfoEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkKeepSymbols</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinaryFile</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinarySymbol</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinarySegment</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinaryAlign</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkConfigDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkMapFile</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogInitialization</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogModule</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogSection</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogVeneer</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIcfOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIcfFile</name>\r
+          <state>$TOOLKIT_DIR$\CONFIG\lnkr5f562n8.icf</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIcfFileSlave</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkEnableRemarks</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkSuppressDiags</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkTreatAsRem</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkTreatAsWarn</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkTreatAsErr</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkWarningsAreErrors</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkUStackSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIStackSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkHeapSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkAutoLibEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkAdditionalLibs</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkOverrideProgramEntryLabel</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkProgramEntryLabelSelect</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkProgramEntryLabel</name>\r
+          <state>__iar_program_start</state>\r
+        </option>\r
+        <option>\r
+          <name>DoFill</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>FillerByte</name>\r
+          <state>0xFF</state>\r
+        </option>\r
+        <option>\r
+          <name>FillerStart</name>\r
+          <state>0x0</state>\r
+        </option>\r
+        <option>\r
+          <name>FillerEnd</name>\r
+          <state>0x0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcSize</name>\r
+          <version>0</version>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcAlign</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcAlgo</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcPoly</name>\r
+          <state>0x11021</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcCompl</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcBitOrder</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcInitialValue</name>\r
+          <state>0x0</state>\r
+        </option>\r
+        <option>\r
+          <name>DoCrc</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcFullSize</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkCspyDebugSupportEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkCspyBufferedWrite</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogAutoLibSelect</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogRedirSymbols</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogUnusedFragments</name>\r
+          <state>0</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>IARCHIVE</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>IarchiveInputs</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IarchiveOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IarchiveOutput</name>\r
+          <state>###Unitialized###</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>BILINK</name>\r
+      <archiveVersion>0</archiveVersion>\r
+      <data/>\r
+    </settings>\r
+  </configuration>\r
+  <configuration>\r
+    <name>Blinky</name>\r
+    <toolchain>\r
+      <name>RX</name>\r
+    </toolchain>\r
+    <debug>1</debug>\r
+    <settings>\r
+      <name>General</name>\r
+      <archiveVersion>2</archiveVersion>\r
+      <data>\r
+        <version>3</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>OGChipSelectMenu</name>\r
+          <state>R5F562N8      R5F562N8</state>\r
+        </option>\r
+        <option>\r
+          <name>GenDoubleSize</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenCodeModel</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenDataModel</name>\r
+          <state>2</state>\r
+        </option>\r
+        <option>\r
+          <name>GenByteOrder</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GOutputBinary</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>ExePath</name>\r
+          <state>Blinky\Exe</state>\r
+        </option>\r
+        <option>\r
+          <name>ObjPath</name>\r
+          <state>Blinky\Obj</state>\r
+        </option>\r
+        <option>\r
+          <name>ListPath</name>\r
+          <state>Blinky\List</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRuntimeLibSelect</name>\r
+          <version>0</version>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRuntimeLibSelectSlave</name>\r
+          <version>0</version>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRTDescription</name>\r
+          <state>Use the normal configuration of the C/EC++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>\r
+        </option>\r
+        <option>\r
+          <name>GenRTConfigPath</name>\r
+          <state>$TOOLKIT_DIR$\LIB\dlrxflln.h</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibInFormatter</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibInFormatterDescription</name>\r
+          <state>Full formatting.</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibOutFormatter</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GenLibOutFormatterDescription</name>\r
+          <state>Full formatting.</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralEnableMisra</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraVerbose</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraVer</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraRules04</name>\r
+          <version>0</version>\r
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>GeneralMisraRules98</name>\r
+          <version>0</version>\r
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>StackSize</name>\r
+          <state>0x100</state>\r
+        </option>\r
+        <option>\r
+          <name>IStackSize</name>\r
+          <state>0x200</state>\r
+        </option>\r
+        <option>\r
+          <name>HeapSize</name>\r
+          <state>0x4</state>\r
+        </option>\r
+        <option>\r
+          <name>GenSubnormalNumbers</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>GenIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>ICCRX</name>\r
+      <archiveVersion>3</archiveVersion>\r
+      <data>\r
+        <version>10</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>IccLockRegisters</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR8</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR9</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR10</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR11</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR12</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLockR13</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLanguageConformance</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccCharIs</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccMultibyteSupport</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptLevel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptStrategy</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptLevelSlave</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOptAllowList</name>\r
+          <version>1</version>\r
+          <state>0000000</state>\r
+        </option>\r
+        <option>\r
+          <name>IccGenerateDebugInfo</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccOutputFile</name>\r
+          <state>$FILE_BNAME$.o</state>\r
+        </option>\r
+        <option>\r
+          <name>IccProcessor</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccObjPrefix</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLibConfigHeader</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccDoubleSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccDataModel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMacroChars</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccByteOrder</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CCDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCPreprocFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCPreprocComments</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCPreprocLine</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListCFile</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListCMnemonics</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListCMessages</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListAssFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCListAssSource</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCEnableRemarks</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagSuppress</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagRemark</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagWarning</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagError</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCDiagWarnAreErr</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CCCompilerRuntimeInfo</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>PreInclude</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CCIncludePath2</name>\r
+          <state>$PROJ_DIR$\.</state>\r
+          <state>$PROJ_DIR$\..\Common\include</state>\r
+          <state>$PROJ_DIR$\..\..\Source\include</state>\r
+          <state>$PROJ_DIR$\..\..\Source\portable\IAR\RX600</state>\r
+          <state>$PROJ_DIR$\include</state>\r
+        </option>\r
+        <option>\r
+          <name>CCStdIncCheck</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerMisraOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerMisraRules04</name>\r
+          <version>0</version>\r
+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerMisraRules98</name>\r
+          <version>0</version>\r
+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
+        </option>\r
+        <option>\r
+          <name>IccUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>CompilerCpuCore</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccLang</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccCDialect</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccAllowVLA</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccCppDialect</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IccRequirePrototypes2</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccRelaxedFpPrecision</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IccIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>ARX</name>\r
+      <archiveVersion>2</archiveVersion>\r
+      <data>\r
+        <version>3</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>AsmCaseSensitivity</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMultibyteSupport</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmAllowMnemonics</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmAllowDirectives</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMacroChars</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDebugInfo</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListNoDiagnostics</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListIncludeCrossRef</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListMacroDefinitions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListNoMacroExpansion</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListAssembledOnly</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmListTruncateMultiline</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmIncludePath</name>\r
+          <state>$TOOLKIT_DIR$\INC\</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmPreprocOutput</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmPreprocComment</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmPreprocLine</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmEnableRemarks</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsSuppress</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsRemark</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsWarning</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsError</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDiagnosticsWarningsAreErrors</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmLimitNumberOfErrors</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmMaxNumberOfErrors</name>\r
+          <state>100</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmProcessor</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmObjPrefix</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmOutputFile</name>\r
+          <state>$FILE_BNAME$.o</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmByteOrder</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDataModel</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmDoubleSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmStdIncludeIgnore2</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>AsmIntSize</name>\r
+          <state>1</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>OBJCOPY</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>OOCOutputFormat</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OCOutputOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>OOCOutputFile</name>\r
+          <state>RTOSDemo.srec</state>\r
+        </option>\r
+        <option>\r
+          <name>OOCCommandLineProducer</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>OOCObjCopyEnable</name>\r
+          <state>0</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>CUSTOM</name>\r
+      <archiveVersion>3</archiveVersion>\r
+      <data>\r
+        <extensions></extensions>\r
+        <cmdline></cmdline>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>BICOMP</name>\r
+      <archiveVersion>0</archiveVersion>\r
+      <data/>\r
+    </settings>\r
+    <settings>\r
+      <name>BUILDACTION</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <prebuild></prebuild>\r
+        <postbuild></postbuild>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>ILINK</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>IlinkLibIOConfig</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>XLinkMisraHandler</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkInputFileSlave</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkOutputFile</name>\r
+          <state>RTOSDemo.out</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkDebugInfoEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkKeepSymbols</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinaryFile</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinarySymbol</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinarySegment</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkRawBinaryAlign</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkConfigDefines</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkMapFile</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogFile</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogInitialization</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogModule</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogSection</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogVeneer</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIcfOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIcfFile</name>\r
+          <state>$TOOLKIT_DIR$\CONFIG\lnkr5f562n8.icf</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIcfFileSlave</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkEnableRemarks</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkSuppressDiags</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkTreatAsRem</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkTreatAsWarn</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkTreatAsErr</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkWarningsAreErrors</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkUStackSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkIStackSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkHeapSize</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkUseExtraOptions</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkExtraOptions</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkAutoLibEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkAdditionalLibs</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkOverrideProgramEntryLabel</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkProgramEntryLabelSelect</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkProgramEntryLabel</name>\r
+          <state>__iar_program_start</state>\r
+        </option>\r
+        <option>\r
+          <name>DoFill</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>FillerByte</name>\r
+          <state>0xFF</state>\r
+        </option>\r
+        <option>\r
+          <name>FillerStart</name>\r
+          <state>0x0</state>\r
+        </option>\r
+        <option>\r
+          <name>FillerEnd</name>\r
+          <state>0x0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcSize</name>\r
+          <version>0</version>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcAlign</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcAlgo</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcPoly</name>\r
+          <state>0x11021</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcCompl</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcBitOrder</name>\r
+          <version>0</version>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcInitialValue</name>\r
+          <state>0x0</state>\r
+        </option>\r
+        <option>\r
+          <name>DoCrc</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>CrcFullSize</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkCspyDebugSupportEnable</name>\r
+          <state>1</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkCspyBufferedWrite</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogAutoLibSelect</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogRedirSymbols</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IlinkLogUnusedFragments</name>\r
+          <state>0</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>IARCHIVE</name>\r
+      <archiveVersion>1</archiveVersion>\r
+      <data>\r
+        <version>0</version>\r
+        <wantNonLocal>1</wantNonLocal>\r
+        <debug>1</debug>\r
+        <option>\r
+          <name>IarchiveInputs</name>\r
+          <state></state>\r
+        </option>\r
+        <option>\r
+          <name>IarchiveOverride</name>\r
+          <state>0</state>\r
+        </option>\r
+        <option>\r
+          <name>IarchiveOutput</name>\r
+          <state>###Unitialized###</state>\r
+        </option>\r
+      </data>\r
+    </settings>\r
+    <settings>\r
+      <name>BILINK</name>\r
+      <archiveVersion>0</archiveVersion>\r
+      <data/>\r
+    </settings>\r
+  </configuration>\r
+  <group>\r
+    <name>Common Demo Files</name>\r
+    <excluded>\r
+      <configuration>Blinky</configuration>\r
+    </excluded>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\BlockQ.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\blocktim.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\death.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\flash.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\flop.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\GenQTest.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\integer.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\IntQueue.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\QPeek.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\recmutex.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>\r
+    </file>\r
+  </group>\r
+  <group>\r
+    <name>FreeRTOS Source</name>\r
+    <group>\r
+      <name>Portable Layer</name>\r
+      <file>\r
+        <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_2.c</name>\r
+      </file>\r
+      <file>\r
+        <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX600\port.c</name>\r
+      </file>\r
+      <file>\r
+        <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX600\port_asm.s</name>\r
+      </file>\r
+    </group>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\..\Source\list.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\..\Source\queue.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\..\Source\tasks.c</name>\r
+    </file>\r
+  </group>\r
+  <file>\r
+    <name>$PROJ_DIR$\HighFrequencyTimerTest.c</name>\r
+    <excluded>\r
+      <configuration>Blinky</configuration>\r
+    </excluded>\r
+  </file>\r
+  <file>\r
+    <name>$PROJ_DIR$\IntQueueTimer.c</name>\r
+    <excluded>\r
+      <configuration>Blinky</configuration>\r
+    </excluded>\r
+  </file>\r
+  <file>\r
+    <name>$PROJ_DIR$\main-blinky.c</name>\r
+    <excluded>\r
+      <configuration>Debug</configuration>\r
+    </excluded>\r
+  </file>\r
+  <file>\r
+    <name>$PROJ_DIR$\main-full.c</name>\r
+    <excluded>\r
+      <configuration>Blinky</configuration>\r
+    </excluded>\r
+  </file>\r
+  <file>\r
+    <name>$PROJ_DIR$\ParTest.c</name>\r
+  </file>\r
+  <file>\r
+    <name>$PROJ_DIR$\RegTest.s</name>\r
+    <excluded>\r
+      <configuration>Blinky</configuration>\r
+    </excluded>\r
+  </file>\r
+</project>\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/RTOSDemo.eww b/Demo/RX600_RX62N-MDK_IAR/RTOSDemo.eww
new file mode 100644 (file)
index 0000000..239a938
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="iso-8859-1"?>\r
+\r
+<workspace>\r
+  <project>\r
+    <path>$WS_DIR$\RTOSDemo.ewp</path>\r
+  </project>\r
+  <batchBuild/>\r
+</workspace>\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/RegTest.s b/Demo/RX600_RX62N-MDK_IAR/RegTest.s
new file mode 100644 (file)
index 0000000..4a08b34
--- /dev/null
@@ -0,0 +1,225 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+       PUBLIC _prvRegTest1Implementation\r
+       PUBLIC _prvRegTest2Implementation\r
+       \r
+       EXTERN _ulRegTest1CycleCount\r
+       EXTERN _ulRegTest2CycleCount\r
+\r
+       RSEG CODE:CODE(4)\r
+\r
+/* This function is explained in the comments at the top of main.c. */\r
+_prvRegTest1Implementation:\r
+\r
+       /* Put a known value in each register. */\r
+       MOV     #1, R1                                          \r
+       MOV     #2, R2                                          \r
+       MOV     #3, R3                                          \r
+       MOV     #4, R4                                          \r
+       MOV     #5, R5                                          \r
+       MOV     #6, R6                                          \r
+       MOV     #7, R7                                          \r
+       MOV     #8, R8                                          \r
+       MOV     #9, R9                                          \r
+       MOV     #10, R10                                        \r
+       MOV     #11, R11                                        \r
+       MOV     #12, R12                                        \r
+       MOV     #13, R13                                        \r
+       MOV     #14, R14                                        \r
+       MOV     #15, R15                                        \r
+       \r
+       /* Loop, checking each itteration that each register still contains the\r
+       expected value. */\r
+TestLoop1:                                                             \r
+\r
+       /* Push the registers that are going to get clobbered. */\r
+       PUSHM   R14-R15                                         \r
+       \r
+       /* Increment the loop counter to show this task is still getting CPU time. */\r
+       MOV     #_ulRegTest1CycleCount, R14     \r
+       MOV     [ R14 ], R15                            \r
+       ADD     #1, R15                                         \r
+       MOV     R15, [ R14 ]                            \r
+       \r
+       /* Yield to extend the text coverage.  Set the bit in the ITU SWINTR register. */\r
+       MOV     #1, R14                                         \r
+       MOV     #0872E0H, R15                           \r
+       MOV.B   R14, [R15]                                      \r
+       NOP                                                             \r
+       NOP                                                             \r
+       \r
+       /* Restore the clobbered registers. */\r
+       POPM    R14-R15                                         \r
+       \r
+       /* Now compare each register to ensure it still contains the value that was\r
+       set before this loop was entered. */\r
+       CMP     #1, R1                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #2, R2                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #3, R3                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #4, R4                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #5, R5                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #6, R6                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #7, R7                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #8, R8                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #9, R9                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #10, R10                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #11, R11                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #12, R12                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #13, R13                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #14, R14                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #15, R15                                        \r
+       BNE     RegTest1Error                           \r
+\r
+       /* All comparisons passed, start a new itteratio of this loop. */\r
+       BRA             TestLoop1                               \r
+       \r
+RegTest1Error:                                                 \r
+       /* A compare failed, just loop here so the loop counter stops incrementing\r
+       - causing the check task to indicate the error. */\r
+       BRA RegTest1Error                                       \r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained in the comments at the top of main.c. */\r
+_prvRegTest2Implementation:\r
+\r
+       /* Put a known value in each register. */\r
+       MOV     #10H, R1                                        \r
+       MOV     #20H, R2                                        \r
+       MOV     #30H, R3                                        \r
+       MOV     #40H, R4                                        \r
+       MOV     #50H, R5                                        \r
+       MOV     #60H, R6                                        \r
+       MOV     #70H, R7                                        \r
+       MOV     #80H, R8                                        \r
+       MOV     #90H, R9                                        \r
+       MOV     #100H, R10                                      \r
+       MOV     #110H, R11                                      \r
+       MOV     #120H, R12                                      \r
+       MOV     #130H, R13                                      \r
+       MOV     #140H, R14                                      \r
+       MOV     #150H, R15                                      \r
+       \r
+       /* Loop, checking each itteration that each register still contains the\r
+       expected value. */\r
+TestLoop2:                                                             \r
+\r
+       /* Push the registers that are going to get clobbered. */\r
+       PUSHM   R14-R15                                         \r
+       \r
+       /* Increment the loop counter to show this task is still getting CPU time. */\r
+       MOV     #_ulRegTest2CycleCount, R14     \r
+       MOV     [ R14 ], R15                            \r
+       ADD     #1, R15                                         \r
+       MOV     R15, [ R14 ]                            \r
+       \r
+       /* Restore the clobbered registers. */\r
+       POPM    R14-R15                                         \r
+       \r
+       /* Now compare each register to ensure it still contains the value that was\r
+       set before this loop was entered. */\r
+       CMP     #10H, R1                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #20H, R2                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #30H, R3                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #40H, R4                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #50H, R5                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #60H, R6                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #70H, R7                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #80H, R8                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #90H, R9                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #100H, R10                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #110H, R11                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #120H, R12                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #130H, R13                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #140H, R14                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #150H, R15                                      \r
+       BNE     RegTest2Error                           \r
+\r
+       /* All comparisons passed, start a new itteratio of this loop. */\r
+       BRA     TestLoop2                                       \r
+       \r
+RegTest2Error:                                                 \r
+       /* A compare failed, just loop here so the loop counter stops incrementing\r
+       - causing the check task to indicate the error. */\r
+       BRA RegTest2Error                                       \r
+\r
+       \r
+       END\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/Renesas-Files/hwsetup.c b/Demo/RX600_RX62N-MDK_IAR/Renesas-Files/hwsetup.c
new file mode 100644 (file)
index 0000000..59349ea
--- /dev/null
@@ -0,0 +1,115 @@
+/******************************************************************************\r
+* DISCLAIMER\r
+\r
+* This software is supplied by Renesas Technology Corp. and is only \r
+* intended for use with Renesas products. No other uses are authorized.\r
+\r
+* This software is owned by Renesas Technology Corp. and is protected under \r
+* all applicable laws, including copyright laws.\r
+\r
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES\r
+* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, \r
+* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A \r
+* PARTICULAR PURPOSE AND NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY \r
+* DISCLAIMED.\r
+\r
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS \r
+* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE \r
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES \r
+* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS \r
+* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
+\r
+* Renesas reserves the right, without notice, to make changes to this \r
+* software and to discontinue the availability of this software.  \r
+* By using this software, you agree to the additional terms and \r
+* conditions found by accessing the following link:\r
+* http://www.renesas.com/disclaimer\r
+******************************************************************************\r
+* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved.\r
+*******************************************************************************        \r
+* File Name    : hwsetup.c\r
+* Version        : 1.00\r
+* Description  : Power up hardware initializations\r
+******************************************************************************\r
+* History : DD.MM.YYYY Version Description\r
+*               : 15.02.2010 1.00      First Release\r
+******************************************************************************/\r
+\r
+\r
+/******************************************************************************\r
+Includes   <System Includes> , "Project Includes"\r
+******************************************************************************/\r
+#include "iodefine.h"\r
+#include "rskrx62ndef.h"\r
+// #include "lcd.h" Uncomment this if an LCD is present.\r
+\r
+/******************************************************************************\r
+Typedef definitions\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Macro definitions\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Imported global variables and functions (from other files)\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Exported global variables and functions (to be accessed by other files)\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Private global variables and functions\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+* Function Name: HardwareSetup\r
+* Description  : This function does initial setting for CPG port pins used in\r
+*                        : the Demo including the MII pins of the Ethernet PHY connection.\r
+* Arguments    : none\r
+* Return Value : none\r
+******************************************************************************/\r
+void HardwareSetup(void)\r
+{\r
+\r
+       unsigned long sckcr = 0;\r
+\r
+       /* Configure system clocks based on header */\r
+       sckcr += (ICLK_MUL==8) ? (0ul << 24) : (ICLK_MUL==4) ? (1ul << 24) : (ICLK_MUL==2) ? (2ul << 24) : (3ul << 24);\r
+       sckcr += (BCLK_MUL==8) ? (0ul << 16) : (BCLK_MUL==4) ? (1ul << 16) : (BCLK_MUL==2) ? (2ul << 16) : (3ul << 16);\r
+       sckcr += (PCLK_MUL==8) ? (0ul <<  8) : (PCLK_MUL==4) ? (1ul <<  8) : (PCLK_MUL==2) ? (2ul <<  8) : (3ul <<  8);\r
+       SYSTEM.SCKCR.LONG = sckcr;\r
+\r
+       /* Configure LED 0-5 pins as outputs */\r
+       LED0 = LED_OFF; \r
+       LED1 = LED_OFF;\r
+       LED2 = LED_OFF;\r
+       LED3 = LED_OFF;\r
+       LED4 = LED_OFF;\r
+       LED5 = LED_OFF;\r
+       LED0_DDR = 1; \r
+       LED1_DDR = 1;\r
+       LED2_DDR = 1;\r
+       LED3_DDR = 1;\r
+       LED4_DDR = 1;\r
+       LED5_DDR = 1;\r
+\r
+       /* Configure SW 1-3 pins as inputs */\r
+       SW1_DDR = 0;\r
+       SW2_DDR = 0;\r
+       SW3_DDR = 0;\r
+       SW1_ICR = 1;\r
+       SW2_ICR = 1;\r
+       SW3_ICR = 1;\r
+\r
+       \r
+       /* Configure LCD pins as outputs - uncomment this if an LCD is present.\r
+       LCD_RS_DDR = 1;\r
+       LCD_EN_DDR = 1;\r
+       LCD_DATA_DDR = 0xF0; */\r
+\r
+       /* Initialize display - uncomment this if an LCD is present.\r
+       InitialiseDisplay(); */\r
+}\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/include/IntQueueTimer.h b/Demo/RX600_RX62N-MDK_IAR/include/IntQueueTimer.h
new file mode 100644 (file)
index 0000000..ce40d7e
--- /dev/null
@@ -0,0 +1,62 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public \r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it \r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained \r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+#ifndef INT_QUEUE_TIMER_H\r
+#define INT_QUEUE_TIMER_H\r
+\r
+void vInitialiseTimerForIntQueueTest( void );\r
+portBASE_TYPE xTimer0Handler( void );\r
+portBASE_TYPE xTimer1Handler( void );\r
+\r
+#endif\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/include/inthandler.h b/Demo/RX600_RX62N-MDK_IAR/include/inthandler.h
new file mode 100644 (file)
index 0000000..f55efca
--- /dev/null
@@ -0,0 +1,714 @@
+/***********************************************************************/\r
+/*                                                                     */\r
+/*  FILE        :inthandler.h                                          */\r
+/*  DATE        :Wed, Aug 25, 2010                                     */\r
+/*  DESCRIPTION :Interrupt Handler Declarations                        */\r
+/*  CPU TYPE    :Other                                                 */\r
+/*                                                                     */\r
+/*  This file is generated by KPIT GNU Project Generator.              */\r
+/*                                                                     */\r
+/***********************************************************************/\r
+                          \r
+\r
+\r
+#ifndef INTHANDLER_H\r
+#define INTHANDLER_H\r
+\r
+// Exception(Supervisor Instruction)\r
+void INT_Excep_SuperVisorInst(void) __attribute__ ((interrupt));\r
+\r
+// Exception(Undefined Instruction)\r
+void INT_Excep_UndefinedInst(void) __attribute__ ((interrupt));\r
+\r
+// Exception(Floating Point)\r
+void INT_Excep_FloatingPoint(void) __attribute__ ((interrupt));\r
+\r
+// NMI\r
+void INT_NonMaskableInterrupt(void) __attribute__ ((interrupt));\r
+\r
+// Dummy\r
+void Dummy (void) __attribute__ ((interrupt));\r
+\r
+// BRK\r
+void INT_Excep_BRK(void) __attribute__ ((interrupt));\r
+\r
+// vector  1 reserved\r
+// vector  2 reserved\r
+// vector  3 reserved\r
+// vector  4 reserved\r
+// vector  5 reserved\r
+// vector  6 reserved\r
+// vector  7 reserved\r
+// vector  8 reserved\r
+// vector  9 reserved\r
+// vector 10 reserved\r
+// vector 11 reserved\r
+// vector 12 reserved\r
+// vector 13 reserved\r
+// vector 14 reserved\r
+// vector 15 reserved\r
+\r
+// BUSERR\r
+\r
+void INT_Excep_BUSERR(void) __attribute__ ((interrupt));\r
+\r
+// vector 17 reserved\r
+// vector 18 reserved\r
+// vector 19 reserved\r
+// vector 20 reserved\r
+\r
+// FCU_FCUERR\r
+\r
+void INT_Excep_FCU_FCUERR(void) __attribute__ ((interrupt));\r
+\r
+// vector 22 reserved\r
+\r
+// FCU_FRDYI\r
+\r
+void INT_Excep_FCU_FRDYI(void) __attribute__ ((interrupt));\r
+\r
+// vector 24 reserved\r
+// vector 25 reserved\r
+// vector 26 reserved\r
+// vector 27 reserved\r
+\r
+// CMTU0_CMT0\r
+\r
+void INT_Excep_CMTU0_CMT0(void) __attribute__ ((interrupt));\r
+\r
+// CMTU0_CMT1\r
+\r
+void INT_Excep_CMTU0_CMT1(void) __attribute__ ((interrupt));\r
+\r
+// CMTU1_CMT2\r
+\r
+void INT_Excep_CMTU1_CMT2(void) __attribute__ ((interrupt));\r
+\r
+// CMTU1_CMT3\r
+\r
+void INT_Excep_CMTU1_CMT3(void) __attribute__ ((interrupt));\r
+\r
+// vector 32 reserved\r
+// vector 33 reserved\r
+// vector 34 reserved\r
+// vector 35 reserved\r
+// vector 36 reserved\r
+// vector 37 reserved\r
+// vector 38 reserved\r
+// vector 39 reserved\r
+// vector 40 reserved\r
+// vector 41 reserved\r
+// vector 42 reserved\r
+// vector 43 reserved\r
+// vector 44 reserved\r
+// vector 45 reserved\r
+// vector 46 reserved\r
+// vector 47 reserved\r
+// vector 48 reserved\r
+// vector 49 reserved\r
+// vector 50 reserved\r
+// vector 51 reserved\r
+// vector 52 reserved\r
+// vector 53 reserved\r
+// vector 54 reserved\r
+// vector 55 reserved\r
+// vector 56 reserved\r
+// vector 57 reserved\r
+// vector 58 reserved\r
+// vector 59 reserved\r
+// vector 60 reserved\r
+// vector 61 reserved\r
+// vector 62 reserved\r
+// vector 63 reserved\r
+\r
+// IRQ0\r
+\r
+void INT_Excep_IRQ0(void) __attribute__ ((interrupt));\r
+\r
+// IRQ1\r
+\r
+void INT_Excep_IRQ1(void) __attribute__ ((interrupt));\r
+\r
+// IRQ2\r
+\r
+void INT_Excep_IRQ2(void) __attribute__ ((interrupt));\r
+\r
+// IRQ3\r
+\r
+void INT_Excep_IRQ3(void) __attribute__ ((interrupt));\r
+\r
+// IRQ4\r
+\r
+void INT_Excep_IRQ4(void) __attribute__ ((interrupt));\r
+\r
+// IRQ5\r
+\r
+void INT_Excep_IRQ5(void) __attribute__ ((interrupt));\r
+\r
+// IRQ6\r
+\r
+void INT_Excep_IRQ6(void) __attribute__ ((interrupt));\r
+\r
+// IRQ7\r
+\r
+void INT_Excep_IRQ7(void) __attribute__ ((interrupt));\r
+\r
+// IRQ8\r
+\r
+void INT_Excep_IRQ8(void) __attribute__ ((interrupt));\r
+\r
+// IRQ9\r
+\r
+void INT_Excep_IRQ9(void) __attribute__ ((interrupt));\r
+\r
+// IRQ10\r
+\r
+void INT_Excep_IRQ10(void) __attribute__ ((interrupt));\r
+\r
+// IRQ11\r
+\r
+void INT_Excep_IRQ11(void) __attribute__ ((interrupt));\r
+\r
+// IRQ12\r
+\r
+void INT_Excep_IRQ12(void) __attribute__ ((interrupt));\r
+\r
+// IRQ13\r
+\r
+void INT_Excep_IRQ13(void) __attribute__ ((interrupt));\r
+\r
+// IRQ14\r
+\r
+void INT_Excep_IRQ14(void) __attribute__ ((interrupt));\r
+\r
+// IRQ15\r
+\r
+void INT_Excep_IRQ15(void) __attribute__ ((interrupt));\r
+\r
+// vector 80 reserved\r
+// vector 81 reserved\r
+// vector 82 reserved\r
+// vector 83 reserved\r
+// vector 84 reserved\r
+// vector 85 reserved\r
+// vector 86 reserved\r
+// vector 87 reserved\r
+// vector 88 reserved\r
+// vector 89 reserved\r
+// vector 90 reserved\r
+// vector 91 reserved\r
+// vector 92 reserved\r
+// vector 93 reserved\r
+// vector 94 reserved\r
+// vector 95 reserved\r
+\r
+// WDT_WOVI\r
+\r
+void INT_Excep_WDT_WOVI(void) __attribute__ ((interrupt));\r
+\r
+// vector 97 reserved\r
+\r
+// AD0_ADI0\r
+\r
+void INT_Excep_AD0_ADI0(void) __attribute__ ((interrupt));\r
+\r
+// AD1_ADI1\r
+\r
+void INT_Excep_AD1_ADI1(void) __attribute__ ((interrupt));\r
+\r
+// AD2_ADI2\r
+\r
+void INT_Excep_AD2_ADI2(void) __attribute__ ((interrupt));\r
+\r
+// AD3_ADI3\r
+\r
+void INT_Excep_AD3_ADI3(void) __attribute__ ((interrupt));\r
+\r
+// vector 102 reserved\r
+// vector 103 reserved\r
+\r
+// TPU0_TGI0A\r
+\r
+void INT_Excep_TPU0_TGI0A(void) __attribute__ ((interrupt));\r
+\r
+// TPU0_TGI0B\r
+\r
+void INT_Excep_TPU0_TGI0B(void) __attribute__ ((interrupt));\r
+\r
+// TPU0_TGI0C\r
+\r
+void INT_Excep_TPU0_TGI0C(void) __attribute__ ((interrupt));\r
+\r
+// TPU0_TGI0D\r
+\r
+void INT_Excep_TPU0_TGI0D(void) __attribute__ ((interrupt));\r
+\r
+// TPU0_TCI0V\r
+\r
+void INT_Excep_TPU0_TCI0V(void) __attribute__ ((interrupt));\r
+\r
+// vector 109 reserved\r
+// vector 110 reserved\r
+\r
+// TPU1_TGI1A\r
+\r
+void INT_Excep_TPU1_TGI1A(void) __attribute__ ((interrupt));\r
+\r
+// TPU1_TGI1B\r
+\r
+void INT_Excep_TPU1_TGI1B(void) __attribute__ ((interrupt));\r
+\r
+// vector 113 reserved\r
+// vector 114 reserved\r
+\r
+// TPU1_TCI1V\r
+\r
+void INT_Excep_TPU1_TCI1V(void) __attribute__ ((interrupt));\r
+\r
+// TPU1_TCI1U\r
+\r
+void INT_Excep_TPU1_TCI1U(void) __attribute__ ((interrupt));\r
+\r
+// TPU2_TGI2A\r
+\r
+void INT_Excep_TPU2_TGI2A(void) __attribute__ ((interrupt));\r
+\r
+// TPU2_TGI2B\r
+\r
+void INT_Excep_TPU2_TGI2B(void) __attribute__ ((interrupt));\r
+\r
+// vector 119 reserved\r
+\r
+// TPU2_TCI2V\r
+\r
+void INT_Excep_TPU2_TCI2V(void) __attribute__ ((interrupt));\r
+\r
+// TPU2_TCI2U\r
+\r
+void INT_Excep_TPU2_TCI2U(void) __attribute__ ((interrupt));\r
+\r
+// TPU3_TGI3A\r
+\r
+void INT_Excep_TPU3_TGI3A(void) __attribute__ ((interrupt));\r
+\r
+// TPU3_TGI3B\r
+\r
+void INT_Excep_TPU3_TGI3B(void) __attribute__ ((interrupt));\r
+\r
+// TPU3_TGI3C\r
+\r
+void INT_Excep_TPU3_TGI3C(void) __attribute__ ((interrupt));\r
+\r
+// TPU3_TGI3D\r
+\r
+void INT_Excep_TPU3_TGI3D(void) __attribute__ ((interrupt));\r
+\r
+// TPU3_TCI3V\r
+\r
+void INT_Excep_TPU3_TCI3V(void) __attribute__ ((interrupt));\r
+\r
+// TPU4_TGI4A\r
+\r
+void INT_Excep_TPU4_TGI4A(void) __attribute__ ((interrupt));\r
+\r
+// TPU4_TGI4B\r
+\r
+void INT_Excep_TPU4_TGI4B(void) __attribute__ ((interrupt));\r
+\r
+// vector 129 reserved\r
+// vector 130 reserved\r
+\r
+// TPU4_TCI4V\r
+\r
+void INT_Excep_TPU4_TCI4V(void) __attribute__ ((interrupt));\r
+\r
+// TPU4_TCI4U\r
+\r
+void INT_Excep_TPU4_TCI4U(void) __attribute__ ((interrupt));\r
+\r
+// TPU5_TGI5A\r
+\r
+void INT_Excep_TPU5_TGI5A(void) __attribute__ ((interrupt));\r
+\r
+// TPU5_TGI5B\r
+\r
+void INT_Excep_TPU5_TGI5B(void) __attribute__ ((interrupt));\r
+\r
+// vector 135 reserved\r
+\r
+// TPU5_TCI5V\r
+\r
+void INT_Excep_TPU5_TCI5V(void) __attribute__ ((interrupt));\r
+\r
+// TPU5_TCI5U\r
+\r
+void INT_Excep_TPU5_TCI5U(void) __attribute__ ((interrupt));\r
+\r
+// TPU6_TGI6A\r
+\r
+void INT_Excep_TPU6_TGI6A(void) __attribute__ ((interrupt));\r
+\r
+// TPU6_TGI6B\r
+\r
+void INT_Excep_TPU6_TGI6B(void) __attribute__ ((interrupt));\r
+\r
+// TPU6_TGI6C\r
+\r
+void INT_Excep_TPU6_TGI6C(void) __attribute__ ((interrupt));\r
+\r
+// TPU6_TGI6D\r
+\r
+void INT_Excep_TPU6_TGI6D(void) __attribute__ ((interrupt));\r
+\r
+// TPU6_TCI6V\r
+\r
+void INT_Excep_TPU6_TCI6V(void) __attribute__ ((interrupt));\r
+\r
+// vector 143 reserved\r
+// vector 144 reserved\r
+\r
+// TPU7_TGI7A\r
+\r
+void INT_Excep_TPU7_TGI7A(void) __attribute__ ((interrupt));\r
+\r
+// TPU7_TGI7B\r
+\r
+void INT_Excep_TPU7_TGI7B(void) __attribute__ ((interrupt));\r
+\r
+// vector 147 reserved\r
+// vector 148 reserved\r
+\r
+// TPU7_TCI7V\r
+\r
+void INT_Excep_TPU7_TCI7V(void) __attribute__ ((interrupt));\r
+\r
+// TPU7_TCI7U\r
+\r
+void INT_Excep_TPU7_TCI7U(void) __attribute__ ((interrupt));\r
+\r
+// TPU8_TGI8A\r
+\r
+void INT_Excep_TPU8_TGI8A(void) __attribute__ ((interrupt));\r
+\r
+// TPU8_TGI8B\r
+\r
+void INT_Excep_TPU8_TGI8B(void) __attribute__ ((interrupt));\r
+\r
+// vector 153 reserved\r
+\r
+// TPU8_TCI8V\r
+\r
+void INT_Excep_TPU8_TCI8V(void) __attribute__ ((interrupt));\r
+\r
+// TPU8_TCI8U\r
+\r
+void INT_Excep_TPU8_TCI8U(void) __attribute__ ((interrupt));\r
+\r
+// TPU9_TGI9A\r
+\r
+void INT_Excep_TPU9_TGI9A(void) __attribute__ ((interrupt));\r
+\r
+// TPU9_TGI9B\r
+\r
+void INT_Excep_TPU9_TGI9B(void) __attribute__ ((interrupt));\r
+\r
+// TPU9_TGI9C\r
+\r
+void INT_Excep_TPU9_TGI9C(void) __attribute__ ((interrupt));\r
+\r
+// TPU9_TGI9D\r
+\r
+void INT_Excep_TPU9_TGI9D(void) __attribute__ ((interrupt));\r
+\r
+// TPU9_TCI9V\r
+\r
+void INT_Excep_TPU9_TCI9V(void) __attribute__ ((interrupt));\r
+\r
+// TPU10_TGI10A\r
+\r
+void INT_Excep_TPU10_TGI10A(void) __attribute__ ((interrupt));\r
+\r
+// TPU10_TGI10B\r
+\r
+void INT_Excep_TPU10_TGI10B(void) __attribute__ ((interrupt));\r
+\r
+// vector 163 reserved\r
+// vector 164 reserved\r
+\r
+// TPU10_TCI10V\r
+\r
+void INT_Excep_TPU10_TCI10V(void) __attribute__ ((interrupt));\r
+\r
+// TPU10_TCI10U\r
+\r
+void INT_Excep_TPU10_TCI10U(void) __attribute__ ((interrupt));\r
+\r
+// TPU11_TGI11A\r
+\r
+void INT_Excep_TPU11_TGI11A(void) __attribute__ ((interrupt));\r
+\r
+// TPU11_TGI11B\r
+\r
+void INT_Excep_TPU11_TGI11B(void) __attribute__ ((interrupt));\r
+\r
+// vector 169 reserved\r
+\r
+// TPU11_TCI11V\r
+\r
+void INT_Excep_TPU11_TCI11V(void) __attribute__ ((interrupt));\r
+\r
+// TPU11_TCI11U\r
+\r
+void INT_Excep_TPU11_TCI11U(void) __attribute__ ((interrupt));\r
+\r
+// vector 172 reserved\r
+// vector 173 reserved\r
+\r
+// TMR0_CMI0A\r
+\r
+void INT_Excep_TMR0_CMI0A(void) __attribute__ ((interrupt));\r
+\r
+// TMR0_CMI0B\r
+\r
+void INT_Excep_TMR0_CMI0B(void) __attribute__ ((interrupt));\r
+\r
+// TMR0_OV0I\r
+\r
+void INT_Excep_TMR0_OV0I(void) __attribute__ ((interrupt));\r
+\r
+// TMR1_CMI1A\r
+\r
+void INT_Excep_TMR1_CMI1A(void) __attribute__ ((interrupt));\r
+\r
+// TMR1_CMI1B\r
+\r
+void INT_Excep_TMR1_CMI1B(void) __attribute__ ((interrupt));\r
+\r
+// TMR1_OV1I\r
+\r
+void INT_Excep_TMR1_OV1I(void) __attribute__ ((interrupt));\r
+\r
+// TMR2_CMI2A\r
+\r
+void INT_Excep_TMR2_CMI2A(void) __attribute__ ((interrupt));\r
+\r
+// TMR2_CMI2B\r
+\r
+void INT_Excep_TMR2_CMI2B(void) __attribute__ ((interrupt));\r
+\r
+// TMR2_OV2I\r
+\r
+void INT_Excep_TMR2_OV2I(void) __attribute__ ((interrupt));\r
+\r
+// TMR3_CMI3A\r
+\r
+void INT_Excep_TMR3_CMI3A(void) __attribute__ ((interrupt));\r
+\r
+// TMR3_CMI3B\r
+\r
+void INT_Excep_TMR3_CMI3B(void) __attribute__ ((interrupt));\r
+\r
+// TMR3_OV3I\r
+\r
+void INT_Excep_TMR3_OV3I(void) __attribute__ ((interrupt));\r
+\r
+// vector 186 reserved\r
+// vector 187 reserved\r
+// vector 188 reserved\r
+// vector 189 reserved\r
+// vector 190 reserved\r
+// vector 191 reserved\r
+// vector 192 reserved\r
+// vector 193 reserved\r
+// vector 194 reserved\r
+// vector 195 reserved\r
+// vector 196 reserved\r
+// vector 197 reserved\r
+\r
+// DMAC_DMTEND0\r
+\r
+void INT_Excep_DMAC_DMTEND0(void);\r
+\r
+// DMAC_DMTEND1\r
+\r
+void INT_Excep_DMAC_DMTEND1(void) __attribute__ ((interrupt));\r
+\r
+// DMAC_DMTEND2\r
+\r
+void INT_Excep_DMAC_DMTEND2(void) __attribute__ ((interrupt));\r
+\r
+// DMAC_DMTEND3\r
+\r
+void INT_Excep_DMAC_DMTEND3(void) __attribute__ ((interrupt));\r
+\r
+// vector 202 reserved\r
+// vector 203 reserved\r
+// vector 204 reserved\r
+// vector 205 reserved\r
+// vector 206 reserved\r
+// vector 207 reserved\r
+// vector 208 reserved\r
+// vector 209 reserved\r
+// vector 210 reserved\r
+// vector 211 reserved\r
+// vector 212 reserved\r
+// vector 213 reserved\r
+\r
+// SCI0_ERI0\r
+\r
+void INT_Excep_SCI0_ERI0(void) __attribute__ ((interrupt));\r
+\r
+// SCI0_RXI0\r
+\r
+void INT_Excep_SCI0_RXI0(void) __attribute__ ((interrupt));\r
+\r
+// SCI0_TXI0\r
+\r
+void INT_Excep_SCI0_TXI0(void) __attribute__ ((interrupt));\r
+\r
+// SCI0_TEI0\r
+\r
+void INT_Excep_SCI0_TEI0(void) __attribute__ ((interrupt));\r
+\r
+// SCI1_ERI1\r
+\r
+void INT_Excep_SCI1_ERI1(void) __attribute__ ((interrupt));\r
+\r
+// SCI1_RXI1\r
+\r
+void INT_Excep_SCI1_RXI1(void) __attribute__ ((interrupt));\r
+\r
+// SCI1_TXI1\r
+\r
+void INT_Excep_SCI1_TXI1(void) __attribute__ ((interrupt));\r
+\r
+// SCI1_TEI1\r
+\r
+void INT_Excep_SCI1_TEI1(void) __attribute__ ((interrupt));\r
+\r
+// SCI2_ERI2\r
+\r
+void INT_Excep_SCI2_ERI2(void) __attribute__ ((interrupt));\r
+\r
+// SCI2_RXI2\r
+\r
+void INT_Excep_SCI2_RXI2(void) __attribute__ ((interrupt));\r
+\r
+// SCI2_TXI2\r
+\r
+void INT_Excep_SCI2_TXI2(void) __attribute__ ((interrupt));\r
+\r
+// SCI2_TEI2\r
+\r
+void INT_Excep_SCI2_TEI2(void) __attribute__ ((interrupt));\r
+\r
+// SCI3_ERI3\r
+\r
+void INT_Excep_SCI3_ERI3(void) __attribute__ ((interrupt));\r
+\r
+// SCI3_RXI3\r
+\r
+void INT_Excep_SCI3_RXI3(void) __attribute__ ((interrupt));\r
+\r
+// SCI3_TXI3\r
+\r
+void INT_Excep_SCI3_TXI3(void) __attribute__ ((interrupt));\r
+\r
+// SCI3_TEI3\r
+\r
+void INT_Excep_SCI3_TEI3(void) __attribute__ ((interrupt));\r
+\r
+// SCI4_ERI4\r
+\r
+void INT_Excep_SCI4_ERI4(void) __attribute__ ((interrupt));\r
+\r
+// SCI4_RXI4\r
+\r
+void INT_Excep_SCI4_RXI4(void) __attribute__ ((interrupt));\r
+\r
+// SCI4_TXI4\r
+\r
+void INT_Excep_SCI4_TXI4(void) __attribute__ ((interrupt));\r
+\r
+// SCI4_TEI4\r
+\r
+void INT_Excep_SCI4_TEI4(void) __attribute__ ((interrupt));\r
+\r
+// SCI5_ERI5\r
+\r
+void INT_Excep_SCI5_ERI5(void) __attribute__ ((interrupt));\r
+\r
+// SCI5_RXI5\r
+\r
+void INT_Excep_SCI5_RXI5(void) __attribute__ ((interrupt));\r
+\r
+// SCI5_TXI5\r
+\r
+void INT_Excep_SCI5_TXI5(void) __attribute__ ((interrupt));\r
+\r
+// SCI5_TEI5\r
+\r
+void INT_Excep_SCI5_TEI5(void) __attribute__ ((interrupt));\r
+\r
+// SCI6_ERI6\r
+\r
+void INT_Excep_SCI6_ERI6(void) __attribute__ ((interrupt));\r
+\r
+// SCI6_RXI6\r
+\r
+void INT_Excep_SCI6_RXI6(void) __attribute__ ((interrupt));\r
+\r
+// SCI6_TXI6\r
+\r
+void INT_Excep_SCI6_TXI6(void) __attribute__ ((interrupt));\r
+\r
+// SCI6_TEI6\r
+\r
+void INT_Excep_SCI6_TEI6(void) __attribute__ ((interrupt));\r
+\r
+// vector 242 reserved\r
+// vector 243 reserved\r
+// vector 244 reserved\r
+// vector 245 reserved\r
+\r
+// RIIC0_EEI0\r
+\r
+void INT_Excep_RIIC0_EEI0(void) __attribute__ ((interrupt));\r
+\r
+// RIIC0_RXI0\r
+\r
+void INT_Excep_RIIC0_RXI0(void) __attribute__ ((interrupt));\r
+\r
+// RIIC0_TXI0\r
+\r
+void INT_Excep_RIIC0_TXI0(void) __attribute__ ((interrupt));\r
+\r
+// RIIC0_TEI0\r
+\r
+void INT_Excep_RIIC0_TEI0(void) __attribute__ ((interrupt));\r
+\r
+// RIIC1_EEI1\r
+\r
+void INT_Excep_RIIC1_EEI1(void) __attribute__ ((interrupt));\r
+\r
+// RIIC1_RXI1\r
+\r
+void INT_Excep_RIIC1_RXI1(void) __attribute__ ((interrupt));\r
+\r
+// RIIC1_TXI1\r
+\r
+void INT_Excep_RIIC1_TXI1(void) __attribute__ ((interrupt));\r
+\r
+// RIIC1_TEI1\r
+\r
+void INT_Excep_RIIC1_TEI1(void) __attribute__ ((interrupt));\r
+\r
+// vector 254 reserved\r
+// vector 255 reserved\r
+\r
+//;<<VECTOR DATA START (POWER ON RESET)>>\r
+//;Power On Reset PC\r
+extern void PowerON_Reset_PC(void) __attribute__ ((interrupt));                                                                                                                \r
+//;<<VECTOR DATA END (POWER ON RESET)>>\r
+\r
+#endif
\ No newline at end of file
diff --git a/Demo/RX600_RX62N-MDK_IAR/include/rskrx62ndef.h b/Demo/RX600_RX62N-MDK_IAR/include/rskrx62ndef.h
new file mode 100644 (file)
index 0000000..5077d74
--- /dev/null
@@ -0,0 +1,98 @@
+\r
+/******************************************************************************\r
+* DISCLAIMER\r
+* Please refer to http://www.renesas.com/disclaimer\r
+******************************************************************************\r
+  Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved.\r
+*******************************************************************************\r
+* File Name    : rsksh7216.h\r
+* Version      : 1.00\r
+* Description  : RSK 7216 board specific settings\r
+******************************************************************************\r
+* History : DD.MM.YYYY Version Description\r
+*         : 06.10.2009 1.00    First Release\r
+******************************************************************************/\r
+\r
+#ifndef RSKRX62N_H\r
+#define RSKRX62N_H\r
+\r
+/******************************************************************************\r
+Includes   <System Includes> , "Project Includes"\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Typedef definitions\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Macro definitions\r
+******************************************************************************/\r
+\r
+/* System Clock Settings */\r
+#define     XTAL_FREQUENCY  (12000000L)\r
+#define     ICLK_MUL        (8)\r
+#define     PCLK_MUL        (4)\r
+#define     BCLK_MUL        (4)\r
+#define     ICLK_FREQUENCY  (XTAL_FREQUENCY * ICLK_MUL)\r
+#define     PCLK_FREQUENCY  (XTAL_FREQUENCY * PCLK_MUL)\r
+#define     BCLK_FREQUENCY  (XTAL_FREQUENCY * BCLK_MUL)\r
+\r
+#define     CMT0_CLK_SELECT (512)\r
+\r
+/* General Values */\r
+#define                LED_ON          (0)\r
+#define        LED_OFF                 (1)\r
+#define        SET_BIT_HIGH    (1)\r
+#define        SET_BIT_LOW             (0)\r
+#define        SET_BYTE_HIGH   (0xFF)\r
+#define        SET_BYTE_LOW    (0x00)\r
+\r
+/* Define switches to be polled if not available as interrupts */\r
+#define                SW_ACTIVE               FALSE\r
+#define        SW1                     PORT0.DR.BIT.B0\r
+#define        SW2                     PORT0.DR.BIT.B1\r
+#define     SW3             PORT0.DR.BIT.B7\r
+#define        SW1_DDR                 PORT0.DDR.BIT.B0\r
+#define        SW2_DDR                 PORT0.DDR.BIT.B1\r
+#define     SW3_DDR         PORT0.DDR.BIT.B7\r
+#define        SW1_ICR                 PORT0.ICR.BIT.B0\r
+#define        SW2_ICR                 PORT0.ICR.BIT.B1\r
+#define     SW3_ICR         PORT0.ICR.BIT.B7\r
+\r
+/* LEDs */\r
+#define                LED0                    PORT0.DR.BIT.B2\r
+#define                LED1                    PORT0.DR.BIT.B3\r
+#define                LED2                    PORT0.DR.BIT.B5\r
+#define                LED3                    PORT3.DR.BIT.B4\r
+#define            LED4                        PORT6.DR.BIT.B0\r
+#define            LED5                        PORT7.DR.BIT.B3\r
+#define                LED0_DDR        PORT0.DDR.BIT.B2\r
+#define                LED1_DDR        PORT0.DDR.BIT.B3\r
+#define                LED2_DDR        PORT0.DDR.BIT.B5\r
+#define                LED3_DDR        PORT3.DDR.BIT.B4\r
+#define            LED4_DDR        PORT6.DDR.BIT.B0\r
+#define            LED5_DDR        PORT7.DDR.BIT.B3\r
+\r
+/* 2x8 segment LCD */\r
+#define     LCD_RS          PORT8.DR.BIT.B4\r
+#define     LCD_EN          PORT8.DR.BIT.B5\r
+#define     LCD_DATA        PORT9.DR.BYTE\r
+#define     LCD_RS_DDR      PORT8.DDR.BIT.B4\r
+#define     LCD_EN_DDR      PORT8.DDR.BIT.B5\r
+#define     LCD_DATA_DDR    PORT9.DDR.BYTE\r
+\r
+\r
+\r
+/******************************************************************************\r
+Variable Externs\r
+******************************************************************************/\r
+\r
+/******************************************************************************\r
+Functions Prototypes\r
+******************************************************************************/\r
+\r
+\r
+\r
+/* RSKRX62N_H */\r
+#endif         \r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/include/typedefine.h b/Demo/RX600_RX62N-MDK_IAR/include/typedefine.h
new file mode 100644 (file)
index 0000000..49b303a
--- /dev/null
@@ -0,0 +1,23 @@
+/***********************************************************************/\r
+/*                                                                     */\r
+/*  FILE        :typedefine.h                                          */\r
+/*  DATE        :Wed, Aug 25, 2010                                     */\r
+/*  DESCRIPTION :Aliases of Integer Type                               */\r
+/*  CPU TYPE    :Other                                                 */\r
+/*                                                                     */\r
+/*  This file is generated by KPIT GNU Project Generator.              */\r
+/*                                                                     */\r
+/***********************************************************************/\r
+                    \r
+                                                                                                                                                                                       \r
+                                                                                                                                                                               \r
+typedef signed char _SBYTE;\r
+typedef unsigned char _UBYTE;\r
+typedef signed short _SWORD;\r
+typedef unsigned short _UWORD;\r
+typedef signed int _SINT;\r
+typedef unsigned int _UINT;\r
+typedef signed long _SDWORD;\r
+typedef unsigned long _UDWORD;\r
+typedef signed long long _SQWORD;\r
+typedef unsigned long long _UQWORD;\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/main-blinky.c b/Demo/RX600_RX62N-MDK_IAR/main-blinky.c
new file mode 100644 (file)
index 0000000..33dcb7e
--- /dev/null
@@ -0,0 +1,227 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+/*\r
+ * This is a very simple demo that creates two tasks and one queue.  One task\r
+ * (the queue receive task) blocks on the queue to wait for data to arrive,\r
+ * toggling an LED each time '100' is received.  The other task (the queue send\r
+ * task) repeatedly blocks for a fixed period before sending '100' to the queue\r
+ * (causing the first task to toggle the LED).\r
+ *\r
+ * For a much more complete and complex example select either the Debug or\r
+ * Debug_with_optimisation build configurations within the HEW IDE.\r
+*/\r
+\r
+/* Hardware specific includes. */\r
+#include <iorx62n.h>\r
+\r
+/* Kernel includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+\r
+/* Demo includes. */\r
+#include "partest.h"\r
+\r
+/* Priorities at which the tasks are created. */\r
+#define        configQUEUE_RECEIVE_TASK_PRIORITY       ( tskIDLE_PRIORITY + 2 )\r
+#define                configQUEUE_SEND_TASK_PRIORITY          ( tskIDLE_PRIORITY + 1 )\r
+\r
+/* The rate at which data is sent to the queue, specified in milliseconds. */\r
+#define mainQUEUE_SEND_FREQUENCY_MS                            ( 500 / portTICK_RATE_MS )\r
+\r
+/* The number of items the queue can hold.  This is 1 as the receive task\r
+will remove items as they are added so the send task should always find the\r
+queue empty. */\r
+#define mainQUEUE_LENGTH                                               ( 1 )\r
+\r
+/*\r
+ * The tasks as defined at the top of this file.\r
+ */\r
+static void prvQueueReceiveTask( void *pvParameters );\r
+static void prvQueueSendTask( void *pvParameters );\r
+\r
+/* The queue used by both tasks. */\r
+static xQueueHandle xQueue = NULL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main(void)\r
+{\r
+extern void HardwareSetup( void );\r
+\r
+       /* Renesas provided CPU configuration routine.  The clocks are configured in\r
+       here. */\r
+//     HardwareSetup();\r
+       \r
+       /* Turn all LEDs off. */\r
+       vParTestInitialise();\r
+       \r
+       /* Create the queue. */\r
+       xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );\r
+\r
+       if( xQueue != NULL )\r
+       {\r
+               /* Start the two tasks as described at the top of this file. */\r
+               xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, configQUEUE_RECEIVE_TASK_PRIORITY, NULL );\r
+               xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL );\r
+\r
+               /* Start the tasks running. */\r
+               vTaskStartScheduler();\r
+       }\r
+       \r
+       /* If all is well we will never reach here as the scheduler will now be\r
+       running.  If we do reach here then it is likely that there was insufficient\r
+       heap available for the idle task to be created. */\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvQueueSendTask( void *pvParameters )\r
+{\r
+portTickType xNextWakeTime;\r
+const unsigned long ulValueToSend = 100UL;\r
+\r
+       /* Initialise xNextWakeTime - this only needs to be done once. */\r
+       xNextWakeTime = xTaskGetTickCount();\r
+\r
+       for( ;; )\r
+       {\r
+               /* Place this task in the blocked state until it is time to run again.\r
+               The block state is specified in ticks, the constant used converts ticks\r
+               to ms. */\r
+               vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );\r
+\r
+               /* Send to the queue - causing the queue receive task to flash its LED.  0\r
+               is used so the send does not block - it shouldn't need to as the queue\r
+               should always be empty here. */\r
+               xQueueSend( xQueue, &ulValueToSend, 0 );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvQueueReceiveTask( void *pvParameters )\r
+{\r
+unsigned long ulReceivedValue;\r
+\r
+       for( ;; )\r
+       {\r
+               /* Wait until something arives in the queue - this will block\r
+               indefinitely provided INCLUDE_vTaskSuspend is set to 1 in\r
+               FreeRTOSConfig.h. */\r
+               xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );\r
+\r
+               /*  To get here something must have arrived, but is it the expected\r
+               value?  If it is, toggle the LED. */\r
+               if( ulReceivedValue == 100UL )\r
+               {\r
+                       vParTestToggleLED( 0 );\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vApplicationSetupTimerInterrupt( void )\r
+{\r
+       /* Enable compare match timer 0. */\r
+       MSTP( CMT0 ) = 0;\r
+       \r
+       /* Interrupt on compare match. */\r
+       CMT0.CMCR.BIT.CMIE = 1;\r
+       \r
+       /* Set the compare match value. */\r
+       CMT0.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / configTICK_RATE_HZ ) -1 ) / 8 );\r
+       \r
+       /* Divide the PCLK by 8. */\r
+       CMT0.CMCR.BIT.CKS = 0;\r
+       \r
+       /* Enable the interrupt... */\r
+       _IEN( _CMT0_CMI0 ) = 1;\r
+       \r
+       /* ...and set its priority to the application defined kernel priority. */\r
+       _IPR( _CMT0_CMI0 ) = configKERNEL_INTERRUPT_PRIORITY;\r
+       \r
+       /* Start the timer. */\r
+       CMT.CMSTR0.BIT.STR0 = 1;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained by the comments above its prototype at the top\r
+of this file. */\r
+void vApplicationMallocFailedHook( void )\r
+{\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained by the comments above its prototype at the top\r
+of this file. */\r
+void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )\r
+{\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained by the comments above its prototype at the top\r
+of this file. */\r
+void vApplicationIdleHook( void )\r
+{\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The following two functions are here just to allow all three build\r
+configurations to use the same vector table.  They are not used in this\r
+demo, but linker errors will result if they are not defined.  They can\r
+be ignored. */\r
+void vT0_1InterruptHandler( void ) {}\r
+void vT2_3InterruptHandler( void ) {}
\ No newline at end of file
diff --git a/Demo/RX600_RX62N-MDK_IAR/main-full.c b/Demo/RX600_RX62N-MDK_IAR/main-full.c
new file mode 100644 (file)
index 0000000..8d97c07
--- /dev/null
@@ -0,0 +1,490 @@
+/*\r
+    FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public\r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it\r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+/*\r
+ * This project includes a lot of tasks and tests and is therefore complex.\r
+ * If you would prefer a much simpler project to get started with then select\r
+ * the 'Blinky' build configuration within the HEW IDE.\r
+ *\r
+ * Creates all the demo application tasks, then starts the scheduler.  The web\r
+ * documentation provides more details of the standard demo application tasks,\r
+ * which provide no particular functionality but do provide a good example of\r
+ * how to use the FreeRTOS API.  The tasks defined in flop.c are included in the\r
+ * set of standard demo tasks to ensure the floating point unit gets some\r
+ * exercise.\r
+ *\r
+ * In addition to the standard demo tasks, the following tasks and tests are\r
+ * defined and/or created within this file:\r
+ *\r
+ * "Reg test" tasks - These fill the registers with known values, then check\r
+ * that each register still contains its expected value.  Each task uses\r
+ * different values.  The tasks run with very low priority so get preempted\r
+ * very frequently.  A check variable is incremented on each iteration of the\r
+ * test loop.  A register containing an unexpected value is indicative of an\r
+ * error in the context switching mechanism and will result in a branch to a\r
+ * null loop - which in turn will prevent the check variable from incrementing\r
+ * any further and allow the check task (described below) to determine that an\r
+ * error has occurred.  The nature of the reg test tasks necessitates that they\r
+ * are written in assembly code.\r
+ *\r
+ * "Check" task - This only executes every five seconds but has a high priority\r
+ * to ensure it gets processor time.  Its main function is to check that all the\r
+ * standard demo tasks are still operational.  While no errors have been\r
+ * discovered the check task will toggle LED 5 every 5 seconds - the toggle\r
+ * rate increasing to 200ms being a visual indication that at least one task has\r
+ * reported unexpected behaviour.\r
+ *\r
+ * "High frequency timer test" - A high frequency periodic interrupt is\r
+ * generated using a timer - the interrupt is assigned a priority above\r
+ * configMAX_SYSCALL_INTERRUPT_PRIORITY so should not be effected by anything\r
+ * the kernel is doing.  The interrupt service routine measures the number of\r
+ * counts a separate timer performs between each interrupt to determine the\r
+ * jitter in the interrupt timing.\r
+ *\r
+ * *NOTE 1* If LED5 is toggling every 5 seconds then all the demo application\r
+ * tasks are executing as expected and no errors have been reported in any\r
+ * tasks.  The toggle rate increasing to 200ms indicates that at least one task\r
+ * has reported unexpected behaviour.\r
+ *\r
+ * *NOTE 2* vApplicationSetupTimerInterrupt() is called by the kernel to let\r
+ * the application set up a timer to generate the tick interrupt.  In this\r
+ * example a compare match timer is used for this purpose.\r
+ *\r
+ * *NOTE 3* The CPU must be in Supervisor mode when the scheduler is started.\r
+ * The PowerON_Reset_PC() supplied in resetprg.c with this demo has\r
+ * Change_PSW_PM_to_UserMode() commented out to ensure this is the case.\r
+ *\r
+ * *NOTE 4* The IntQueue common demo tasks test interrupt nesting and make use\r
+ * of all the 8bit timers (as two cascaded 16bit units).\r
+*/\r
+\r
+/* Standard includes. */\r
+#include "string.h"\r
+\r
+/* Hardware specific includes. */\r
+#include <iorx62n.h>\r
+\r
+/* Kernel includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Standard demo includes. */\r
+#include "partest.h"\r
+#include "flash.h"\r
+#include "IntQueue.h"\r
+#include "BlockQ.h"\r
+#include "death.h"\r
+#include "integer.h"\r
+#include "blocktim.h"\r
+#include "semtest.h"\r
+#include "PollQ.h"\r
+#include "GenQTest.h"\r
+#include "QPeek.h"\r
+#include "recmutex.h"\r
+#include "flop.h"\r
+\r
+/* Values that are passed into the reg test tasks using the task parameter.  The\r
+tasks check that the values are passed in correctly. */\r
+#define mainREG_TEST_1_PARAMETER       ( 0x12121212UL )\r
+#define mainREG_TEST_2_PARAMETER       ( 0x12345678UL )\r
+\r
+/* Priorities at which the tasks are created. */\r
+#define mainCHECK_TASK_PRIORITY                ( configMAX_PRIORITIES - 1 )\r
+#define mainQUEUE_POLL_PRIORITY                ( tskIDLE_PRIORITY + 1 )\r
+#define mainSEM_TEST_PRIORITY          ( tskIDLE_PRIORITY + 1 )\r
+#define mainBLOCK_Q_PRIORITY           ( tskIDLE_PRIORITY + 2 )\r
+#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )\r
+#define mainFLASH_TASK_PRIORITY                ( tskIDLE_PRIORITY + 1 )\r
+#define mainuIP_TASK_PRIORITY          ( tskIDLE_PRIORITY + 2 )\r
+#define mainINTEGER_TASK_PRIORITY   ( tskIDLE_PRIORITY )\r
+#define mainGEN_QUEUE_TASK_PRIORITY    ( tskIDLE_PRIORITY )\r
+#define mainFLOP_TASK_PRIORITY         ( tskIDLE_PRIORITY )\r
+\r
+/* The LED toggled by the check task. */\r
+#define mainCHECK_LED                          ( 5 )\r
+\r
+/* The rate at which mainCHECK_LED will toggle when all the tasks are running\r
+without error.  Controlled by the check task as described at the top of this\r
+file. */\r
+#define mainNO_ERROR_CYCLE_TIME                ( 5000 / portTICK_RATE_MS )\r
+\r
+/* The rate at which mainCHECK_LED will toggle when an error has been reported\r
+by at least one task.  Controlled by the check task as described at the top of\r
+this file. */\r
+#define mainERROR_CYCLE_TIME           ( 200 / portTICK_RATE_MS )\r
+\r
+/* The period of the peripheral clock in nano seconds.  This is used to calculate\r
+the jitter time in nano seconds as part of the high frequency timer test.  The\r
+clock driving the timer is divided by 8. */\r
+#define mainNS_PER_CLOCK                       ( ( unsigned long ) ( ( 1.0 /  ( ( double ) configPERIPHERAL_CLOCK_HZ ) / 8.0 ) * 1000000000.0 ) )\r
+\r
+/*\r
+ * vApplicationMallocFailedHook() will only be called if\r
+ * configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook\r
+ * function that will execute if a call to pvPortMalloc() fails.\r
+ * pvPortMalloc() is called internally by the kernel whenever a task, queue or\r
+ * semaphore is created.  It is also called by various parts of the demo\r
+ * application.\r
+ */\r
+void vApplicationMallocFailedHook( void );\r
+\r
+/*\r
+ * vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set to 1\r
+ * in FreeRTOSConfig.h.  It is a hook function that is called on each iteration\r
+ * of the idle task.  It is essential that code added to this hook function\r
+ * never attempts to block in any way (for example, call xQueueReceive() with\r
+ * a block time specified).  If the application makes use of the vTaskDelete()\r
+ * API function (as this demo application does) then it is also important that\r
+ * vApplicationIdleHook() is permitted to return to its calling function because\r
+ * it is the responsibility of the idle task to clean up memory allocated by the\r
+ * kernel to any task that has since been deleted.\r
+ */\r
+void vApplicationIdleHook( void );\r
+\r
+/*\r
+ * vApplicationStackOverflowHook() will only be called if\r
+ * configCHECK_FOR_STACK_OVERFLOW is set to a non-zero value.  The handle and\r
+ * name of the offending task should be passed in the function parameters, but\r
+ * it is possible that the stack overflow will have corrupted these - in which\r
+ * case pxCurrentTCB can be inspected to find the same information.\r
+ */\r
+void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName );\r
+\r
+/*\r
+ * The reg test tasks as described at the top of this file.\r
+ */\r
+static void prvRegTest1Task( void *pvParameters );\r
+static void prvRegTest2Task( void *pvParameters );\r
+\r
+/*\r
+ * The actual implementation of the reg test functionality, which, because of\r
+ * the direct register access, have to be in assembly.\r
+ */\r
+extern void prvRegTest1Implementation( void );\r
+extern void prvRegTest2Implementation( void );\r
+\r
+\r
+/*\r
+ * The check task as described at the top of this file.\r
+ */\r
+static void prvCheckTask( void *pvParameters );\r
+\r
+/* Variables that are incremented on each iteration of the reg test tasks -\r
+provided the tasks have not reported any errors.  The check task inspects these\r
+variables to ensure they are still incrementing as expected.  If a variable\r
+stops incrementing then it is likely that its associate task has stalled. */\r
+unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main(void)\r
+{\r
+extern void HardwareSetup( void );\r
+\r
+       /* Renesas provided CPU configuration routine.  The clocks are configured in\r
+       here. */\r
+       //_RB_reSetup();\r
+\r
+       /* Turn all LEDs off. */\r
+       vParTestInitialise();\r
+\r
+       /* Start the reg test tasks which test the context switching mechanism. */\r
+       xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );\r
+       xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );\r
+\r
+       /* Start the check task as described at the top of this file. */\r
+       xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE * 3, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+\r
+       /* Create the standard demo tasks. */\r
+       vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
+       vCreateBlockTimeTasks();\r
+       vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
+       vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );\r
+       vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY );\r
+       vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );\r
+       vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY );\r
+       vStartQueuePeekTasks();\r
+       vStartRecursiveMutexTasks();\r
+       vStartInterruptQueueTasks();\r
+       vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
+\r
+       /* The suicide tasks must be created last as they need to know how many\r
+       tasks were running prior to their creation in order to ascertain whether\r
+       or not the correct/expected number of tasks are running at any given time. */\r
+       vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );\r
+\r
+       /* Start the tasks running. */\r
+       vTaskStartScheduler();\r
+       \r
+       /* If all is well we will never reach here as the scheduler will now be\r
+       running.  If we do reach here then it is likely that there was insufficient\r
+       heap available for the idle task to be created. */\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCheckTask( void *pvParameters )\r
+{\r
+static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;\r
+portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;\r
+extern void vSetupHighFrequencyTimer( void );\r
+extern volatile unsigned short usMaxJitter;\r
+//volatile unsigned long ulActualJitter = 0;\r
+//static char cErrorText[ 100 ];\r
+\r
+       /* If this is being executed then the kernel has been started.  Start the high\r
+       frequency timer test as described at the top of this file.  This is only\r
+       included in the optimised build configuration - otherwise it takes up too much\r
+       CPU time. */\r
+       #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST\r
+               vSetupHighFrequencyTimer();\r
+       #endif\r
+\r
+       /* Initialise xNextWakeTime - this only needs to be done once. */\r
+       xNextWakeTime = xTaskGetTickCount();\r
+\r
+       for( ;; )\r
+       {\r
+               /* Place this task in the blocked state until it is time to run again. */\r
+               vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );\r
+\r
+               /* Check the standard demo tasks are running without error. */\r
+               if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
+               {\r
+                       /* Increase the rate at which this task cycles, which will increase the\r
+                       rate at which mainCHECK_LED flashes to give visual feedback that an error\r
+                       has occurred. */\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: GenQueue" );\r
+               }\r
+               else if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: QueuePeek" );\r
+               }\r
+               else if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: BlockQueue" );\r
+               }\r
+               else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: BlockTime" );\r
+               }\r
+           else if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
+           {\r
+               xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: SemTest" );\r
+           }\r
+           else if( xArePollingQueuesStillRunning() != pdTRUE )\r
+           {\r
+               xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: PollQueue" );\r
+           }\r
+           else if( xIsCreateTaskStillRunning() != pdTRUE )\r
+           {\r
+               xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: Death" );\r
+           }\r
+           else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
+           {\r
+               xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: IntMath" );\r
+           }\r
+           else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
+           {\r
+               xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: RecMutex" );\r
+           }\r
+               else if( xAreIntQueueTasksStillRunning() != pdPASS )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: IntQueue" );\r
+               }\r
+               else if( xAreMathsTaskStillRunning() != pdPASS )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: Flop" );\r
+               }\r
+\r
+               /* Check the reg test tasks are still cycling.  They will stop incrementing\r
+               their loop counters if they encounter an error. */\r
+               if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: RegTest1" );\r
+               }\r
+\r
+               if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+//                     strcpy( cErrorText, "Error: RegTest2" );\r
+               }\r
+               \r
+               ulLastRegTest1CycleCount = ulRegTest1CycleCount;\r
+               ulLastRegTest2CycleCount = ulRegTest2CycleCount;\r
+               \r
+               /* Toggle the check LED to give an indication of the system status.  If\r
+               the LED toggles every 5 seconds then everything is ok.  A faster toggle\r
+               indicates an error. */\r
+               vParTestToggleLED( mainCHECK_LED );\r
+               \r
+               /* Calculate the maximum jitter experienced by the high frequency timer\r
+               test and print it out.  It is ok to use printf without worrying about\r
+               mutual exclusion as it is not used anywhere else in this demo. */\r
+               //sprintf( cTempBuf, "%s [%fns]\n", "Max Jitter = ", ( ( float ) usMaxJitter ) * mainNS_PER_CLOCK );\r
+               //ulActualJitter = ( ( unsigned long ) usMaxJitter ) * mainNS_PER_CLOCK;\r
+               \r
+               if( xCycleFrequency == mainERROR_CYCLE_TIME )\r
+               {\r
+                       /* Just for break point. */\r
+                       portNOP();\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The RX port uses this callback function to configure its tick interrupt.\r
+This allows the application to choose the tick interrupt source. */\r
+void vApplicationSetupTimerInterrupt( void )\r
+{\r
+       /* Enable compare match timer 0. */\r
+       MSTP( CMT0 ) = 0;\r
+       \r
+       /* Interrupt on compare match. */\r
+       CMT0.CMCR.BIT.CMIE = 1;\r
+       \r
+       /* Set the compare match value. */\r
+       CMT0.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / configTICK_RATE_HZ ) -1 ) / 8 );\r
+       \r
+       /* Divide the PCLK by 8. */\r
+       CMT0.CMCR.BIT.CKS = 0;\r
+       \r
+       /* Enable the interrupt... */\r
+       _IEN( _CMT0_CMI0 ) = 1;\r
+       \r
+       /* ...and set its priority to the application defined kernel priority. */\r
+       _IPR( _CMT0_CMI0 ) = configKERNEL_INTERRUPT_PRIORITY;\r
+       \r
+       /* Start the timer. */\r
+       CMT.CMSTR0.BIT.STR0 = 1;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained by the comments above its prototype at the top\r
+of this file. */\r
+void vApplicationMallocFailedHook( void )\r
+{\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained by the comments above its prototype at the top\r
+of this file. */\r
+void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )\r
+{\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained by the comments above its prototype at the top\r
+of this file. */\r
+void vApplicationIdleHook( void )\r
+{\r
+static volatile unsigned long ulIdleLoopCount = 0UL;\r
+\r
+       ulIdleLoopCount++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained in the comments at the top of this file. */\r
+static void prvRegTest1Task( void *pvParameters )\r
+{\r
+       if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_1_PARAMETER )\r
+       {\r
+               /* The parameter did not contain the expected value. */\r
+               for( ;; )\r
+               {\r
+                       /* Stop the tick interrupt so its obvious something has gone wrong. */\r
+                       taskDISABLE_INTERRUPTS();\r
+               }\r
+       }\r
+       \r
+       /* This is an asm function that never returns. */\r
+       prvRegTest1Implementation();            \r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This function is explained in the comments at the top of this file. */\r
+static void prvRegTest2Task( void *pvParameters )\r
+{\r
+       if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_2_PARAMETER )\r
+       {\r
+               /* The parameter did not contain the expected value. */\r
+               for( ;; )\r
+               {\r
+                       /* Stop the tick interrupt so its obvious something has gone wrong. */\r
+                       taskDISABLE_INTERRUPTS();\r
+               }\r
+       }\r
+\r
+       /* This is an asm function that never returns. */\r
+       prvRegTest2Implementation();\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+\r
+\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.cspy.bat b/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.cspy.bat
new file mode 100644 (file)
index 0000000..19c2679
--- /dev/null
@@ -0,0 +1,33 @@
+@REM This bat file has been generated by the IAR Embeddded Workbench\r
+@REM C-SPY interactive debugger,as an aid to preparing a command\r
+@REM line for running the cspybat command line utility with the\r
+@REM appropriate settings.\r
+@REM\r
+@REM After making some adjustments to this file, you can launch cspybat\r
+@REM by typing the name of this file followed by the name of the debug\r
+@REM file (usually an ubrof file). Note that this file is generated\r
+@REM every time a new debug session is initialized, so you may want to\r
+@REM move or rename the file before making changes.\r
+@REM\r
+@REM Note: some command line arguments cannot be properly generated\r
+@REM by this process. Specifically, the plugin which is responsible\r
+@REM for the Terminal I/O window (and other C runtime functionality)\r
+@REM comes in a special version for cspybat, and the name of that\r
+@REM plugin dll is not known when generating this file. It resides in\r
+@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or\r
+@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding\r
+@REM tool chain. Replace the '<libsupport_plugin>' parameter\r
+@REM below with the appropriate file name. Other plugins loaded by\r
+@REM C-SPY are usually not needed by, or will not work in, cspybat\r
+@REM but they are listed at the end of this file for reference.\r
+\r
+\r
+"C:\devtools\IAR Systems\Embedded Workbench 6.0\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.0\rx\bin\rxproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.0\rx\bin\rxemue20.dll"  %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.0\rx\bin\<libsupport_plugin>" --backend -B "--core" "RX600" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.0\rx\config\debugger\ior5f562n8.ddf" "--double" "32" "--endian" "l" "--int" "32" "-d" "emue20" "--emu" "e1e20" "--drv_communication" "USB" "--verify_download" "all" \r
+\r
+\r
+@REM Loaded plugins:\r
+@REM    rxLibSupport.dll\r
+@REM    C:\devtools\IAR Systems\Embedded Workbench 6.0\common\plugins\CodeCoverage\CodeCoverage.dll\r
+@REM    C:\devtools\IAR Systems\Embedded Workbench 6.0\common\plugins\Profiling\Profiling.dll\r
+@REM    C:\devtools\IAR Systems\Embedded Workbench 6.0\common\plugins\stack\stack.dll\r
+@REM    C:\devtools\IAR Systems\Embedded Workbench 6.0\common\plugins\SymList\SymList.dll\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.dbgdt b/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.dbgdt
new file mode 100644 (file)
index 0000000..6841b9f
--- /dev/null
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="iso-8859-1"?>\r
+\r
+<Project>\r
+  <Desktop>\r
+    <Static>\r
+      <Debug-Log>\r
+        \r
+        \r
+      <ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log>\r
+      <Build>\r
+        \r
+        \r
+        \r
+        \r
+      <ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build>\r
+      <Workspace>\r
+        <ColumnWidths>\r
+          \r
+          \r
+          \r
+          \r
+        <Column0>124</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
+      </Workspace>\r
+      <Disassembly>\r
+        \r
+        \r
+        \r
+      <MixedMode>1</MixedMode><CodeCovShow>0</CodeCovShow><InstrProfShow>0</InstrProfShow></Disassembly>\r
+    <Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><Watch><Format><struct_types/><watch_formats/></Format><Column0>209</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Watch></Static>\r
+    <Windows>\r
+      \r
+      \r
+      \r
+    <Wnd0>\r
+        <Tabs>\r
+          <Tab>\r
+            <Identity>TabID-9252-3823</Identity>\r
+            <TabName>Debug Log</TabName>\r
+            <Factory>Debug-Log</Factory>\r
+            <Session/>\r
+          </Tab>\r
+          <Tab>\r
+            <Identity>TabID-8729-3833</Identity>\r
+            <TabName>Build</TabName>\r
+            <Factory>Build</Factory>\r
+            <Session/>\r
+          </Tab>\r
+        </Tabs>\r
+        \r
+      <SelectedTab>0</SelectedTab></Wnd0><Wnd1>\r
+        <Tabs>\r
+          <Tab>\r
+            <Identity>TabID-20000-3827</Identity>\r
+            <TabName>Workspace</TabName>\r
+            <Factory>Workspace</Factory>\r
+            <Session>\r
+              \r
+            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode></NodeDict></Session>\r
+          </Tab>\r
+        </Tabs>\r
+        \r
+      <SelectedTab>0</SelectedTab></Wnd1><Wnd2>\r
+        <Tabs>\r
+          <Tab>\r
+            <Identity>TabID-30749-3830</Identity>\r
+            <TabName>Disassembly</TabName>\r
+            <Factory>Disassembly</Factory>\r
+            <Session/>\r
+          </Tab>\r
+        </Tabs>\r
+        \r
+      <SelectedTab>0</SelectedTab></Wnd2><Wnd7><Tabs><Tab><Identity>TabID-2881-13136</Identity><TabName>Watch</TabName><Factory>Watch</Factory><Session><Expressions><Expression><Expression>pxCurrentTCB</Expression></Expression></Expressions><TabId>0</TabId><Column0>209</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd7></Windows>\r
+    <Editor>\r
+      \r
+      \r
+      \r
+      \r
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main-full.c</Filename><XPos>0</XPos><YPos>277</YPos><SelStart>13234</SelStart><SelEnd>13234</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>646</YPos><SelStart>25229</SelStart><SelEnd>25229</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+    <Positions>\r
+      \r
+      \r
+      \r
+      \r
+      \r
+    <Top><Row0><Sizes><Toolbar-00a2ab38><key>iaridepm.enu1</key></Toolbar-00a2ab38><Toolbar-0332f480><key>debuggergui.enu1</key></Toolbar-0332f480></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>679</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>693483</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>679</Bottom><Right>481</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>287500</sizeVertCX><sizeVertCY>693483</sizeVertCY></Rect></Wnd2></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>259</Bottom><Right>909</Right><x>-2</x><y>-2</y><xscreen>911</xscreen><yscreen>261</yscreen><sizeHorzCX>542262</sizeHorzCX><sizeHorzCY>265784</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd0><Wnd7><Rect><Top>0</Top><Left>0</Left><Bottom>0</Bottom><Right>0</Right><x>907</x><y>-2</y><xscreen>775</xscreen><yscreen>261</yscreen><sizeHorzCX>461310</sizeHorzCX><sizeHorzCY>265784</sizeHorzCY><sizeVertCX>356548</sizeVertCX><sizeVertCY>238289</sizeVertCY></Rect></Wnd7></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+  </Desktop>\r
+</Project>\r
+\r
+\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.dni b/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.dni
new file mode 100644 (file)
index 0000000..508c9a7
--- /dev/null
@@ -0,0 +1,55 @@
+[E20]\r
+TimeConnected=1283090922\r
+ComuniDllSave=72941568\r
+FfwnsdDllSave=303235072\r
+ChipName=R5F562N8\r
+CpuMode=0\r
+InputClock=12.500000\r
+WorkRamStart=12288\r
+JtagClock=10\r
+DebugFlags=0,0\r
+EmulatorMode=0\r
+NeedInit=1\r
+[DebugChecksum]\r
+Checksum=2002614687\r
+[DisAssemblyWindow]\r
+NumStates=_ 1\r
+State 1=_ 1\r
+[InstructionProfiling]\r
+Enabled=_ 0\r
+[CodeCoverage]\r
+Enabled=_ 0\r
+[Profiling]\r
+Enabled=0\r
+[StackPlugin]\r
+Enabled=1\r
+OverflowWarningsEnabled=1\r
+WarningThreshold=90\r
+SpWarningsEnabled=0\r
+WarnHow=0\r
+UseTrigger=1\r
+TriggerName=main\r
+LimitSize=0\r
+ByteLimit=50\r
+[Log file]\r
+LoggingEnabled=_ 0\r
+LogFile=_ ""\r
+Category=_ 0\r
+[TermIOLog]\r
+LoggingEnabled=_ 0\r
+LogFile=_ ""\r
+[DriverProfiling]\r
+Enabled=0\r
+Source=2\r
+Graph=0\r
+[Breakpoints]\r
+Count=0\r
+[Monitor Execution]\r
+Leave target running=0\r
+Release target=0\r
+[Aliases]\r
+Count=0\r
+SuppressDialog=0\r
+[TraceHelper]\r
+Enabled=0\r
+ShowSource=1\r
diff --git a/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.wsdt b/Demo/RX600_RX62N-MDK_IAR/settings/RTOSDemo.wsdt
new file mode 100644 (file)
index 0000000..cc64e25
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="iso-8859-1"?>\r
+\r
+<Workspace>\r
+  <ConfigDictionary>\r
+    \r
+  <CurrentConfigs><Project>RTOSDemo/Debug</Project></CurrentConfigs></ConfigDictionary>\r
+  <Desktop>\r
+    <Static>\r
+      <Workspace>\r
+        <ColumnWidths>\r
+          \r
+          \r
+          \r
+          \r
+        <Column0>151</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
+      </Workspace>\r
+      <Build>\r
+        \r
+        \r
+        \r
+        \r
+      <ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build>\r
+      <TerminalIO/>\r
+    <Debug-Log><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>1624</ColumnWidth1></Debug-Log></Static>\r
+    <Windows>\r
+      \r
+      \r
+    <Wnd0>\r
+        <Tabs>\r
+          <Tab>\r
+            <Identity>TabID-10758-3386</Identity>\r
+            <TabName>Workspace</TabName>\r
+            <Factory>Workspace</Factory>\r
+            <Session>\r
+              \r
+            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Common Demo Files</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS Source</ExpandedNode><ExpandedNode>RTOSDemo/FreeRTOS Source/Portable Layer</ExpandedNode></NodeDict></Session>\r
+          </Tab>\r
+        </Tabs>\r
+        \r
+      <SelectedTab>0</SelectedTab></Wnd0><Wnd1>\r
+        <Tabs>\r
+          <Tab>\r
+            <Identity>TabID-16801-3477</Identity>\r
+            <TabName>Build</TabName>\r
+            <Factory>Build</Factory>\r
+            <Session/>\r
+          </Tab>\r
+        <Tab><Identity>TabID-414-15843</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory></Tab><Tab><Identity>TabID-3320-15993</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs>\r
+        \r
+      <SelectedTab>0</SelectedTab></Wnd1></Windows>\r
+    <Editor>\r
+      \r
+      \r
+      \r
+      \r
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main-full.c</Filename><XPos>0</XPos><YPos>277</YPos><SelStart>13234</SelStart><SelEnd>13234</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>646</YPos><SelStart>25229</SelStart><SelEnd>25229</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+    <Positions>\r
+      \r
+      \r
+      \r
+      \r
+      \r
+    <Top><Row0><Sizes><Toolbar-00a2ab38><key>iaridepm.enu1</key></Toolbar-00a2ab38></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>547</Bottom><Right>241</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>144643</sizeVertCX><sizeVertCY>559063</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>391</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>393</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>400204</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+  </Desktop>\r
+</Workspace>\r
+\r
+\r