]> git.sur5r.net Git - freertos/commitdiff
Lots of work on the RX200 demo. Blinky and Full/Debug build configurations are now...
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sat, 17 Sep 2011 16:41:46 +0000 (16:41 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sat, 17 Sep 2011 16:41:46 +0000 (16:41 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1602 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

15 files changed:
Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws
Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c [new file with mode: 0644]
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h [new file with mode: 0644]
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c
Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c [deleted file]

index a21eccd3c2aa914e8cabd9edd7aaa2dbb616ff8a..defac9639a0ca37c586dd5caf5563ce77d876935 100644 (file)
@@ -38,7 +38,7 @@
 "2" "Default3" "1" \r
 "3" "Default4" "1" \r
 [OPTIONS_DEBUG_TAB]\r
-0 1 0 0 0 \r
+0 1 1 0 0 \r
 [VCS]\r
 "" "" "" 0 \r
 [VCS_PROJECT]\r
index 11ae0bb987d21258719cf7a28b850194ea4eb092..dd2a67ae8881d832e86444214b42a1a394314f38 100644 (file)
@@ -7,15 +7,11 @@
 [GENERAL_DATA]\r
 [BREAKPOINTS]\r
 [OPEN_WORKSPACE_FILES]\r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" \r
 [WORKSPACE_FILE_STATES]\r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" 0 0 1114 363 0 0 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" -4 -23 1302 566 1 3 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 154 154 1118 363 0 1 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" 176 176 1118 363 0 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 154 154 1096 423 0 1 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" -4 -23 1302 648 1 0 \r
 [LOADED_PROJECTS]\r
 "RTOSDemo" \r
 [END]\r
index ec6c4e6b517487a525ef5e708d12f52f5961d0ff..b2e2cf4ec42d969c8255f0611884ef3264d91adf 100644 (file)
Binary files a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp and b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp differ
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
new file mode 100644 (file)
index 0000000..a1e7c82
--- /dev/null
@@ -0,0 +1,417 @@
+/*\r
+    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+       \r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
+     *    Complete, revised, and edited pdf reference manuals are also       *\r
+     *    available.                                                         *\r
+     *                                                                       *\r
+     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
+     *    ensuring you get running as quickly as possible and with an        *\r
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
+     *    the FreeRTOS project to continue with its mission of providing     *\r
+     *    professional grade, cross platform, de facto standard solutions    *\r
+     *    for microcontrollers - completely free of charge!                  *\r
+     *                                                                       *\r
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
+     *                                                                       *\r
+     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
+     *                                                                       *\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 modification to the GPL is included to allow you to\r
+    distribute a combined work that includes FreeRTOS without being obliged to\r
+    provide the source code for proprietary components outside of the FreeRTOS\r
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+    or 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
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+#include "semphr.h"\r
+\r
+/* Hardware specifics. */\r
+#include "iodefine.h"\r
+#include "lcd.h"\r
+\r
+/* States used by the LCD tasks. */\r
+#define        lcdRIGHT_TO_LEFT        0U\r
+#define        lcdLEFT_TO_RIGHT        1U\r
+#define        lcdRUNNING                      0U\r
+\r
+/* Characters on each line. */\r
+#define lcdSTRING_LEN          8 \r
+\r
+/* Commands sent from the IRQ to the task controlling the second line of the\r
+display. */\r
+#define lcdSHIFT_BACK_COMMAND          0x01U\r
+#define lcdSTART_STOP_COMMAND          0x02U\r
+#define lcdSHIFT_FORWARD_COMMAND       0x03U\r
+\r
+/* The length of the queue used to send commands from the ISRs. */\r
+#define lcdCOMMAND_QUEUE_LENGTH                32U\r
+\r
+/* Defines the minimum time that must pass between consecutive button presses\r
+to accept a button press as a unique press rather than just a bounce. */\r
+#define lcdMIN_TIME_BETWEEN_INTERRUPTS_MS ( 125UL / portTICK_RATE_MS )\r
+\r
+/* Button interrupt handlers. */\r
+#pragma interrupt (prvIRQ1_Handler(vect=65))\r
+static void prvIRQ1_Handler( void );\r
+\r
+#pragma interrupt (prvIRQ3_Handler(vect=67))\r
+static void prvIRQ3_Handler( void );\r
+\r
+#pragma interrupt (prvIRQ4_Handler(vect=68))\r
+static void prvIRQ4_Handler( void );\r
+\r
+/* \r
+ * Setup the IO needed for the buttons to generate interrupts. \r
+ */\r
+static void prvSetupButtonIOAndInterrupts( void );\r
+\r
+/*\r
+ * A task that simply scrolls a string from left to right, then back from the\r
+ * right to the left.  This is done on the first line of the display.\r
+ */\r
+static void prvLCDTaskLine1( void *pvParameters );\r
+\r
+/*\r
+ * If no buttons are pushed, then this task acts as per prvLCDTaskLine1(), but\r
+ * using the second line of the display.\r
+ *\r
+ * Using the buttons, it is possible to start and stop the scrolling of the \r
+ * text.  Once the scrolling has been stopped, other buttons can be used to\r
+ * manually scroll the text either left or right.\r
+ */ \r
+static void prvLCDTaskLine2( void *pvParameters );\r
+\r
+/*\r
+ * Looks at the direction the string is currently being scrolled in, and moves\r
+ * the index into the portion of the string that can be seen on the display\r
+ * either forward or backward as appropriate. \r
+ */\r
+static prvScrollString( unsigned char *pucDirection, unsigned short *pusPosition, size_t xStringLength );\r
+\r
+/* \r
+ * Displays lcdSTRING_LEN characters starting from pcString on the line of the\r
+ * display requested by ucLine.\r
+ */\r
+static void prvDisplayNextString( unsigned char ucLine, char *pcString );\r
+\r
+/*\r
+ * Called from the IRQ interrupts, which are generated on button pushes.  Send\r
+ * ucCommand to the task on the button command queue if \r
+ * lcdMIN_TIME_BETWEEN_INTERRUPTS_MS milliseconds have passed since the button\r
+ * was last pushed (for debouncing). \r
+ */\r
+static portBASE_TYPE prvSendCommandOnDebouncedInput( portTickType *pxTimeLastInterrupt, unsigned char ucCommand );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The queue used to pass commands from the button interrupt handlers to the\r
+prvLCDTaskLine2() task. */\r
+static xQueueHandle xButtonCommandQueue = NULL;\r
+\r
+/* The mutex used to ensure only one task writes to the display at any one\r
+time. */\r
+static xSemaphoreHandle xLCDMutex = NULL;\r
+\r
+/* The string that is scrolled up and down the first line of the display. */\r
+static const char cDataString1[] = "        http://www.FreeRTOS.org        ";\r
+\r
+/* The string that is scrolled/nudged up and down the second line of the \r
+display. */\r
+static const char cDataString2[] = "........Rx210 Highlights....1.56 DMips/MHz....DSP functions....1.62V-5.5V operation....200 uA/MHz....Up to 512 kBytes Flash....up to 64 kbytes SRAM....EE Dataflash with 100k w/e....1.3 uA in Real Time Clock Mode....Powerful Motor control timer....4 x 16-bit timers....4 x 8-bit timers....Full Real Time Clock calendar with calibration and alarm functions....Up to 16 channels 1 uS 12-bit ADC, with Dual group programmable SCAN, 3 sample and holds, sample accumulate function....DMA controller....Data Transfer Controller....Up to 9 serial Channels....Up to 6 USARTs ( with Simple I2C / SPI )....USART ( with unique Frame based protocol support )....Multimaster IIC....RSPI....Temperature Sensor....Event Link Controller....Comparators....Safety features include CRC....March X....Dual watchdog Timers with window and independent oscillator....ADC self test....I/O Pin Test....Supported with E1 on chip debugger and RSK210 evaluation system....Rx210 Highlights........";\r
+\r
+/* Structures passed into the two tasks to inform them which line to use on the\r
+display, how long to delay for, and which string to use. */\r
+struct _LCD_Params xLCDLine1 = \r
+{\r
+       LCD_LINE1, 215, cDataString1    \r
+};\r
+\r
+struct _LCD_Params xLCDLine2 = \r
+{\r
+       LCD_LINE2, 350, cDataString2\r
+};\r
+\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vStartButtonAndLCDDemo( void )\r
+{\r
+       prvSetupButtonIOAndInterrupts();\r
+       InitialiseDisplay();\r
+\r
+       /* Create the mutex used to guard the LCD. */\r
+       xLCDMutex = xSemaphoreCreateMutex();\r
+       configASSERT( xLCDMutex );\r
+       \r
+       /* Create the queue used to pass commands from the IRQ interrupts to the\r
+       prvLCDTaskLine2() task. */\r
+       xButtonCommandQueue = xQueueCreate( lcdCOMMAND_QUEUE_LENGTH, sizeof( unsigned char ) );\r
+       configASSERT( xButtonCommandQueue );\r
+\r
+       /* Start the two tasks as described at the top of this file. */\r
+       xTaskCreate( prvLCDTaskLine1, "LCD1", configMINIMAL_STACK_SIZE * 3, ( void * ) &xLCDLine1, tskIDLE_PRIORITY + 1, NULL );\r
+       xTaskCreate( prvLCDTaskLine2, "LCD2", configMINIMAL_STACK_SIZE * 3, ( void * ) &xLCDLine2, tskIDLE_PRIORITY + 2, NULL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvLCDTaskLine1( void *pvParameters )\r
+{\r
+struct _LCD_Params *pxLCDParamaters = ( struct _LCD_Params * ) pvParameters;\r
+unsigned short usPosition = 0U;\r
+unsigned char ucDirection = lcdRIGHT_TO_LEFT;\r
+       \r
+       for( ;; )\r
+       {\r
+               vTaskDelay( pxLCDParamaters->Speed / portTICK_RATE_MS );                \r
+\r
+               /* Write the string. */\r
+               prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );\r
+\r
+               /* Move the string in whichever direction the scroll is currently going\r
+               in. */\r
+               prvScrollString( &ucDirection, &usPosition, strlen( pxLCDParamaters->ptr_str ) );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvLCDTaskLine2( void *pvParameters )\r
+{\r
+struct _LCD_Params *pxLCDParamaters = ( struct _LCD_Params * ) pvParameters;\r
+unsigned short usPosition = 0U;\r
+unsigned char ucDirection = lcdRIGHT_TO_LEFT, ucStatus = lcdRUNNING, ucQueueData;\r
+portTickType xDelayTicks = ( pxLCDParamaters->Speed / portTICK_RATE_MS );\r
+       \r
+       for(;;)\r
+       {\r
+               /* Wait for a message from an IRQ handler. */\r
+               if( xQueueReceive( xButtonCommandQueue, &ucQueueData, xDelayTicks ) != pdPASS )\r
+               {\r
+                       /* A message was not received before xDelayTicks ticks passed, so\r
+                       generate the next string to display and display it. */\r
+                       prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );\r
+                       \r
+                       /* Move the string in whichever direction the scroll is currently \r
+                       going in. */\r
+                       prvScrollString( &ucDirection, &usPosition, strlen( pxLCDParamaters->ptr_str ) );                       \r
+               }\r
+               else\r
+               {\r
+                       /* A command was received.  Process it. */\r
+                       switch( ucQueueData )\r
+                       {\r
+                               case lcdSTART_STOP_COMMAND :\r
+\r
+                                       /* If the LCD is running, top it.  If the LCD is stopped, start\r
+                                       it. */\r
+                                       ucStatus = !ucStatus;\r
+                                       \r
+                                       if( ucStatus == lcdRUNNING )\r
+                                       {\r
+                                               xDelayTicks = ( pxLCDParamaters->Speed / portTICK_RATE_MS );\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               xDelayTicks = portMAX_DELAY;\r
+                                       }\r
+                                       break;\r
+\r
+                                       \r
+                               case lcdSHIFT_BACK_COMMAND :\r
+\r
+                                       if( ucStatus != lcdRUNNING )\r
+                                       {\r
+                                               /* If not already at the start of the display.... */\r
+                                               if( usPosition != 0U )\r
+                                               {\r
+                                                       /* ....move the display position back by one char. */\r
+                                                       usPosition--;                                                                                           \r
+                                                       prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );\r
+                                               }\r
+                                       }\r
+                                       break;\r
+                               \r
+                               \r
+                               case lcdSHIFT_FORWARD_COMMAND :\r
+\r
+                                       if( ucStatus != lcdRUNNING )\r
+                                       {\r
+                                               /* If not already at the end of the display.... */\r
+                                               if( usPosition != ( strlen( pxLCDParamaters->ptr_str ) - ( lcdSTRING_LEN - 1 ) ) )\r
+                                               {\r
+                                                       /* ....move the display position forward by one \r
+                                                       char. */\r
+                                                       usPosition++;\r
+                                                       prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );\r
+                                               }\r
+                                       }\r
+                                       break;\r
+                       }\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void prvSetupButtonIOAndInterrupts( void )\r
+{\r
+       /* Configure SW 1-3 pin settings */\r
+       PORT3.PDR.BIT.B1 = 0;           /* Switch 1 - Port 3.1 - IRQ1 */\r
+       PORT3.PDR.BIT.B3 = 0;           /* Switch 2 - Port 3.3 - IRQ3 */\r
+       PORT3.PDR.BIT.B4 = 0;           /* Switch 3 - Port 3.4 - IRQ4 */\r
+\r
+       PORT3.PMR.BIT.B1 = 1;\r
+       PORT3.PMR.BIT.B3 = 1;\r
+       PORT3.PMR.BIT.B4 = 1;\r
+\r
+       MPC.PWPR.BIT.B0WI = 0;          /* Writing to the PFSWE bit is enabled */\r
+       MPC.PWPR.BIT.PFSWE = 1;         /* Writing to the PFS register is enabled */\r
+       MPC.P31PFS.BIT.ISEL = 1;\r
+       MPC.P33PFS.BIT.ISEL = 1;\r
+       MPC.P34PFS.BIT.ISEL = 1;\r
+\r
+       /* IRQ1 */\r
+       ICU.IER[ 0x08 ].BIT.IEN1 = 1;   \r
+       ICU.IPR[ 65 ].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+       ICU.IR[ 65 ].BIT.IR = 0;\r
+       ICU.IRQCR[ 1 ].BIT.IRQMD = 2;   /* Rising edge */\r
+\r
+       /* IRQ3 */\r
+       ICU.IER[ 0x08 ].BIT.IEN3 = 1;   \r
+       ICU.IPR[ 67 ].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+       ICU.IR[ 67 ].BIT.IR = 0;\r
+       ICU.IRQCR[ 3 ].BIT.IRQMD = 2;   /* Rising edge */\r
+\r
+       /* IRQ4 */\r
+       ICU.IER[ 0x08 ].BIT.IEN4 = 1;   \r
+       ICU.IPR[ 68 ].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+       ICU.IR[ 68 ].BIT.IR = 0;\r
+       ICU.IRQCR[ 4 ].BIT.IRQMD = 2;   /* Rising edge */\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static prvScrollString( unsigned char *pucDirection, unsigned short *pusPosition, size_t xStringLength )\r
+{\r
+       /* Check which way to scroll. */\r
+       if( *pucDirection == lcdRIGHT_TO_LEFT )\r
+       {\r
+               /* Move to the next character. */\r
+               ( *pusPosition )++;\r
+               \r
+               /* Has the end of the string been reached? */\r
+               if( ( *pusPosition ) == ( xStringLength - ( lcdSTRING_LEN - 1 ) ) )\r
+               {\r
+                       /* Switch direction. */\r
+                       *pucDirection = lcdLEFT_TO_RIGHT;\r
+                       ( *pusPosition )--;                             \r
+               }\r
+       }\r
+       else\r
+       {\r
+               /* Move (backward) to the next character. */\r
+               ( *pusPosition )--;\r
+               if( *pusPosition == 0U )\r
+               {\r
+                       /* Switch Direction. */\r
+                       *pucDirection = lcdRIGHT_TO_LEFT;                               \r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvDisplayNextString( unsigned char ucLine, char *pcString )\r
+{\r
+static char cSingleLine[ lcdSTRING_LEN + 1 ];\r
+\r
+       xSemaphoreTake( xLCDMutex, portMAX_DELAY );\r
+       strncpy( cSingleLine, pcString, lcdSTRING_LEN );\r
+       DisplayString( ucLine, cSingleLine );\r
+       xSemaphoreGive( xLCDMutex );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portBASE_TYPE prvSendCommandOnDebouncedInput( portTickType *pxTimeLastInterrupt, unsigned char ucCommand )\r
+{\r
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
+portTickType xCurrentTickCount;\r
+       \r
+       /* Check the time now for debouncing purposes. */\r
+       xCurrentTickCount = xTaskGetTickCountFromISR();\r
+       \r
+       /* Has enough time passed since the button was last push to accept it as a\r
+       unique press? */\r
+       if( ( xCurrentTickCount - *pxTimeLastInterrupt ) > lcdMIN_TIME_BETWEEN_INTERRUPTS_MS )\r
+       {\r
+               xQueueSendToBackFromISR( xButtonCommandQueue, &ucCommand, &xHigherPriorityTaskWoken );\r
+       }\r
+\r
+       /* Remember the time now, so debounce can be performed again on the next\r
+       interrupt. */   \r
+       *pxTimeLastInterrupt = xCurrentTickCount;\r
+       \r
+       return xHigherPriorityTaskWoken;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvIRQ1_Handler( void )\r
+{\r
+static portTickType xTimeLastInterrupt = 0UL;\r
+static const unsigned char ucCommand = lcdSHIFT_BACK_COMMAND;\r
+portBASE_TYPE xHigherPriorityTaskWoken;\r
+\r
+       xHigherPriorityTaskWoken = prvSendCommandOnDebouncedInput( &xTimeLastInterrupt, ucCommand );\r
+       portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvIRQ3_Handler(void)\r
+{\r
+static portTickType xTimeLastInterrupt = 0UL;\r
+static const unsigned char ucCommand = lcdSTART_STOP_COMMAND;\r
+portBASE_TYPE xHigherPriorityTaskWoken;\r
+\r
+       xHigherPriorityTaskWoken = prvSendCommandOnDebouncedInput( &xTimeLastInterrupt, ucCommand );\r
+       portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvIRQ4_Handler(void)\r
+{\r
+static portTickType xTimeLastInterrupt = 0UL;\r
+static const unsigned char ucCommand = lcdSHIFT_FORWARD_COMMAND;\r
+portBASE_TYPE xHigherPriorityTaskWoken;\r
+\r
+       xHigherPriorityTaskWoken = prvSendCommandOnDebouncedInput( &xTimeLastInterrupt, ucCommand );\r
+       portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
+}\r
+\r
index 0a6b1cba1b254b60f036c75b1cb4d4b22f50806c..f2640ca8394617bd864eab0546b7a5998485abc8 100644 (file)
@@ -72,8 +72,8 @@
 #define configUSE_PREEMPTION                   1\r
 #define configUSE_IDLE_HOOK                            0\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 configCPU_CLOCK_HZ                             ( ICLK_FREQUENCY ) /* Set in rskrx210def.h. */\r
+#define configPERIPHERAL_CLOCK_HZ              ( PCLK_FREQUENCY ) /* Set in rskrx210def.h. */\r
 #define configTICK_RATE_HZ                             ( ( portTickType ) 1000 )\r
 #define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 140 )\r
 #define configTOTAL_HEAP_SIZE                  ( ( size_t ) ( 50 * 1024 ) )\r
index eb2b476605a3af301fd606be1909a32e1b0f4fc7..daadf2d0acb0544e66c548b222ba89915718e054 100644 (file)
@@ -11,9 +11,7 @@
 [CONFIGURATIONS]\r
 "Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Blinky" \r
 "Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug" \r
-"Debug_RX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug_RX600_E1_E20_SYSTEM" \r
 "Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug_with_optimisation" \r
-"SimDebug_RX600" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\SimDebug_RX600" \r
 [BUILD_PHASES]\r
 "Renesas OptLinker" 1 \r
 "Renesas RX Assembler" 1 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "User" "C source file|Common demo tasks" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "User" "C source file|Common demo tasks" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Common demo tasks" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "User" "C source file|Renesas Files" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "User" "C source file|Renesas Files" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "User" "C source file|Renesas Files" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "User" "C source file" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "User" "C source file|FreeRTOS" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "User" "C source file|FreeRTOS|Portable layer" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "User" "C source file|FreeRTOS|Portable layer" 2 \r
 [GENERAL_DATA_SESSION_DefaultSession]\r
 [GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM]\r
 [OPTIONS_Blinky_Renesas OptLinker]\r
-"Single Shot" "0163a6546847cc10" 5 \r
+"Single Shot" "08221511d557cc10" 5 \r
 [OPTIONS_Blinky_Renesas RX Assembler]\r
-"Assembly source file" "0fe42629efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0fe42629efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 \r
-"Linkage symbol file" "0fe42629efb3cc10" 4 \r
+"Assembly source file" "07a7155f1257cc10" 4 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "07a7155f1257cc10" 4 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "07a7155f1257cc10" 4 \r
+"Linkage symbol file" "07a7155f1257cc10" 4 \r
 [OPTIONS_Blinky_Renesas RX C/C++ Compiler]\r
-"C source file" "0c9d1629efb3cc10" 2 \r
-"C++ source file" "0c9d1629efb3cc10" 3 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0c9d1629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0c9d1629efb3cc10" 2 \r
+"C source file" "07a7155f1257cc10" 2 \r
+"C++ source file" "07a7155f1257cc10" 3 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "03955e50d457cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07a7155f1257cc10" 2 \r
 [OPTIONS_Blinky_Renesas RX C/C++ Library Generator]\r
-"Single Shot" "0c9d1629efb3cc10" 1 \r
+"Single Shot" "07a7155f1257cc10" 1 \r
 [OPTIONS_Blinky_Renesas RX Configurator]\r
-"Single Shot" "0d7a61d06847cc10" 6 \r
+"Single Shot" "0aac2411d557cc10" 6 \r
 [OPTIONS_Blinky]\r
 "" 0 \r
-"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 \r
-"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1]\r
+"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]\r
+" 6 \r
+"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1]\r
 " 4 \r
-"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]\r
+"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]\r
 " 3 \r
-"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]\r
+"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]\r
 " 2 \r
-"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1]\r
+"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16] [B|SKIPDEPENDENCY|1]\r
 " 1 \r
-"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1]\r
+"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1]\r
 " 5 \r
 [EXCLUDED_FILES_Blinky]\r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" \r
 [LINKAGE_ORDER_Blinky]\r
 [GENERAL_DATA_CONFIGURATION_Blinky]\r
 [OPTIONS_Debug_Renesas OptLinker]\r
-"Single Shot" "0bff42d06847cc10" 5 \r
+"Single Shot" "08221511d557cc10" 5 \r
 [OPTIONS_Debug_Renesas RX Assembler]\r
-"Assembly source file" "0fddf529efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0fddf529efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 \r
-"Linkage symbol file" "0fddf529efb3cc10" 4 \r
+"Assembly source file" "07a7155f1257cc10" 4 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "07a7155f1257cc10" 4 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "07a7155f1257cc10" 4 \r
+"Linkage symbol file" "07a7155f1257cc10" 4 \r
 [OPTIONS_Debug_Renesas RX C/C++ Compiler]\r
-"C source file" "0c86f529efb3cc10" 2 \r
-"C++ source file" "0c86f529efb3cc10" 3 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0c86f529efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0c86f529efb3cc10" 2 \r
+"C source file" "07a7155f1257cc10" 2 \r
+"C++ source file" "07a7155f1257cc10" 3 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "03955e50d457cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07a7155f1257cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07a7155f1257cc10" 2 \r
 [OPTIONS_Debug_Renesas RX C/C++ Library Generator]\r
-"Single Shot" "0c86f529efb3cc10" 1 \r
+"Single Shot" "07a7155f1257cc10" 1 \r
 [OPTIONS_Debug_Renesas RX Configurator]\r
-"Single Shot" "0d7a61d06847cc10" 6 \r
+"Single Shot" "0aac2411d557cc10" 6 \r
 [OPTIONS_Debug]\r
 "" 0 \r
-"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 \r
-"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
+"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]\r
+" 6 \r
+"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16]\r
 " 4 \r
-"[V|VERSION|1] [S|LANG|C99] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
+"[V|VERSION|1] [S|LANG|C99] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16]\r
 " 2 \r
-"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
+"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16]\r
 " 3 \r
-"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
+"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16]\r
 " 1 \r
-"[V|VERSION|6] [S|PRELINK|SKIP] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODALL|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_RX_DESC,B_TX_DESC,B_ETHERNET_BUFFERS,B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)]\r
+"[V|VERSION|6] [S|PRELINK|SKIP] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODALL|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFF81000)|FIXEDVECT(0FFFFFFD0)]\r
 " 5 \r
 [EXCLUDED_FILES_Debug]\r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" \r
 [LINKAGE_ORDER_Debug]\r
 [GENERAL_DATA_CONFIGURATION_Debug]\r
-[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas OptLinker]\r
-"Single Shot" "0bff42d06847cc10" 5 \r
-[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Assembler]\r
-"Assembly source file" "0ab81629efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0ab81629efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 \r
-"Linkage symbol file" "0ab81629efb3cc10" 4 \r
-[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Compiler]\r
-"C source file" "07611629efb3cc10" 2 \r
-"C++ source file" "07611629efb3cc10" 3 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07611629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07611629efb3cc10" 2 \r
-[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Library Generator]\r
-"Single Shot" "07611629efb3cc10" 1 \r
-[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Configurator]\r
-"Single Shot" "0d7a61d06847cc10" 6 \r
-[OPTIONS_Debug_RX600_E1_E20_SYSTEM]\r
-"" 0 \r
-"[S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [V|VERSION|1] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|ROUND|NEAREST] [S|DBL_SIZE|4] [B|SIGNED_CHAR|0] [B|SIGNED_BITFIELD|0] [S|BIT_ORDER|RIGHT] [S|FINT_REGISTER|0] [S|BRANCH|24] [S|LANG|C] [B|RUNTIME|1] [B|CTYPE|0] [B|MATH|0] [B|MATHF|0] [B|STDARG|0] [B|STDIO|0] [B|STDLIB|0] [B|STRING|0] [B|IOS|0] [B|NEW|1] [B|COMPLEX|0] [B|CPPSTRING|0] [S|MODE|BUILD/CHANGED]" 1 \r
-"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 \r
-"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|LISTFILE|0] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 4 \r
-"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
-" 3 \r
-"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
-" 2 \r
-"[V|VERSION|6] [B|DEBUG|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).abs^"]  [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [B|OPTIMIZE|0] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|FORM|STYPE] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(1000)|PResetPRG(FFFF8000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(FFFF8100)|FIXEDVECT(FFFFFFD0)] [S|ENDIAN|LITTLE]" 5 \r
-[EXCLUDED_FILES_Debug_RX600_E1_E20_SYSTEM]\r
-[LINKAGE_ORDER_Debug_RX600_E1_E20_SYSTEM]\r
-[GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM]\r
 [OPTIONS_Debug_with_optimisation_Renesas OptLinker]\r
-"Single Shot" "0bff42d06847cc10" 5 \r
+"Single Shot" "08221511d557cc10" 5 \r
 [OPTIONS_Debug_with_optimisation_Renesas RX Assembler]\r
 "Assembly source file" "0d348e39e796cc10" 4 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0d348e39e796cc10" 4 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0b8cd057b896cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "03955e50d457cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0b8cd057b896cc10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "0297dc288847cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0b8cd057b896cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0b8cd057b896cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0b8cd057b896cc10" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 \r
 [OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Library Generator]\r
 "Single Shot" "0d348e39e796cc10" 1 \r
 [OPTIONS_Debug_with_optimisation_Renesas RX Configurator]\r
-"Single Shot" "0d7a61d06847cc10" 6 \r
+"Single Shot" "0aac2411d557cc10" 6 \r
 [OPTIONS_Debug_with_optimisation]\r
 "" 0 \r
 "[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]\r
 "[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [S|OPTIMIZEITEMS|SPEED] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*,L(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1]\r
 " 5 \r
 [EXCLUDED_FILES_Debug_with_optimisation]\r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" \r
 [LINKAGE_ORDER_Debug_with_optimisation]\r
 [GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]\r
-[OPTIONS_SimDebug_RX600_Renesas OptLinker]\r
-"Single Shot" "0bff42d06847cc10" 5 \r
-[OPTIONS_SimDebug_RX600_Renesas RX Assembler]\r
-"Assembly source file" "041a0629efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "041a0629efb3cc10" 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 \r
-"Linkage symbol file" "041a0629efb3cc10" 4 \r
-[OPTIONS_SimDebug_RX600_Renesas RX C/C++ Compiler]\r
-"C source file" "02350629efb3cc10" 2 \r
-"C++ source file" "02350629efb3cc10" 3 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "02350629efb3cc10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "02350629efb3cc10" 2 \r
-[OPTIONS_SimDebug_RX600_Renesas RX C/C++ Library Generator]\r
-"Single Shot" "01c20629efb3cc10" 1 \r
-[OPTIONS_SimDebug_RX600_Renesas RX Configurator]\r
-"Single Shot" "0d7a61d06847cc10" 6 \r
-[OPTIONS_SimDebug_RX600]\r
-"" 0 \r
-"[S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [V|VERSION|1] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|ROUND|NEAREST] [S|DBL_SIZE|4] [B|SIGNED_CHAR|0] [B|SIGNED_BITFIELD|0] [S|BIT_ORDER|RIGHT] [S|FINT_REGISTER|0] [S|BRANCH|24] [S|LANG|C] [B|RUNTIME|1] [B|CTYPE|0] [B|MATH|0] [B|MATHF|0] [B|STDARG|0] [B|STDIO|0] [B|STDLIB|0] [B|STRING|0] [B|IOS|0] [B|NEW|1] [B|COMPLEX|0] [B|CPPSTRING|0] [S|MODE|BUILD/CHANGED]" 1 \r
-"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 \r
-"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|LISTFILE|0] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 4 \r
-"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
-" 3 \r
-"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|CPU|RX600] [S|BASE|00000000=NONE]\r
-" 2 \r
-"[V|VERSION|6] [B|DEBUG|1] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).abs^"]  [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [B|OPTIMIZE|0] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|FORM|STYPE] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(1000)|PResetPRG(FFFF8000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(FFFF8100)|FIXEDVECT(FFFFFFD0)] [S|ENDIAN|LITTLE]" 5 \r
-[EXCLUDED_FILES_SimDebug_RX600]\r
-[LINKAGE_ORDER_SimDebug_RX600]\r
-[GENERAL_DATA_CONFIGURATION_SimDebug_RX600]\r
 [GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]\r
 [SESSION_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]\r
 "MEMORY_MAPPING_OPTIONS" "" \r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]\r
 [SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]\r
 "MEMORY_MAPPING_OPTIONS" "" \r
-[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]\r
-[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]\r
-"MEMORY_MAPPING_OPTIONS" "" \r
-[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX200_E1_E20_SYSTEM]\r
-[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX200_E1_E20_SYSTEM]\r
-"MEMORY_MAPPING_OPTIONS" "" \r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]\r
 [SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]\r
 "MEMORY_MAPPING_OPTIONS" "" \r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]\r
 [SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]\r
 "MEMORY_MAPPING_OPTIONS" "" \r
-[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]\r
-[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]\r
-"MEMORY_MAPPING_OPTIONS" "" \r
-[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM]\r
-[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM]\r
-"MEMORY_MAPPING_OPTIONS" "" \r
 [EXT_DEBUGGER_INFO]\r
 0 "" "" "" "" \r
 [END]\r
index 2c9b73cb71d3334629775f6bc470190c849b948d..66e4cf6162d95475fb703bfd7410e94ba85fe924 100644 (file)
Binary files a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav and b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav differ
index b08c7b4927cd550f34a8dd8e14c1d457199af618..404a9d4a19ca8e1d31171e242dfc8d2a6207b8c9 100644 (file)
@@ -8,50 +8,34 @@
 [CONFIGURATIONS]\r
 "Blinky" \r
 "Debug" \r
-"Debug_RX600_E1_E20_SYSTEM" \r
 "Debug_with_optimisation" \r
-"SimDebug_RX600" \r
 [CURRENT_CONFIGURATION]\r
-"Blinky\r
+"Debug\r
 [CURRENT_SESSION]\r
 "SessionRX200_E1_E20_SYSTEM" \r
 [GENERAL_DATA_PROJECT]\r
 "FDT_UserBootAreaFiles" "" \r
 [GENERAL_DATA_CONFIGURATION_Blinky]\r
-"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" \r
+"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" \r
 [SESSIONS_Blinky]\r
 "DefaultSession" \r
 "SessionRX200_E1_E20_SYSTEM" \r
 [GENERAL_DATA_CONFIGURATION_Debug]\r
-"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" \r
+"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" \r
 [SESSIONS_Debug]\r
 "DefaultSession" \r
 "SessionRX200_E1_E20_SYSTEM" \r
-[GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM]\r
-"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" \r
-[SESSIONS_Debug_RX600_E1_E20_SYSTEM]\r
-"DefaultSession" \r
-"SessionRX200_E1_E20_SYSTEM" \r
 [GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]\r
 "PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" \r
 [SESSIONS_Debug_with_optimisation]\r
 "DefaultSession" \r
 "SessionRX200_E1_E20_SYSTEM" \r
-[GENERAL_DATA_CONFIGURATION_SimDebug_RX600]\r
-"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" \r
-[SESSIONS_SimDebug_RX600]\r
-"DefaultSession" \r
-"SessionRX200_E1_E20_SYSTEM" \r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]\r
 [GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM]\r
 [GENERAL_DATA_SESSION_DefaultSession]\r
 [GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]\r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession]\r
-[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]\r
-[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]\r
-[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX200_E1_E20_SYSTEM]\r
 [GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX200_E1_E20_SYSTEM]\r
-[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM]\r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]\r
 [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]\r
 [END]\r
index 930111b4974de38db5bfd45fa73795b32e567c03..834ff6d075b498c89102cd4ed08fd09bbe5bf261 100644 (file)
@@ -30,39 +30,6 @@ User Includes
 #include "rskrx210def.h"\r
 #include "lcd.h"\r
 \r
-/* Kernel includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-#include "semphr.h"\r
-\r
-\r
-/**********************************************************************************\r
-Global variables\r
-***********************************************************************************/\r
-xQueueHandle SwitchQueue;\r
-xSemaphoreHandle LCD_Mutex;\r
-\r
-char datastring[]=\r
-"........Rx210 Highlights....1.56 DMips/MHz....DSP functions....1.62V-5.5V operation....200 uA/MHz....Up to 512 kBytes Flash....up to 64 kbytes SRAM....EE Dataflash with 100k w/e....1.3 uA in Real Time Clock Mode....Powerful Motor control timer....4 x 16-bit timers....4 x 8-bit timers....Full Real Time Clock calendar with calibration and alarm functions....Up to 16 channels 1 uS 12-bit ADC, with Dual group programmable SCAN, 3 sample and holds, sample accumulate function....DMA controller....Data Transfer Controller....Up to 9 serial Channels....Up to 6 USARTs ( with Simple I2C / SPI )....USART ( with unique Frame based protocol support )....Multimaster IIC....RSPI....Temperature Sensor....Event Link Controller....Comparators....Safety features include CRC....March X....Dual watchdog Timers with window and independent oscillator....ADC self test....I/O Pin Test....Supported with E1 on chip debugger and RSK210 evaluation system....Rx210 Highlights........";\r
-\r
-\r
-\r
-struct _LCD_Params Line1 = \r
-{\r
-       LCD_LINE1, 215, datastring      \r
-};\r
-\r
-struct _LCD_Params Line2 = \r
-{\r
-       LCD_LINE2, 350, datastring      \r
-};\r
-\r
-\r
-\r
-/**********************************************************************************\r
-User Program Code\r
-***********************************************************************************/\r
-\r
 /*****************************************************************************\r
 Name:                  InitDisplay \r
 Parameters:            none                            \r
@@ -250,143 +217,3 @@ End of function DisplayDelay
 ***********************************************************************************/   \r
 \r
 \r
-void prvLCDTaskLine1( void *pvParameters )\r
-{\r
-       #define         RIGHT_TO_LEFT   0\r
-       #define         LEFT_TO_RIGHT   1\r
-       \r
-       struct _LCD_Params *Local_Params = (struct _LCD_Params*)pvParameters;\r
-       \r
-       char str_lcd[9];\r
-       unsigned short pos = 0;\r
-       unsigned char Direction = RIGHT_TO_LEFT;\r
-       \r
-       for(;;)\r
-       {\r
-               vTaskDelay( Local_Params->Speed / portTICK_RATE_MS );           \r
-\r
-               strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);\r
-       \r
-               xSemaphoreTake( LCD_Mutex, portMAX_DELAY );\r
-               DisplayString(Local_Params->Line, str_lcd);\r
-               xSemaphoreGive( LCD_Mutex );\r
-               \r
-               if(Direction == RIGHT_TO_LEFT)\r
-               {\r
-                       pos++;\r
-                       if( pos == strlen(datastring) - 7)\r
-                       {\r
-                               Direction = LEFT_TO_RIGHT;\r
-                               pos--;                          \r
-                       }\r
-               }\r
-               else\r
-               {\r
-                       pos--;\r
-                       if( pos == 0 )\r
-                       {\r
-                               Direction = RIGHT_TO_LEFT;                              \r
-                       }\r
-               }                       \r
-       }\r
-}\r
-\r
-void prvLCDTaskLine2( void *pvParameters )\r
-{\r
-       #define         RIGHT_TO_LEFT   0\r
-       #define         LEFT_TO_RIGHT   1\r
-       #define         RUNNING                 0\r
-       #define         STOPPED                 1\r
-\r
-       \r
-       struct _LCD_Params *Local_Params = (struct _LCD_Params*)pvParameters;\r
-       \r
-       char str_lcd[9];\r
-       unsigned short pos = 0;\r
-       unsigned char Direction = RIGHT_TO_LEFT;\r
-       unsigned char Status = RUNNING;\r
-       \r
-       unsigned char QueueData;\r
-       portTickType Delay = ( Local_Params->Speed / portTICK_RATE_MS );\r
-       \r
-       for(;;)\r
-       {\r
-//             vTaskDelay( Local_Params->Speed / portTICK_RATE_MS );           \r
-\r
-               if( xQueueReceive (SwitchQueue, &QueueData, Delay) != pdPASS )\r
-               {\r
-                       strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);\r
-               \r
-                       xSemaphoreTake( LCD_Mutex, portMAX_DELAY );\r
-                       DisplayString(Local_Params->Line, str_lcd);\r
-                       xSemaphoreGive( LCD_Mutex );\r
-                       \r
-                       if(Direction == RIGHT_TO_LEFT)\r
-                       {\r
-                               pos++;\r
-                               if( pos == strlen(datastring) - 7)\r
-                               {\r
-                                       Direction = LEFT_TO_RIGHT;\r
-                                       pos--;                          \r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               pos--;\r
-                               if( pos == 0 )\r
-                               {\r
-                                       Direction = RIGHT_TO_LEFT;                              \r
-                               }\r
-                       }                       \r
-               }\r
-               else\r
-               {\r
-                       if(QueueData == 0x02)   // stop/start\r
-                       {\r
-                               if(Delay != portMAX_DELAY)\r
-                               {\r
-                                       Delay = portMAX_DELAY;\r
-                                       Status = STOPPED;\r
-                               }\r
-                               else\r
-                               {\r
-                                       Delay = ( Local_Params->Speed / portTICK_RATE_MS );\r
-                                       Status = RUNNING;\r
-                               }                               \r
-                       }\r
-                       \r
-                       if(QueueData == 0x01)   // RIGHT or shift back\r
-                       {\r
-                               if(Status == STOPPED)\r
-                               {\r
-                                       if(pos != 0)\r
-                                       {\r
-                                               pos--;\r
-                                                                                       \r
-                                               strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);\r
-               \r
-                                               xSemaphoreTake( LCD_Mutex, portMAX_DELAY );\r
-                                               DisplayString(Local_Params->Line, str_lcd);\r
-                                               xSemaphoreGive( LCD_Mutex );\r
-                                       }\r
-                               }\r
-                       }\r
-                       \r
-                       if(QueueData == 0x03)   // LEFT or shift forward\r
-                       {\r
-                               if(Status == STOPPED)\r
-                               {\r
-                                       if(pos != strlen(datastring) - 7)\r
-                                       {\r
-                                               pos++;\r
-                                               strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);\r
-               \r
-                                               xSemaphoreTake( LCD_Mutex, portMAX_DELAY );\r
-                                               DisplayString(Local_Params->Line, str_lcd);\r
-                                               xSemaphoreGive( LCD_Mutex );\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}
\ No newline at end of file
index ac5c078be507583de283d0f66fc6259e181dff48..b111b64a9a6049b8a25e7e25ff43c366bad4bfcb 100644 (file)
 "{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" \r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "16777216" \r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "768" \r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000000000\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "000000000000889C\r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" \r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "0000000000000000" \r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF80000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000000000\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "000000000000E130" \r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000014\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "000000000000889C\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000E788\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000004030001\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF881E1\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "000000000000DEE4\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000FFF8177C\r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000" \r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000" \r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000" \r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000000000000" \r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "1234567887650000" \r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "1234567887650000" \r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000000" \r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "000000000000DEE4\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000010" \r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000" \r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "0000000000000000\r
-"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "0000000000000000\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "00000000A5A5A5A5\r
+"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "00000000A5A5A5A5\r
 "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "25" \r
 "{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" \r
 "{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" \r
 "Help" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" \r
 "QzROM" "TOOLBAR 0" 59419 4 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" \r
 "{WK_00000001_CmdLine}ADC_Single_DTC_MTUDefaultSession" "WINDOW" 59422 0 1 "0.50" 230 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0" \r
-"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 294 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0" \r
+"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 212 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0" \r
 "{WK_00000001_DEBUGCONSOLE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "1.00" 300 0 0 350 200 17 0 "57634|57637|57633|<<separator>>|32781|32782|<<separator>>|32780|32785|32787" "0.0" \r
 "{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 936 558 9 0 "" "0.0" \r
 "{WK_00000001_IO}RTOSDemoSessionRX200_E1_E20_SYSTEM" "WINDOW" 59422 0 1 "0.33" 172 0 0 350 200 18 0 "32817|32826|32819|32820|32821" "0.0" \r
 "{WK_00000001_IO}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 1 "0.50" 172 0 0 869 657 17 0 "32817|32826|32819|32820|32821" "0.0" \r
 "{WK_00000001_MEMORY}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "1.00" 219 1452 519 1033 219 2053 0 "42202|42203|42204|42233|<<separator>>|42206|42205|42230|42229|42207|<<separator>>|42208|42209|42210|49076|42228|42227|<<separator>>|42231|42232|42234|42235|<<separator>>|42211|<<separator>>" "0.0" \r
-"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 294 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0" \r
+"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 212 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0" \r
 "{WK_00000001_REGISTERS}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 1 "1.00" 300 0 0 350 200 2065 0 "" "0.0" \r
 "{WK_00000001_STACKTRACE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.50" 277 0 0 350 200 2065 0 "" "0.0" \r
 "{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "0.50" 300 0 0 1040 307 17 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811" "0.0" \r
 "{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" \r
 "{WK_TB00000013_SYMBOL} TOOLBAR 0" \r
 "{WK_TB00000011_CPU} TOOLBAR 0" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" \r
 [TARGET_NAME]\r
 "RX E1/E20 SYSTEM" "" 0 \r
 [STATUSBAR_STATEINFO_VD1]\r
 [DEBUGGER_OPTIONS]\r
 "" \r
 [DOWNLOAD_MODULES]\r
-"$(PROJDIR)\Debug_with_optimisation\RTOSDemo.abs" 0 "Elf/Dwarf2" 0 0 1 0 \r
+"$(PROJDIR)\$(CONFIGNAME)\RTOSDemo.abs" 0 "Elf/Dwarf2" 0 0 1 0 \r
 [CONNECT_ON_GO]\r
 "FALSE" \r
 [DOWNLOAD_MODULES_AFTER_BUILD]\r
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
new file mode 100644 (file)
index 0000000..c6a4a0a
--- /dev/null
@@ -0,0 +1,60 @@
+/*\r
+    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+       \r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
+     *    Complete, revised, and edited pdf reference manuals are also       *\r
+     *    available.                                                         *\r
+     *                                                                       *\r
+     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
+     *    ensuring you get running as quickly as possible and with an        *\r
+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
+     *    the FreeRTOS project to continue with its mission of providing     *\r
+     *    professional grade, cross platform, de facto standard solutions    *\r
+     *    for microcontrollers - completely free of charge!                  *\r
+     *                                                                       *\r
+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
+     *                                                                       *\r
+     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
+     *                                                                       *\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 modification to the GPL is included to allow you to\r
+    distribute a combined work that includes FreeRTOS without being obliged to\r
+    provide the source code for proprietary components outside of the FreeRTOS\r
+    kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
+    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+    or 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 BUTTON_AND_LCD_H\r
+#define BUTTON_AND_LCD_H\r
+\r
+void vStartButtonAndLCDDemo( void );\r
+\r
+#endif\r
+\r
index 1818da4f9bc6e5c86fd6d4e213da91c421fc0f22..3544b811767b71f8613dc4298268afe8512852ba 100644 (file)
@@ -35,10 +35,6 @@ struct _LCD_Params {
        char *ptr_str;\r
 };\r
 \r
-void prvLCDTaskLine1( void *pvParameters );\r
-void prvLCDTaskLine2( void *pvParameters );\r
-\r
-\r
 /* RS Register Select pin */\r
 #define RS_PIN                 PORTJ.PODR.BIT.B1\r
 /* Display Enable pin */  \r
index 5b63f63230a2c8d6cb2aaa75e0891a95377d40dc..800c7e5d53377128db1f9f4334beeeb76e5ebd7d 100644 (file)
@@ -92,8 +92,10 @@ static void prvQueueSendTask( void *pvParameters );
 static xQueueHandle xQueue = NULL;\r
 \r
 /* This variable is not used by this simple Blinky example.  It is defined \r
-purely to allow the project to link as it is used by the full project. */\r
+purely to allow the project to link as it is used by the full build \r
+configuration. */\r
 volatile unsigned long ulHighFrequencyTickCount = 0UL;\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 void main(void)\r
@@ -120,9 +122,9 @@ extern void HardwareSetup( void );
                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
+       /* If all is well the next line of code will not be reached as the scheduler \r
+       will be running.  If the next line is reached then it is likely that there was \r
+       insufficient heap available for the idle task to be created. */\r
        for( ;; );\r
 }\r
 /*-----------------------------------------------------------*/\r
@@ -144,8 +146,10 @@ const unsigned long ulValueToSend = 100UL;
 \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
+               should always be empty here (it should always be empty because the task\r
+               removing items from the queue has a higher priority than the task adding\r
+               things to the queue). */\r
+               xQueueSend( xQueue, &ulValueToSend, 0UL );\r
        }\r
 }\r
 /*-----------------------------------------------------------*/\r
@@ -171,6 +175,11 @@ unsigned long ulReceivedValue;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
+/* A callback function named vApplicationSetupTimerInterrupt() must be defined\r
+to configure a tick interrupt source, and configTICK_VECTOR set in \r
+FreeRTOSConfig.h to install the tick interrupt handler in the correct position\r
+in the vector table.  This example uses a compare match timer.  It can be\r
+into any FreeRTOS project, provided the same compare match timer is available. */\r
 void vApplicationSetupTimerInterrupt( void )\r
 {\r
        /* Enable compare match timer 0. */\r
@@ -196,24 +205,28 @@ void vApplicationSetupTimerInterrupt( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-/* This function is explained by the comments above its prototype at the top\r
-of this file. */\r
+/* If configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h, then this\r
+function will be called if pvPortMalloc() returns NULL because it has exhausted\r
+the available FreeRTOS heap space.  See http://www.freertos.org/a00111.html. */\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
+/* If configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2 in \r
+FreeRTOSConfig.h, then this function will be called if a task overflows its \r
+stack space.  See \r
+http://www.freertos.org/Stacks-and-stack-overflow-checking.html. */\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
+/* If configUSE_IDLE_HOOK is set to 1 in FreeRTOSConfig.h, then this function\r
+will be called on each iteration of the idle task.  See \r
+http://www.freertos.org/a00016.html */\r
 void vApplicationIdleHook( void )\r
 {\r
        /* Just to prevent the variable getting optimised away. */\r
index 8c1b693d0aa35a2679e62e747cea6b5874c848f7..8522ab3b28de86b6427e96018604239a7457fd20 100644 (file)
 /* ****************************************************************************\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
+ * the 'Blinky' build configuration within the HEW IDE.  The Blinky build\r
+ * configuration uses main-blinky.c instead of main-full.c.\r
  * ****************************************************************************\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
+ * how to use the FreeRTOS API.\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
- * Webserver ("uIP") task - This serves a number of dynamically generated WEB\r
- * pages to a standard WEB browser.  The IP and MAC addresses are configured by\r
- * constants defined at the bottom of FreeRTOSConfig.h.  Use either a standard\r
- * Ethernet cable to connect through a hug, or a cross over (point to point)\r
- * cable to connect directly.  Ensure the IP address used is compatible with the\r
- * IP address of the machine running the browser - the easiest way to achieve\r
- * this is to ensure the first three octets of the IP addresses are the same.\r
+ * "Reg test" tasks - These fill the registers with known values, then \r
+ * repeatedly check that each register still contains its expected value for \r
+ * the lifetime of the tasks.  Each task uses different values.  The tasks run \r
+ * with very low priority so get preempted very frequently.  A check variable \r
+ * is incremented on each iteration of the test loop.  A register containing an \r
+ * unexpected value is indicative of an error in the context switching \r
+ * mechanism and will result in a branch to a null loop - which in turn will \r
+ * prevent the check variable from incrementing any further and allow the check \r
+ * timer (described below) to determine that an error has occurred.  The nature \r
+ * of the reg test tasks necessitates that they are written in assembly code.\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
+ * "Check Timer" and Callback Function - The check timer period is initially \r
+ * set to five seconds.  The check timer callback function checks that all the \r
+ * standard demo tasks are not only still executing, but are executing without \r
+ * reporting any errors.  If the check timer discovers that a task has either \r
+ * stalled, or reported an error, then it changes its own period from the \r
+ * initial three seconds, to just 200ms.  The check timer callback function \r
+ * also toggles LED 3 each time it is called.  This provides a visual \r
+ * indication of the system status:  If the LED toggles every five seconds, \r
+ * then no issues have been discovered.  If the LED toggles every 200ms, then \r
+ * an issue has been discovered with at least one task.\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
+ * configMAX_SYSCALL_INTERRUPT_PRIORITY, so will not be effected by anything\r
  * the kernel is doing.  The frequency and priority of the interrupt, in\r
- * combination with other standard tests executed in this demo, should result\r
+ * combination with other standard tests executed in this demo, will result\r
  * in interrupts nesting at least 3 and probably 4 deep.  This test is only\r
- * included in build configurations that have the optimiser switched on.  In\r
- * optimised builds the count of high frequency ticks is used as the time base\r
- * for the run time stats.\r
+ * included in build configurations that have the optimiser switched on.\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
+ * "Button and LCD test" - This creates two tasks.  The first simply scrolls\r
+ * a message back and forth along the top line of the LCD display.  If no\r
+ * buttons are pushed, the second also scrolls a message back and forth, but\r
+ * along the bottom line of the display.  The automatic scrolling of the second\r
+ * line of the display can be started and stopped using button SW2.  Once \r
+ * stopped it can then be manually nudged left using button SW3, and manually\r
+ * nudged right using button SW1.  Button pushes generate an interrupt, and the\r
+ * interrupt communicates with the task using a queue.\r
  *\r
- * *NOTE 2* vApplicationSetupTimerInterrupt() is called by the kernel to let\r
+ * *NOTE 1* 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
+ * *NOTE 2* 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
+ * *NOTE 3* 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
 /* Kernel includes. */\r
 #include "FreeRTOS.h"\r
 #include "task.h"\r
+#include "timers.h"\r
 #include "semphr.h"\r
 \r
 /* Standard demo includes. */\r
 #include "QPeek.h"\r
 #include "recmutex.h"\r
 \r
+/* Demo specific tasks. */\r
+#include "ButtonAndLCD.h"\r
+\r
 /* Peripheral includes. */\r
 #include "lcd.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
+/* Values that are passed into the reg test tasks using the task parameter.  \r
+The 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
-#define mainLCD_TASK_PRIORITY          ( tskIDLE_PRIORITY + 1)\r
-\r
-/* The WEB server uses string handling functions, which in turn use a bit more\r
-stack than most of the other tasks. */\r
-#define mainuIP_STACK_SIZE                     ( configMINIMAL_STACK_SIZE * 3 )\r
 \r
 /* The LED toggled by the check task. */\r
 #define mainCHECK_LED                          ( 3 )\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
+/* The period at which the check timer will expire, in ms, provided no errors\r
+have been reported by any of the standard demo tasks.  ms are converted to the\r
+equivalent in ticks using the portTICK_RATE_MS constant. */\r
+#define mainCHECK_TIMER_PERIOD_MS                      ( 5000UL / 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
+/* The period at which the check timer will expire, in ms, if an error has been\r
+reported in one of the standard demo tasks.  ms are converted to the equivalent\r
+in ticks using the portTICK_RATE_MS constant. */\r
+#define mainERROR_CHECK_TIMER_PERIOD_MS        ( 200UL / portTICK_RATE_MS )\r
+\r
+/* A block time of zero simple means "Don't Block". */\r
+#define mainDONT_BLOCK                         ( 0UL )\r
 \r
 /*\r
  * vApplicationMallocFailedHook() will only be called if\r
@@ -229,9 +226,9 @@ static void prvRegTest1Implementation( void );
 static void prvRegTest2Implementation( void );\r
 \r
 /*\r
- * The check task as described at the top of this file.\r
+ * The check timer callback function, as described at the top of this file.\r
  */\r
-static void prvCheckTask( void *pvParameters );\r
+static void prvCheckTimerCallback( xTimerHandle xTimer );\r
 \r
 \r
 /*-----------------------------------------------------------*/\r
@@ -242,20 +239,9 @@ variables to ensure they are still incrementing as expected.  If a variable
 stops incrementing then it is likely that its associate task has stalled. */\r
 unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;\r
 \r
-/* The status message that is displayed at the bottom of the "task stats" web\r
-page, which is served by the uIP task.  This will report any errors picked up\r
-by the reg test task. */\r
-const char *pcStatusMessage = "All tasks executing without error.";\r
-\r
-\r
-\r
-extern void SwitchSetup(void);\r
-extern xQueueHandle SwitchQueue;\r
-\r
-extern xSemaphoreHandle LCD_Mutex;\r
-extern struct _LCD_Params Line1;\r
-extern struct _LCD_Params Line2;\r
-\r
+/* The check timer.  This uses prvCheckTimerCallback() as its callback\r
+function. */\r
+static xTimerHandle xCheckTimer = NULL;\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -266,7 +252,6 @@ extern void HardwareSetup( void );
        /* Renesas provided CPU configuration routine.  The clocks are configured in\r
        here. */\r
        HardwareSetup();        \r
-       SwitchSetup();      \r
 \r
        /* Turn all LEDs off. */\r
        vParTestInitialise();\r
@@ -275,17 +260,8 @@ extern void HardwareSetup( void );
        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
-\r
-       /* LCD task */\r
-       LCD_Mutex = xSemaphoreCreateMutex();\r
-       xTaskCreate( prvLCDTaskLine1, "LCD1", configMINIMAL_STACK_SIZE * 3, ( void *)&Line1, mainLCD_TASK_PRIORITY, NULL );\r
-       xTaskCreate( prvLCDTaskLine2, "LCD2", configMINIMAL_STACK_SIZE * 3, ( void *)&Line2, mainLCD_TASK_PRIORITY + 1, NULL );\r
-\r
-       /* Switch Queue to handle switch presses */\r
-       SwitchQueue = xQueueCreate(32, 1);\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
+       /* The button and LCD tasks, as described at the top of this file. */\r
+       vStartButtonAndLCDDemo();\r
 \r
        /* Create the standard demo tasks. */\r
        vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
@@ -299,12 +275,26 @@ extern void HardwareSetup( void );
        vStartRecursiveMutexTasks();\r
        vStartInterruptQueueTasks();\r
 \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
+       /* Create the software timer that performs the 'check' functionality,\r
+       as described at the top of this file. */\r
+       xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */\r
+                                                               ( mainCHECK_TIMER_PERIOD_MS ),          /* The timer period, in this case 5000ms (5s). */\r
+                                                               pdTRUE,                                                         /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
+                                                               ( void * ) 0,                                           /* The ID is not used, so can be set to anything. */\r
+                                                               prvCheckTimerCallback                           /* The callback function that inspects the status of all the other tasks. */\r
+                                                         );\r
+                                                         \r
+       configASSERT( xCheckTimer );\r
+       \r
+       /* Start the check timer.  It will actually start when the scheduler is\r
+       started. */\r
+       xTimerStart( xCheckTimer, mainDONT_BLOCK );\r
+\r
        /* Start the tasks running. */\r
        vTaskStartScheduler();\r
 \r
@@ -315,104 +305,85 @@ extern void HardwareSetup( void );
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-static void prvCheckTask( void *pvParameters )\r
+static void prvCheckTimerCallback( xTimerHandle xTimer )\r
 {\r
+static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;\r
 static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;\r
-portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;\r
-extern void vSetupHighFrequencyTimer( void );\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 and can disrupt other tests. */\r
-       #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST\r
-               vSetupHighFrequencyTimer();\r
-       #endif\r
+       /* Check the standard demo tasks are running without error. */\r
+       if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xArePollingQueuesStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xIsCreateTaskStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
+       else if( xAreIntQueueTasksStillRunning() != pdPASS )\r
+       {\r
+               lErrorStatus = pdFAIL;\r
+       }\r
 \r
-       /* Initialise xNextWakeTime - this only needs to be done once. */\r
-       xNextWakeTime = xTaskGetTickCount();\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
+               lErrorStatus = pdFAIL;\r
+       }\r
 \r
-       for( ;; )\r
+       if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )\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
-                       pcStatusMessage = "Error: GenQueue";\r
-               }\r
-               else if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: QueuePeek";\r
-               }\r
-               else if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: BlockQueue";\r
-               }\r
-               else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: BlockTime";\r
-               }\r
-               else if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: SemTest";\r
-               }\r
-               else if( xArePollingQueuesStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: PollQueue";\r
-               }\r
-               else if( xIsCreateTaskStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: Death";\r
-               }\r
-               else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: IntMath";\r
-               }\r
-               else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: RecMutex";\r
-               }\r
-               else if( xAreIntQueueTasksStillRunning() != pdPASS )\r
-               {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: IntQueue";\r
-               }\r
+               lErrorStatus = pdFAIL;\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
-                       pcStatusMessage = "Error: RegTest1";\r
-               }\r
+       ulLastRegTest1CycleCount = ulRegTest1CycleCount;\r
+       ulLastRegTest2CycleCount = ulRegTest2CycleCount;\r
 \r
-               if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )\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
+       /* Was an error detected this time through the callback execution? */\r
+       if( lErrorStatus != pdPASS )\r
+       {\r
+               if( lChangedTimerPeriodAlready == pdFALSE )\r
                {\r
-                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
-                       pcStatusMessage = "Error: RegTest2";\r
+                       lChangedTimerPeriodAlready = pdTRUE;\r
+                       \r
+                       /* This call to xTimerChangePeriod() uses a zero block time.  \r
+                       Functions called from inside of a timer callback function must \r
+                       *never* attempt to block. */\r
+                       xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );\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
 }\r
 /*-----------------------------------------------------------*/\r
@@ -464,6 +435,19 @@ void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName
 of this file. */\r
 void vApplicationIdleHook( void )\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 and can disrupt other tests. */\r
+       #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST\r
+       static portBASE_TYPE xTimerTestStarted = pdFALSE;\r
+       extern void vSetupHighFrequencyTimer( void );\r
+               if( xTimerTestStarted == pdFALSE )\r
+               {\r
+                       vSetupHighFrequencyTimer();\r
+                       xTimerTestStarted = pdTRUE;\r
+               }\r
+       #endif\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
@@ -668,14 +652,3 @@ RegTest2Error:
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-char *pcGetTaskStatusMessage( void )\r
-{\r
-       /* Not bothered about a critical section here although technically because of\r
-       the task priorities the pointer could change it will be atomic if not near\r
-       atomic and its not critical. */\r
-       return ( char * ) pcStatusMessage;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-\r
-\r
diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c
deleted file mode 100644 (file)
index 4fa1929..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Kernel includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-#include "semphr.h"\r
-\r
-#include "iodefine.h"\r
-\r
-extern xQueueHandle SwitchQueue;\r
-\r
-// IRQ1\r
-#pragma interrupt (Excep_IRQ1(vect=65))\r
-void Excep_IRQ1(void);\r
-\r
-// IRQ3\r
-#pragma interrupt (Excep_IRQ3(vect=67))\r
-void Excep_IRQ3(void);\r
-\r
-// IRQ4\r
-#pragma interrupt (Excep_IRQ4(vect=68))\r
-void Excep_IRQ4(void);\r
-\r
-\r
-\r
-void SwitchSetup(void)\r
-{\r
-       /* Configure SW 1-3 pin settings */\r
-    PORT3.PDR.BIT.B1 = 0;              /* Switch 1 - Port 3.1 - IRQ1 */\r
-    PORT3.PDR.BIT.B3 = 0;              /* Switch 2 - Port 3.3 - IRQ3 */\r
-    PORT3.PDR.BIT.B4 = 0;              /* Switch 3 - Port 3.4 - IRQ4 */\r
-\r
-       PORT3.PMR.BIT.B1 = 1;\r
-       PORT3.PMR.BIT.B3 = 1;\r
-       PORT3.PMR.BIT.B4 = 1;\r
-       \r
-       MPC.PWPR.BIT.B0WI = 0;          // Writing to the PFSWE bit is enabled\r
-       MPC.PWPR.BIT.PFSWE = 1;         // Writing to the PFS register is enabled\r
-       MPC.P31PFS.BIT.ISEL = 1;\r
-       MPC.P33PFS.BIT.ISEL = 1;\r
-       MPC.P34PFS.BIT.ISEL = 1;\r
-\r
-       /* IRQ1 */\r
-       ICU.IER[0x08].BIT.IEN1 = 1;     \r
-       ICU.IPR[65].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
-       ICU.IR[65].BIT.IR = 0;\r
-       ICU.IRQCR[1].BIT.IRQMD = 1;     // falling edge\r
-       \r
-       /* IRQ3 */\r
-       ICU.IER[0x08].BIT.IEN3 = 1;     \r
-       ICU.IPR[67].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
-       ICU.IR[67].BIT.IR = 0;\r
-       ICU.IRQCR[3].BIT.IRQMD = 1;     // falling edge\r
-\r
-       /* IRQ4 */\r
-       ICU.IER[0x08].BIT.IEN4 = 1;     \r
-       ICU.IPR[68].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
-       ICU.IR[68].BIT.IR = 0;\r
-       ICU.IRQCR[4].BIT.IRQMD = 1;     // falling edge\r
-       \r
-}\r
-\r
-void Excep_IRQ1(void)\r
-{\r
-       portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
-       static portTickType PreviousCount = 0;\r
-       portTickType CurrentCount;\r
-       static unsigned char ID_Switch1 = 1;\r
-       \r
-       CurrentCount = xTaskGetTickCount();\r
-       \r
-       if( (CurrentCount - PreviousCount) > (125 / portTICK_RATE_MS) )\r
-       {\r
-               xQueueSendToBackFromISR( SwitchQueue, &ID_Switch1, &xHigherPriorityTaskWoken);\r
-       }\r
-       PreviousCount = CurrentCount;\r
-    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
-}\r
-\r
-void Excep_IRQ3(void)\r
-{\r
-       static portTickType PreviousCount = 0;\r
-       portTickType CurrentCount;\r
-\r
-       portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
-       static unsigned char ID_Switch2 = 2;\r
-\r
-       CurrentCount = xTaskGetTickCount();\r
-       \r
-       if( (CurrentCount - PreviousCount) > (250 / portTICK_RATE_MS) )\r
-       {\r
-               xQueueSendToBackFromISR( SwitchQueue, &ID_Switch2, &xHigherPriorityTaskWoken);\r
-       }\r
-       PreviousCount = CurrentCount;\r
-    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
-}\r
-\r
-void Excep_IRQ4(void)\r
-{\r
-       static portTickType PreviousCount = 0;\r
-       portTickType CurrentCount;\r
-\r
-       portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
-       static unsigned char ID_Switch3 = 3;\r
-       \r
-       CurrentCount = xTaskGetTickCount();\r
-       \r
-       if( (CurrentCount - PreviousCount) > (125 / portTICK_RATE_MS) )\r
-       {\r
-               xQueueSendToBackFromISR( SwitchQueue, &ID_Switch3, &xHigherPriorityTaskWoken);\r
-       }\r
-       PreviousCount = CurrentCount;\r
-    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );\r
-}
\ No newline at end of file