mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 02:32:42 -05:00 
			
		
		
		
	Lots of work on the RX200 demo. Blinky and Full/Debug build configurations are now tested, after adding the BussonAndLCD.c/h files. Full/Optimised is yet to be built or tested.
This commit is contained in:
		
							parent
							
								
									025abf6f6a
								
							
						
					
					
						commit
						83f0af8764
					
				
					 15 changed files with 798 additions and 774 deletions
				
			
		| 
						 | 
					@ -38,7 +38,7 @@
 | 
				
			||||||
"2" "Default3" "1" 
 | 
					"2" "Default3" "1" 
 | 
				
			||||||
"3" "Default4" "1" 
 | 
					"3" "Default4" "1" 
 | 
				
			||||||
[OPTIONS_DEBUG_TAB]
 | 
					[OPTIONS_DEBUG_TAB]
 | 
				
			||||||
0 1 0 0 0 
 | 
					0 1 1 0 0 
 | 
				
			||||||
[VCS]
 | 
					[VCS]
 | 
				
			||||||
"" "" "" 0 
 | 
					"" "" "" 0 
 | 
				
			||||||
[VCS_PROJECT]
 | 
					[VCS_PROJECT]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,15 +7,11 @@
 | 
				
			||||||
[GENERAL_DATA]
 | 
					[GENERAL_DATA]
 | 
				
			||||||
[BREAKPOINTS]
 | 
					[BREAKPOINTS]
 | 
				
			||||||
[OPEN_WORKSPACE_FILES]
 | 
					[OPEN_WORKSPACE_FILES]
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" 
 | 
				
			||||||
[WORKSPACE_FILE_STATES]
 | 
					[WORKSPACE_FILE_STATES]
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" 0 0 1114 363 0 0 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 154 154 1096 423 0 1 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" -4 -23 1302 566 1 3 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" -4 -23 1302 648 1 0 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 154 154 1118 363 0 1 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" 176 176 1118 363 0 2 
 | 
					 | 
				
			||||||
[LOADED_PROJECTS]
 | 
					[LOADED_PROJECTS]
 | 
				
			||||||
"RTOSDemo" 
 | 
					"RTOSDemo" 
 | 
				
			||||||
[END]
 | 
					[END]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										417
									
								
								Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										417
									
								
								Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,417 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ***************************************************************************
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    FreeRTOS tutorial books are available in pdf and paperback.        *
 | 
				
			||||||
 | 
					     *    Complete, revised, and edited pdf reference manuals are also       *
 | 
				
			||||||
 | 
					     *    available.                                                         *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    Purchasing FreeRTOS documentation will not only help you, by       *
 | 
				
			||||||
 | 
					     *    ensuring you get running as quickly as possible and with an        *
 | 
				
			||||||
 | 
					     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
 | 
				
			||||||
 | 
					     *    the FreeRTOS project to continue with its mission of providing     *
 | 
				
			||||||
 | 
					     *    professional grade, cross platform, de facto standard solutions    *
 | 
				
			||||||
 | 
					     *    for microcontrollers - completely free of charge!                  *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    Thank you for using FreeRTOS, and thank you for your support!      *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					    ***************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    This file is part of the FreeRTOS distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FreeRTOS is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					    the terms of the GNU General Public License (version 2) as published by the
 | 
				
			||||||
 | 
					    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
 | 
				
			||||||
 | 
					    >>>NOTE<<< The modification to the GPL is included to allow you to
 | 
				
			||||||
 | 
					    distribute a combined work that includes FreeRTOS without being obliged to
 | 
				
			||||||
 | 
					    provide the source code for proprietary components outside of the FreeRTOS
 | 
				
			||||||
 | 
					    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 | 
				
			||||||
 | 
					    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 | 
				
			||||||
 | 
					    more details. You should have received a copy of the GNU General Public
 | 
				
			||||||
 | 
					    License and the FreeRTOS license exception along with FreeRTOS; if not it
 | 
				
			||||||
 | 
					    can be viewed here: http://www.freertos.org/a00114.html and also obtained
 | 
				
			||||||
 | 
					    by writing to Richard Barry, contact details for whom are available on the
 | 
				
			||||||
 | 
					    FreeRTOS WEB site.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    1 tab == 4 spaces!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.FreeRTOS.org - Documentation, latest information, license and
 | 
				
			||||||
 | 
					    contact details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.SafeRTOS.com - A version that is certified for use in safety
 | 
				
			||||||
 | 
					    critical systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.OpenRTOS.com - Commercial support, development, porting,
 | 
				
			||||||
 | 
					    licensing and training services.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Scheduler includes. */
 | 
				
			||||||
 | 
					#include "FreeRTOS.h"
 | 
				
			||||||
 | 
					#include "task.h"
 | 
				
			||||||
 | 
					#include "queue.h"
 | 
				
			||||||
 | 
					#include "semphr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Hardware specifics. */
 | 
				
			||||||
 | 
					#include "iodefine.h"
 | 
				
			||||||
 | 
					#include "lcd.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* States used by the LCD tasks. */
 | 
				
			||||||
 | 
					#define	lcdRIGHT_TO_LEFT	0U
 | 
				
			||||||
 | 
					#define	lcdLEFT_TO_RIGHT	1U
 | 
				
			||||||
 | 
					#define	lcdRUNNING			0U
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Characters on each line. */
 | 
				
			||||||
 | 
					#define lcdSTRING_LEN		8 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Commands sent from the IRQ to the task controlling the second line of the
 | 
				
			||||||
 | 
					display. */
 | 
				
			||||||
 | 
					#define lcdSHIFT_BACK_COMMAND		0x01U
 | 
				
			||||||
 | 
					#define lcdSTART_STOP_COMMAND		0x02U
 | 
				
			||||||
 | 
					#define lcdSHIFT_FORWARD_COMMAND	0x03U
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The length of the queue used to send commands from the ISRs. */
 | 
				
			||||||
 | 
					#define lcdCOMMAND_QUEUE_LENGTH		32U
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Defines the minimum time that must pass between consecutive button presses
 | 
				
			||||||
 | 
					to accept a button press as a unique press rather than just a bounce. */
 | 
				
			||||||
 | 
					#define lcdMIN_TIME_BETWEEN_INTERRUPTS_MS ( 125UL / portTICK_RATE_MS )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Button interrupt handlers. */
 | 
				
			||||||
 | 
					#pragma interrupt (prvIRQ1_Handler(vect=65))
 | 
				
			||||||
 | 
					static void prvIRQ1_Handler( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma interrupt (prvIRQ3_Handler(vect=67))
 | 
				
			||||||
 | 
					static void prvIRQ3_Handler( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma interrupt (prvIRQ4_Handler(vect=68))
 | 
				
			||||||
 | 
					static void prvIRQ4_Handler( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					 * Setup the IO needed for the buttons to generate interrupts. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static void prvSetupButtonIOAndInterrupts( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * A task that simply scrolls a string from left to right, then back from the
 | 
				
			||||||
 | 
					 * right to the left.  This is done on the first line of the display.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static void prvLCDTaskLine1( void *pvParameters );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * If no buttons are pushed, then this task acts as per prvLCDTaskLine1(), but
 | 
				
			||||||
 | 
					 * using the second line of the display.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Using the buttons, it is possible to start and stop the scrolling of the 
 | 
				
			||||||
 | 
					 * text.  Once the scrolling has been stopped, other buttons can be used to
 | 
				
			||||||
 | 
					 * manually scroll the text either left or right.
 | 
				
			||||||
 | 
					 */ 
 | 
				
			||||||
 | 
					static void prvLCDTaskLine2( void *pvParameters );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Looks at the direction the string is currently being scrolled in, and moves
 | 
				
			||||||
 | 
					 * the index into the portion of the string that can be seen on the display
 | 
				
			||||||
 | 
					 * either forward or backward as appropriate. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static prvScrollString( unsigned char *pucDirection, unsigned short *pusPosition, size_t xStringLength );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					 * Displays lcdSTRING_LEN characters starting from pcString on the line of the
 | 
				
			||||||
 | 
					 * display requested by ucLine.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static void prvDisplayNextString( unsigned char ucLine, char *pcString );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Called from the IRQ interrupts, which are generated on button pushes.  Send
 | 
				
			||||||
 | 
					 * ucCommand to the task on the button command queue if 
 | 
				
			||||||
 | 
					 * lcdMIN_TIME_BETWEEN_INTERRUPTS_MS milliseconds have passed since the button
 | 
				
			||||||
 | 
					 * was last pushed (for debouncing). 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static portBASE_TYPE prvSendCommandOnDebouncedInput( portTickType *pxTimeLastInterrupt, unsigned char ucCommand );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The queue used to pass commands from the button interrupt handlers to the
 | 
				
			||||||
 | 
					prvLCDTaskLine2() task. */
 | 
				
			||||||
 | 
					static xQueueHandle xButtonCommandQueue = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The mutex used to ensure only one task writes to the display at any one
 | 
				
			||||||
 | 
					time. */
 | 
				
			||||||
 | 
					static xSemaphoreHandle xLCDMutex = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The string that is scrolled up and down the first line of the display. */
 | 
				
			||||||
 | 
					static const char cDataString1[] = "        http://www.FreeRTOS.org        ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The string that is scrolled/nudged up and down the second line of the 
 | 
				
			||||||
 | 
					display. */
 | 
				
			||||||
 | 
					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........";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Structures passed into the two tasks to inform them which line to use on the
 | 
				
			||||||
 | 
					display, how long to delay for, and which string to use. */
 | 
				
			||||||
 | 
					struct _LCD_Params xLCDLine1 = 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						LCD_LINE1, 215, cDataString1	
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _LCD_Params xLCDLine2 = 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						LCD_LINE2, 350, cDataString2
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void vStartButtonAndLCDDemo( void )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						prvSetupButtonIOAndInterrupts();
 | 
				
			||||||
 | 
						InitialiseDisplay();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Create the mutex used to guard the LCD. */
 | 
				
			||||||
 | 
						xLCDMutex = xSemaphoreCreateMutex();
 | 
				
			||||||
 | 
						configASSERT( xLCDMutex );
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/* Create the queue used to pass commands from the IRQ interrupts to the
 | 
				
			||||||
 | 
						prvLCDTaskLine2() task. */
 | 
				
			||||||
 | 
						xButtonCommandQueue = xQueueCreate( lcdCOMMAND_QUEUE_LENGTH, sizeof( unsigned char ) );
 | 
				
			||||||
 | 
						configASSERT( xButtonCommandQueue );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Start the two tasks as described at the top of this file. */
 | 
				
			||||||
 | 
						xTaskCreate( prvLCDTaskLine1, "LCD1", configMINIMAL_STACK_SIZE * 3, ( void * ) &xLCDLine1, tskIDLE_PRIORITY + 1, NULL );
 | 
				
			||||||
 | 
						xTaskCreate( prvLCDTaskLine2, "LCD2", configMINIMAL_STACK_SIZE * 3, ( void * ) &xLCDLine2, tskIDLE_PRIORITY + 2, NULL );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void prvLCDTaskLine1( void *pvParameters )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					struct _LCD_Params *pxLCDParamaters = ( struct _LCD_Params * ) pvParameters;
 | 
				
			||||||
 | 
					unsigned short usPosition = 0U;
 | 
				
			||||||
 | 
					unsigned char ucDirection = lcdRIGHT_TO_LEFT;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						for( ;; )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							vTaskDelay( pxLCDParamaters->Speed / portTICK_RATE_MS );		
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/* Write the string. */
 | 
				
			||||||
 | 
							prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/* Move the string in whichever direction the scroll is currently going
 | 
				
			||||||
 | 
							in. */
 | 
				
			||||||
 | 
							prvScrollString( &ucDirection, &usPosition, strlen( pxLCDParamaters->ptr_str ) );
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void prvLCDTaskLine2( void *pvParameters )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					struct _LCD_Params *pxLCDParamaters = ( struct _LCD_Params * ) pvParameters;
 | 
				
			||||||
 | 
					unsigned short usPosition = 0U;
 | 
				
			||||||
 | 
					unsigned char ucDirection = lcdRIGHT_TO_LEFT, ucStatus = lcdRUNNING, ucQueueData;
 | 
				
			||||||
 | 
					portTickType xDelayTicks = ( pxLCDParamaters->Speed / portTICK_RATE_MS );
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						for(;;)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							/* Wait for a message from an IRQ handler. */
 | 
				
			||||||
 | 
							if( xQueueReceive( xButtonCommandQueue, &ucQueueData, xDelayTicks ) != pdPASS )
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								/* A message was not received before xDelayTicks ticks passed, so
 | 
				
			||||||
 | 
								generate the next string to display and display it. */
 | 
				
			||||||
 | 
								prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								/* Move the string in whichever direction the scroll is currently 
 | 
				
			||||||
 | 
								going in. */
 | 
				
			||||||
 | 
								prvScrollString( &ucDirection, &usPosition, strlen( pxLCDParamaters->ptr_str ) );			
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								/* A command was received.  Process it. */
 | 
				
			||||||
 | 
								switch( ucQueueData )
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									case lcdSTART_STOP_COMMAND :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										/* If the LCD is running, top it.  If the LCD is stopped, start
 | 
				
			||||||
 | 
										it. */
 | 
				
			||||||
 | 
										ucStatus = !ucStatus;
 | 
				
			||||||
 | 
										
 | 
				
			||||||
 | 
										if( ucStatus == lcdRUNNING )
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											xDelayTicks = ( pxLCDParamaters->Speed / portTICK_RATE_MS );
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										else
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											xDelayTicks = portMAX_DELAY;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										
 | 
				
			||||||
 | 
									case lcdSHIFT_BACK_COMMAND :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if( ucStatus != lcdRUNNING )
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											/* If not already at the start of the display.... */
 | 
				
			||||||
 | 
											if( usPosition != 0U )
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												/* ....move the display position back by one char. */
 | 
				
			||||||
 | 
												usPosition--;												
 | 
				
			||||||
 | 
												prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									case lcdSHIFT_FORWARD_COMMAND :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if( ucStatus != lcdRUNNING )
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											/* If not already at the end of the display.... */
 | 
				
			||||||
 | 
											if( usPosition != ( strlen( pxLCDParamaters->ptr_str ) - ( lcdSTRING_LEN - 1 ) ) )
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												/* ....move the display position forward by one 
 | 
				
			||||||
 | 
												char. */
 | 
				
			||||||
 | 
												usPosition++;
 | 
				
			||||||
 | 
												prvDisplayNextString( pxLCDParamaters->Line, &( pxLCDParamaters->ptr_str[ usPosition ] ) );
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void prvSetupButtonIOAndInterrupts( void )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* Configure SW 1-3 pin settings */
 | 
				
			||||||
 | 
						PORT3.PDR.BIT.B1 = 0;		/* Switch 1 - Port 3.1 - IRQ1 */
 | 
				
			||||||
 | 
						PORT3.PDR.BIT.B3 = 0;		/* Switch 2 - Port 3.3 - IRQ3 */
 | 
				
			||||||
 | 
						PORT3.PDR.BIT.B4 = 0;		/* Switch 3 - Port 3.4 - IRQ4 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						PORT3.PMR.BIT.B1 = 1;
 | 
				
			||||||
 | 
						PORT3.PMR.BIT.B3 = 1;
 | 
				
			||||||
 | 
						PORT3.PMR.BIT.B4 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						MPC.PWPR.BIT.B0WI = 0;		/* Writing to the PFSWE bit is enabled */
 | 
				
			||||||
 | 
						MPC.PWPR.BIT.PFSWE = 1;		/* Writing to the PFS register is enabled */
 | 
				
			||||||
 | 
						MPC.P31PFS.BIT.ISEL = 1;
 | 
				
			||||||
 | 
						MPC.P33PFS.BIT.ISEL = 1;
 | 
				
			||||||
 | 
						MPC.P34PFS.BIT.ISEL = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* IRQ1	*/
 | 
				
			||||||
 | 
						ICU.IER[ 0x08 ].BIT.IEN1 = 1;	
 | 
				
			||||||
 | 
						ICU.IPR[ 65 ].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;
 | 
				
			||||||
 | 
						ICU.IR[ 65 ].BIT.IR = 0;
 | 
				
			||||||
 | 
						ICU.IRQCR[ 1 ].BIT.IRQMD = 2;	/* Rising edge */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* IRQ3	*/
 | 
				
			||||||
 | 
						ICU.IER[ 0x08 ].BIT.IEN3 = 1;	
 | 
				
			||||||
 | 
						ICU.IPR[ 67 ].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;
 | 
				
			||||||
 | 
						ICU.IR[ 67 ].BIT.IR = 0;
 | 
				
			||||||
 | 
						ICU.IRQCR[ 3 ].BIT.IRQMD = 2;	/* Rising edge */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* IRQ4	*/
 | 
				
			||||||
 | 
						ICU.IER[ 0x08 ].BIT.IEN4 = 1;	
 | 
				
			||||||
 | 
						ICU.IPR[ 68 ].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;
 | 
				
			||||||
 | 
						ICU.IR[ 68 ].BIT.IR = 0;
 | 
				
			||||||
 | 
						ICU.IRQCR[ 4 ].BIT.IRQMD = 2;	/* Rising edge */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static prvScrollString( unsigned char *pucDirection, unsigned short *pusPosition, size_t xStringLength )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* Check which way to scroll. */
 | 
				
			||||||
 | 
						if( *pucDirection == lcdRIGHT_TO_LEFT )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							/* Move to the next character. */
 | 
				
			||||||
 | 
							( *pusPosition )++;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							/* Has the end of the string been reached? */
 | 
				
			||||||
 | 
							if( ( *pusPosition ) == ( xStringLength - ( lcdSTRING_LEN - 1 ) ) )
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								/* Switch direction. */
 | 
				
			||||||
 | 
								*pucDirection = lcdLEFT_TO_RIGHT;
 | 
				
			||||||
 | 
								( *pusPosition )--;				
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							/* Move (backward) to the next character. */
 | 
				
			||||||
 | 
							( *pusPosition )--;
 | 
				
			||||||
 | 
							if( *pusPosition == 0U )
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								/* Switch Direction. */
 | 
				
			||||||
 | 
								*pucDirection = lcdRIGHT_TO_LEFT;				
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void prvDisplayNextString( unsigned char ucLine, char *pcString )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					static char cSingleLine[ lcdSTRING_LEN + 1 ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						xSemaphoreTake( xLCDMutex, portMAX_DELAY );
 | 
				
			||||||
 | 
						strncpy( cSingleLine, pcString, lcdSTRING_LEN );
 | 
				
			||||||
 | 
						DisplayString( ucLine, cSingleLine );
 | 
				
			||||||
 | 
						xSemaphoreGive( xLCDMutex );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static portBASE_TYPE prvSendCommandOnDebouncedInput( portTickType *pxTimeLastInterrupt, unsigned char ucCommand )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 | 
				
			||||||
 | 
					portTickType xCurrentTickCount;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/* Check the time now for debouncing purposes. */
 | 
				
			||||||
 | 
						xCurrentTickCount = xTaskGetTickCountFromISR();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/* Has enough time passed since the button was last push to accept it as a
 | 
				
			||||||
 | 
						unique press? */
 | 
				
			||||||
 | 
						if( ( xCurrentTickCount - *pxTimeLastInterrupt ) > lcdMIN_TIME_BETWEEN_INTERRUPTS_MS )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							xQueueSendToBackFromISR( xButtonCommandQueue, &ucCommand, &xHigherPriorityTaskWoken );
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Remember the time now, so debounce can be performed again on the next
 | 
				
			||||||
 | 
						interrupt. */	
 | 
				
			||||||
 | 
						*pxTimeLastInterrupt = xCurrentTickCount;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						return xHigherPriorityTaskWoken;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void prvIRQ1_Handler( void )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					static portTickType xTimeLastInterrupt = 0UL;
 | 
				
			||||||
 | 
					static const unsigned char ucCommand = lcdSHIFT_BACK_COMMAND;
 | 
				
			||||||
 | 
					portBASE_TYPE xHigherPriorityTaskWoken;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						xHigherPriorityTaskWoken = prvSendCommandOnDebouncedInput( &xTimeLastInterrupt, ucCommand );
 | 
				
			||||||
 | 
						portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void prvIRQ3_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					static portTickType xTimeLastInterrupt = 0UL;
 | 
				
			||||||
 | 
					static const unsigned char ucCommand = lcdSTART_STOP_COMMAND;
 | 
				
			||||||
 | 
					portBASE_TYPE xHigherPriorityTaskWoken;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						xHigherPriorityTaskWoken = prvSendCommandOnDebouncedInput( &xTimeLastInterrupt, ucCommand );
 | 
				
			||||||
 | 
						portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void prvIRQ4_Handler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					static portTickType xTimeLastInterrupt = 0UL;
 | 
				
			||||||
 | 
					static const unsigned char ucCommand = lcdSHIFT_FORWARD_COMMAND;
 | 
				
			||||||
 | 
					portBASE_TYPE xHigherPriorityTaskWoken;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						xHigherPriorityTaskWoken = prvSendCommandOnDebouncedInput( &xTimeLastInterrupt, ucCommand );
 | 
				
			||||||
 | 
						portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,8 +72,8 @@
 | 
				
			||||||
#define configUSE_PREEMPTION			1
 | 
					#define configUSE_PREEMPTION			1
 | 
				
			||||||
#define configUSE_IDLE_HOOK				0
 | 
					#define configUSE_IDLE_HOOK				0
 | 
				
			||||||
#define configUSE_TICK_HOOK				0
 | 
					#define configUSE_TICK_HOOK				0
 | 
				
			||||||
#define configCPU_CLOCK_HZ				( ICLK_FREQUENCY ) /* Set in rskrx62ndef.h. */
 | 
					#define configCPU_CLOCK_HZ				( ICLK_FREQUENCY ) /* Set in rskrx210def.h. */
 | 
				
			||||||
#define configPERIPHERAL_CLOCK_HZ		( PCLK_FREQUENCY ) /* Set in rskrx62ndef.h. */
 | 
					#define configPERIPHERAL_CLOCK_HZ		( PCLK_FREQUENCY ) /* Set in rskrx210def.h. */
 | 
				
			||||||
#define configTICK_RATE_HZ				( ( portTickType ) 1000 )
 | 
					#define configTICK_RATE_HZ				( ( portTickType ) 1000 )
 | 
				
			||||||
#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 140 )
 | 
					#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 140 )
 | 
				
			||||||
#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 50 * 1024 ) )
 | 
					#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 50 * 1024 ) )
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,9 +11,7 @@
 | 
				
			||||||
[CONFIGURATIONS]
 | 
					[CONFIGURATIONS]
 | 
				
			||||||
"Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Blinky" 
 | 
					"Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Blinky" 
 | 
				
			||||||
"Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug" 
 | 
					"Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug" 
 | 
				
			||||||
"Debug_RX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug_RX600_E1_E20_SYSTEM" 
 | 
					 | 
				
			||||||
"Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug_with_optimisation" 
 | 
					"Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Debug_with_optimisation" 
 | 
				
			||||||
"SimDebug_RX600" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\SimDebug_RX600" 
 | 
					 | 
				
			||||||
[BUILD_PHASES]
 | 
					[BUILD_PHASES]
 | 
				
			||||||
"Renesas OptLinker" 1 
 | 
					"Renesas OptLinker" 1 
 | 
				
			||||||
"Renesas RX Assembler" 1 
 | 
					"Renesas RX Assembler" 1 
 | 
				
			||||||
| 
						 | 
					@ -130,21 +128,21 @@
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "User" "C source file|Common demo tasks" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "User" "C source file|Common demo tasks" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "User" "C source file|Common demo tasks" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "User" "C source file|Common demo tasks" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Common demo tasks" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Common demo tasks" 2 
 | 
				
			||||||
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "User" "C source file" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "User" "C source file" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "User" "C source file" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "User" "C source file" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "User" "C source file" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "User" "C source file" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "User" "C source file" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "User" "C source file|Renesas Files" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "User" "C source file|Renesas Files" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "User" "C source file" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "User" "C source file" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "User" "C source file" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "User" "C source file" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "User" "C source file" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "User" "C source file" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "User" "C source file|FreeRTOS" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "User" "C source file|FreeRTOS" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "User" "C source file|FreeRTOS|Portable layer" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "User" "C source file|FreeRTOS|Portable layer" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "User" "C source file|FreeRTOS|Portable layer" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "User" "C source file|FreeRTOS|Portable layer" 2 
 | 
				
			||||||
| 
						 | 
					@ -218,62 +216,63 @@
 | 
				
			||||||
[GENERAL_DATA_SESSION_DefaultSession]
 | 
					[GENERAL_DATA_SESSION_DefaultSession]
 | 
				
			||||||
[GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[OPTIONS_Blinky_Renesas OptLinker]
 | 
					[OPTIONS_Blinky_Renesas OptLinker]
 | 
				
			||||||
"Single Shot" "0163a6546847cc10" 5 
 | 
					"Single Shot" "08221511d557cc10" 5 
 | 
				
			||||||
[OPTIONS_Blinky_Renesas RX Assembler]
 | 
					[OPTIONS_Blinky_Renesas RX Assembler]
 | 
				
			||||||
"Assembly source file" "0fe42629efb3cc10" 4 
 | 
					"Assembly source file" "07a7155f1257cc10" 4 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0fe42629efb3cc10" 4 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "07a7155f1257cc10" 4 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "07a7155f1257cc10" 4 
 | 
				
			||||||
"Linkage symbol file" "0fe42629efb3cc10" 4 
 | 
					"Linkage symbol file" "07a7155f1257cc10" 4 
 | 
				
			||||||
[OPTIONS_Blinky_Renesas RX C/C++ Compiler]
 | 
					[OPTIONS_Blinky_Renesas RX C/C++ Compiler]
 | 
				
			||||||
"C source file" "0c9d1629efb3cc10" 2 
 | 
					"C source file" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C++ source file" "0c9d1629efb3cc10" 3 
 | 
					"C++ source file" "07a7155f1257cc10" 3 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "03955e50d457cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0c9d1629efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
[OPTIONS_Blinky_Renesas RX C/C++ Library Generator]
 | 
					[OPTIONS_Blinky_Renesas RX C/C++ Library Generator]
 | 
				
			||||||
"Single Shot" "0c9d1629efb3cc10" 1 
 | 
					"Single Shot" "07a7155f1257cc10" 1 
 | 
				
			||||||
[OPTIONS_Blinky_Renesas RX Configurator]
 | 
					[OPTIONS_Blinky_Renesas RX Configurator]
 | 
				
			||||||
"Single Shot" "0d7a61d06847cc10" 6 
 | 
					"Single Shot" "0aac2411d557cc10" 6 
 | 
				
			||||||
[OPTIONS_Blinky]
 | 
					[OPTIONS_Blinky]
 | 
				
			||||||
"" 0 
 | 
					"" 0 
 | 
				
			||||||
"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 
 | 
					"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]
 | 
				
			||||||
"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1]
 | 
					" 6 
 | 
				
			||||||
 | 
					"[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]
 | 
				
			||||||
" 4 
 | 
					" 4 
 | 
				
			||||||
"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\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]
 | 
					"[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]
 | 
				
			||||||
" 3 
 | 
					" 3 
 | 
				
			||||||
"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\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]
 | 
					"[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]
 | 
				
			||||||
" 2 
 | 
					" 2 
 | 
				
			||||||
"[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]
 | 
					"[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]
 | 
				
			||||||
" 1 
 | 
					" 1 
 | 
				
			||||||
"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [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]
 | 
					"[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]
 | 
				
			||||||
" 5 
 | 
					" 5 
 | 
				
			||||||
[EXCLUDED_FILES_Blinky]
 | 
					[EXCLUDED_FILES_Blinky]
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" 
 | 
				
			||||||
| 
						 | 
					@ -289,134 +288,76 @@
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" 
 | 
					 | 
				
			||||||
[LINKAGE_ORDER_Blinky]
 | 
					[LINKAGE_ORDER_Blinky]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Blinky]
 | 
					[GENERAL_DATA_CONFIGURATION_Blinky]
 | 
				
			||||||
[OPTIONS_Debug_Renesas OptLinker]
 | 
					[OPTIONS_Debug_Renesas OptLinker]
 | 
				
			||||||
"Single Shot" "0bff42d06847cc10" 5 
 | 
					"Single Shot" "08221511d557cc10" 5 
 | 
				
			||||||
[OPTIONS_Debug_Renesas RX Assembler]
 | 
					[OPTIONS_Debug_Renesas RX Assembler]
 | 
				
			||||||
"Assembly source file" "0fddf529efb3cc10" 4 
 | 
					"Assembly source file" "07a7155f1257cc10" 4 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0fddf529efb3cc10" 4 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "07a7155f1257cc10" 4 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "07a7155f1257cc10" 4 
 | 
				
			||||||
"Linkage symbol file" "0fddf529efb3cc10" 4 
 | 
					"Linkage symbol file" "07a7155f1257cc10" 4 
 | 
				
			||||||
[OPTIONS_Debug_Renesas RX C/C++ Compiler]
 | 
					[OPTIONS_Debug_Renesas RX C/C++ Compiler]
 | 
				
			||||||
"C source file" "0c86f529efb3cc10" 2 
 | 
					"C source file" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C++ source file" "0c86f529efb3cc10" 3 
 | 
					"C++ source file" "07a7155f1257cc10" 3 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "03955e50d457cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0c86f529efb3cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07a7155f1257cc10" 2 
 | 
				
			||||||
[OPTIONS_Debug_Renesas RX C/C++ Library Generator]
 | 
					[OPTIONS_Debug_Renesas RX C/C++ Library Generator]
 | 
				
			||||||
"Single Shot" "0c86f529efb3cc10" 1 
 | 
					"Single Shot" "07a7155f1257cc10" 1 
 | 
				
			||||||
[OPTIONS_Debug_Renesas RX Configurator]
 | 
					[OPTIONS_Debug_Renesas RX Configurator]
 | 
				
			||||||
"Single Shot" "0d7a61d06847cc10" 6 
 | 
					"Single Shot" "0aac2411d557cc10" 6 
 | 
				
			||||||
[OPTIONS_Debug]
 | 
					[OPTIONS_Debug]
 | 
				
			||||||
"" 0 
 | 
					"" 0 
 | 
				
			||||||
"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 
 | 
					"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]
 | 
				
			||||||
"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE]
 | 
					" 6 
 | 
				
			||||||
 | 
					"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX200] [S|BASE|00000000=NONE] [I|PID|16]
 | 
				
			||||||
" 4 
 | 
					" 4 
 | 
				
			||||||
"[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]
 | 
					"[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]
 | 
				
			||||||
" 2 
 | 
					" 2 
 | 
				
			||||||
"[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]
 | 
					"[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]
 | 
				
			||||||
" 3 
 | 
					" 3 
 | 
				
			||||||
"[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]
 | 
					"[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]
 | 
				
			||||||
" 1 
 | 
					" 1 
 | 
				
			||||||
"[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)]
 | 
					"[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)]
 | 
				
			||||||
" 5 
 | 
					" 5 
 | 
				
			||||||
[EXCLUDED_FILES_Debug]
 | 
					[EXCLUDED_FILES_Debug]
 | 
				
			||||||
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" 
 | 
				
			||||||
[LINKAGE_ORDER_Debug]
 | 
					[LINKAGE_ORDER_Debug]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Debug]
 | 
					[GENERAL_DATA_CONFIGURATION_Debug]
 | 
				
			||||||
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas OptLinker]
 | 
					 | 
				
			||||||
"Single Shot" "0bff42d06847cc10" 5 
 | 
					 | 
				
			||||||
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Assembler]
 | 
					 | 
				
			||||||
"Assembly source file" "0ab81629efb3cc10" 4 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0ab81629efb3cc10" 4 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 
 | 
					 | 
				
			||||||
"Linkage symbol file" "0ab81629efb3cc10" 4 
 | 
					 | 
				
			||||||
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Compiler]
 | 
					 | 
				
			||||||
"C source file" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C++ source file" "07611629efb3cc10" 3 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07611629efb3cc10" 2 
 | 
					 | 
				
			||||||
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Library Generator]
 | 
					 | 
				
			||||||
"Single Shot" "07611629efb3cc10" 1 
 | 
					 | 
				
			||||||
[OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Configurator]
 | 
					 | 
				
			||||||
"Single Shot" "0d7a61d06847cc10" 6 
 | 
					 | 
				
			||||||
[OPTIONS_Debug_RX600_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
"" 0 
 | 
					 | 
				
			||||||
"[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 
 | 
					 | 
				
			||||||
"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 
 | 
					 | 
				
			||||||
"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|LISTFILE|0] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 4 
 | 
					 | 
				
			||||||
"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|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]
 | 
					 | 
				
			||||||
" 3 
 | 
					 | 
				
			||||||
"[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]
 | 
					 | 
				
			||||||
" 2 
 | 
					 | 
				
			||||||
"[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 
 | 
					 | 
				
			||||||
[EXCLUDED_FILES_Debug_RX600_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[LINKAGE_ORDER_Debug_RX600_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[OPTIONS_Debug_with_optimisation_Renesas OptLinker]
 | 
					[OPTIONS_Debug_with_optimisation_Renesas OptLinker]
 | 
				
			||||||
"Single Shot" "0bff42d06847cc10" 5 
 | 
					"Single Shot" "08221511d557cc10" 5 
 | 
				
			||||||
[OPTIONS_Debug_with_optimisation_Renesas RX Assembler]
 | 
					[OPTIONS_Debug_with_optimisation_Renesas RX Assembler]
 | 
				
			||||||
"Assembly source file" "0d348e39e796cc10" 4 
 | 
					"Assembly source file" "0d348e39e796cc10" 4 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0d348e39e796cc10" 4 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0d348e39e796cc10" 4 
 | 
				
			||||||
| 
						 | 
					@ -436,20 +377,20 @@
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ButtonAndLCD.c" "03955e50d457cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lcd.c" "0297dc288847cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "0b8cd057b896cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "0b8cd057b896cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0b8cd057b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0b8cd057b896cc10" 2 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 
 | 
				
			||||||
| 
						 | 
					@ -459,7 +400,7 @@
 | 
				
			||||||
[OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Library Generator]
 | 
					[OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Library Generator]
 | 
				
			||||||
"Single Shot" "0d348e39e796cc10" 1 
 | 
					"Single Shot" "0d348e39e796cc10" 1 
 | 
				
			||||||
[OPTIONS_Debug_with_optimisation_Renesas RX Configurator]
 | 
					[OPTIONS_Debug_with_optimisation_Renesas RX Configurator]
 | 
				
			||||||
"Single Shot" "0d7a61d06847cc10" 6 
 | 
					"Single Shot" "0aac2411d557cc10" 6 
 | 
				
			||||||
[OPTIONS_Debug_with_optimisation]
 | 
					[OPTIONS_Debug_with_optimisation]
 | 
				
			||||||
"" 0 
 | 
					"" 0 
 | 
				
			||||||
"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]
 | 
					"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [S|BASE|00000000=NONE]
 | 
				
			||||||
| 
						 | 
					@ -475,66 +416,9 @@
 | 
				
			||||||
"[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]
 | 
					"[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]
 | 
				
			||||||
" 5 
 | 
					" 5 
 | 
				
			||||||
[EXCLUDED_FILES_Debug_with_optimisation]
 | 
					[EXCLUDED_FILES_Debug_with_optimisation]
 | 
				
			||||||
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 
 | 
				
			||||||
[LINKAGE_ORDER_Debug_with_optimisation]
 | 
					[LINKAGE_ORDER_Debug_with_optimisation]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]
 | 
					[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]
 | 
				
			||||||
[OPTIONS_SimDebug_RX600_Renesas OptLinker]
 | 
					 | 
				
			||||||
"Single Shot" "0bff42d06847cc10" 5 
 | 
					 | 
				
			||||||
[OPTIONS_SimDebug_RX600_Renesas RX Assembler]
 | 
					 | 
				
			||||||
"Assembly source file" "041a0629efb3cc10" 4 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "041a0629efb3cc10" 4 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 
 | 
					 | 
				
			||||||
"Linkage symbol file" "041a0629efb3cc10" 4 
 | 
					 | 
				
			||||||
[OPTIONS_SimDebug_RX600_Renesas RX C/C++ Compiler]
 | 
					 | 
				
			||||||
"C source file" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C++ source file" "02350629efb3cc10" 3 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\ParTest.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" "0d7a61d06847cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\switches.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "02350629efb3cc10" 2 
 | 
					 | 
				
			||||||
[OPTIONS_SimDebug_RX600_Renesas RX C/C++ Library Generator]
 | 
					 | 
				
			||||||
"Single Shot" "01c20629efb3cc10" 1 
 | 
					 | 
				
			||||||
[OPTIONS_SimDebug_RX600_Renesas RX Configurator]
 | 
					 | 
				
			||||||
"Single Shot" "0d7a61d06847cc10" 6 
 | 
					 | 
				
			||||||
[OPTIONS_SimDebug_RX600]
 | 
					 | 
				
			||||||
"" 0 
 | 
					 | 
				
			||||||
"[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 
 | 
					 | 
				
			||||||
"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 
 | 
					 | 
				
			||||||
"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|LISTFILE|0] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 4 
 | 
					 | 
				
			||||||
"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|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]
 | 
					 | 
				
			||||||
" 3 
 | 
					 | 
				
			||||||
"[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]
 | 
					 | 
				
			||||||
" 2 
 | 
					 | 
				
			||||||
"[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 
 | 
					 | 
				
			||||||
[EXCLUDED_FILES_SimDebug_RX600]
 | 
					 | 
				
			||||||
[LINKAGE_ORDER_SimDebug_RX600]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SimDebug_RX600]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
 | 
					[SESSION_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					"MEMORY_MAPPING_OPTIONS" "" 
 | 
				
			||||||
| 
						 | 
					@ -547,24 +431,12 @@
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]
 | 
					[SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					"MEMORY_MAPPING_OPTIONS" "" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]
 | 
					 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]
 | 
					 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX200_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX200_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
 | 
					[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					"MEMORY_MAPPING_OPTIONS" "" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]
 | 
					[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					"MEMORY_MAPPING_OPTIONS" "" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]
 | 
					 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]
 | 
					 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[SESSION_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
"MEMORY_MAPPING_OPTIONS" "" 
 | 
					 | 
				
			||||||
[EXT_DEBUGGER_INFO]
 | 
					[EXT_DEBUGGER_INFO]
 | 
				
			||||||
0 "" "" "" "" 
 | 
					0 "" "" "" "" 
 | 
				
			||||||
[END]
 | 
					[END]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -8,50 +8,34 @@
 | 
				
			||||||
[CONFIGURATIONS]
 | 
					[CONFIGURATIONS]
 | 
				
			||||||
"Blinky" 
 | 
					"Blinky" 
 | 
				
			||||||
"Debug" 
 | 
					"Debug" 
 | 
				
			||||||
"Debug_RX600_E1_E20_SYSTEM" 
 | 
					 | 
				
			||||||
"Debug_with_optimisation" 
 | 
					"Debug_with_optimisation" 
 | 
				
			||||||
"SimDebug_RX600" 
 | 
					 | 
				
			||||||
[CURRENT_CONFIGURATION]
 | 
					[CURRENT_CONFIGURATION]
 | 
				
			||||||
"Blinky" 
 | 
					"Debug" 
 | 
				
			||||||
[CURRENT_SESSION]
 | 
					[CURRENT_SESSION]
 | 
				
			||||||
"SessionRX200_E1_E20_SYSTEM" 
 | 
					"SessionRX200_E1_E20_SYSTEM" 
 | 
				
			||||||
[GENERAL_DATA_PROJECT]
 | 
					[GENERAL_DATA_PROJECT]
 | 
				
			||||||
"FDT_UserBootAreaFiles" "" 
 | 
					"FDT_UserBootAreaFiles" "" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Blinky]
 | 
					[GENERAL_DATA_CONFIGURATION_Blinky]
 | 
				
			||||||
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" 
 | 
					"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" 
 | 
				
			||||||
[SESSIONS_Blinky]
 | 
					[SESSIONS_Blinky]
 | 
				
			||||||
"DefaultSession" 
 | 
					"DefaultSession" 
 | 
				
			||||||
"SessionRX200_E1_E20_SYSTEM" 
 | 
					"SessionRX200_E1_E20_SYSTEM" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Debug]
 | 
					[GENERAL_DATA_CONFIGURATION_Debug]
 | 
				
			||||||
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" 
 | 
					"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" 
 | 
				
			||||||
[SESSIONS_Debug]
 | 
					[SESSIONS_Debug]
 | 
				
			||||||
"DefaultSession" 
 | 
					"DefaultSession" 
 | 
				
			||||||
"SessionRX200_E1_E20_SYSTEM" 
 | 
					"SessionRX200_E1_E20_SYSTEM" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" 
 | 
					 | 
				
			||||||
[SESSIONS_Debug_RX600_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
"DefaultSession" 
 | 
					 | 
				
			||||||
"SessionRX200_E1_E20_SYSTEM" 
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]
 | 
					[GENERAL_DATA_CONFIGURATION_Debug_with_optimisation]
 | 
				
			||||||
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" 
 | 
					"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" 
 | 
				
			||||||
[SESSIONS_Debug_with_optimisation]
 | 
					[SESSIONS_Debug_with_optimisation]
 | 
				
			||||||
"DefaultSession" 
 | 
					"DefaultSession" 
 | 
				
			||||||
"SessionRX200_E1_E20_SYSTEM" 
 | 
					"SessionRX200_E1_E20_SYSTEM" 
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SimDebug_RX600]
 | 
					 | 
				
			||||||
"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" 
 | 
					 | 
				
			||||||
[SESSIONS_SimDebug_RX600]
 | 
					 | 
				
			||||||
"DefaultSession" 
 | 
					 | 
				
			||||||
"SessionRX200_E1_E20_SYSTEM" 
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[GENERAL_DATA_SESSION_DefaultSession]
 | 
					[GENERAL_DATA_SESSION_DefaultSession]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_DefaultSession]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_DefaultSession]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX200_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM]
 | 
					 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession]
 | 
				
			||||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]
 | 
					[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM]
 | 
				
			||||||
[END]
 | 
					[END]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,39 +30,6 @@ User Includes
 | 
				
			||||||
#include "rskrx210def.h"
 | 
					#include "rskrx210def.h"
 | 
				
			||||||
#include "lcd.h"
 | 
					#include "lcd.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Kernel includes. */
 | 
					 | 
				
			||||||
#include "FreeRTOS.h"
 | 
					 | 
				
			||||||
#include "task.h"
 | 
					 | 
				
			||||||
#include "semphr.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**********************************************************************************
 | 
					 | 
				
			||||||
Global variables
 | 
					 | 
				
			||||||
***********************************************************************************/
 | 
					 | 
				
			||||||
xQueueHandle SwitchQueue;
 | 
					 | 
				
			||||||
xSemaphoreHandle LCD_Mutex;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char datastring[]=
 | 
					 | 
				
			||||||
"........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........";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct _LCD_Params Line1 = 
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	LCD_LINE1, 215, datastring	
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct _LCD_Params Line2 = 
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	LCD_LINE2, 350, datastring	
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**********************************************************************************
 | 
					 | 
				
			||||||
User Program Code
 | 
					 | 
				
			||||||
***********************************************************************************/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*****************************************************************************
 | 
					/*****************************************************************************
 | 
				
			||||||
Name:			InitDisplay 
 | 
					Name:			InitDisplay 
 | 
				
			||||||
Parameters:		none				
 | 
					Parameters:		none				
 | 
				
			||||||
| 
						 | 
					@ -250,143 +217,3 @@ End of function DisplayDelay
 | 
				
			||||||
***********************************************************************************/   
 | 
					***********************************************************************************/   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void prvLCDTaskLine1( void *pvParameters )
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	#define		RIGHT_TO_LEFT	0
 | 
					 | 
				
			||||||
	#define		LEFT_TO_RIGHT	1
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	struct _LCD_Params *Local_Params = (struct _LCD_Params*)pvParameters;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	char str_lcd[9];
 | 
					 | 
				
			||||||
	unsigned short pos = 0;
 | 
					 | 
				
			||||||
	unsigned char Direction = RIGHT_TO_LEFT;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	for(;;)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		vTaskDelay( Local_Params->Speed / portTICK_RATE_MS );		
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		xSemaphoreTake( LCD_Mutex, portMAX_DELAY );
 | 
					 | 
				
			||||||
		DisplayString(Local_Params->Line, str_lcd);
 | 
					 | 
				
			||||||
		xSemaphoreGive( LCD_Mutex );
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if(Direction == RIGHT_TO_LEFT)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			pos++;
 | 
					 | 
				
			||||||
			if( pos == strlen(datastring) - 7)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				Direction = LEFT_TO_RIGHT;
 | 
					 | 
				
			||||||
				pos--;				
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			pos--;
 | 
					 | 
				
			||||||
			if( pos == 0 )
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				Direction = RIGHT_TO_LEFT;				
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}			
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void prvLCDTaskLine2( void *pvParameters )
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	#define		RIGHT_TO_LEFT	0
 | 
					 | 
				
			||||||
	#define		LEFT_TO_RIGHT	1
 | 
					 | 
				
			||||||
	#define		RUNNING			0
 | 
					 | 
				
			||||||
	#define		STOPPED			1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	struct _LCD_Params *Local_Params = (struct _LCD_Params*)pvParameters;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	char str_lcd[9];
 | 
					 | 
				
			||||||
	unsigned short pos = 0;
 | 
					 | 
				
			||||||
	unsigned char Direction = RIGHT_TO_LEFT;
 | 
					 | 
				
			||||||
	unsigned char Status = RUNNING;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	unsigned char QueueData;
 | 
					 | 
				
			||||||
	portTickType Delay = ( Local_Params->Speed / portTICK_RATE_MS );
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	for(;;)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
//		vTaskDelay( Local_Params->Speed / portTICK_RATE_MS );		
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if( xQueueReceive (SwitchQueue, &QueueData, Delay) != pdPASS )
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
			xSemaphoreTake( LCD_Mutex, portMAX_DELAY );
 | 
					 | 
				
			||||||
			DisplayString(Local_Params->Line, str_lcd);
 | 
					 | 
				
			||||||
			xSemaphoreGive( LCD_Mutex );
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			if(Direction == RIGHT_TO_LEFT)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				pos++;
 | 
					 | 
				
			||||||
				if( pos == strlen(datastring) - 7)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					Direction = LEFT_TO_RIGHT;
 | 
					 | 
				
			||||||
					pos--;				
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			else
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				pos--;
 | 
					 | 
				
			||||||
				if( pos == 0 )
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					Direction = RIGHT_TO_LEFT;				
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}			
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			if(QueueData == 0x02)	// stop/start
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				if(Delay != portMAX_DELAY)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					Delay = portMAX_DELAY;
 | 
					 | 
				
			||||||
					Status = STOPPED;
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				else
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					Delay = ( Local_Params->Speed / portTICK_RATE_MS );
 | 
					 | 
				
			||||||
					Status = RUNNING;
 | 
					 | 
				
			||||||
				}				
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			if(QueueData == 0x01)	// RIGHT or shift back
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				if(Status == STOPPED)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					if(pos != 0)
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						pos--;
 | 
					 | 
				
			||||||
											
 | 
					 | 
				
			||||||
						strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
						xSemaphoreTake( LCD_Mutex, portMAX_DELAY );
 | 
					 | 
				
			||||||
						DisplayString(Local_Params->Line, str_lcd);
 | 
					 | 
				
			||||||
						xSemaphoreGive( LCD_Mutex );
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			if(QueueData == 0x03)	// LEFT or shift forward
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				if(Status == STOPPED)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					if(pos != strlen(datastring) - 7)
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						pos++;
 | 
					 | 
				
			||||||
						strncpy(str_lcd, &Local_Params->ptr_str[pos], 8);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
						xSemaphoreTake( LCD_Mutex, portMAX_DELAY );
 | 
					 | 
				
			||||||
						DisplayString(Local_Params->Line, str_lcd);
 | 
					 | 
				
			||||||
						xSemaphoreGive( LCD_Mutex );
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -89,32 +89,32 @@
 | 
				
			||||||
"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" 
 | 
					"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "16777216" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "16777216" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "768" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "768" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "000000000000889C" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "000000000000E130" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000014" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "000000000000889C" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000E788" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000004030001" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF80000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF881E1" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "000000000000DEE4" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000FFF8177C" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "1234567887650000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "1234567887650000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "1234567887650000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "000000000000DEE4" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000010" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "0000000000000000" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "00000000A5A5A5A5" 
 | 
				
			||||||
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "25" 
 | 
					"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "25" 
 | 
				
			||||||
"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" 
 | 
					"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" 
 | 
				
			||||||
"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" 
 | 
					"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" 
 | 
				
			||||||
| 
						 | 
					@ -487,13 +487,13 @@
 | 
				
			||||||
"Help" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" 
 | 
					"Help" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" 
 | 
				
			||||||
"QzROM" "TOOLBAR 0" 59419 4 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" 
 | 
					"QzROM" "TOOLBAR 0" 59419 4 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 936 558 9 0 "" "0.0" 
 | 
					"{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 936 558 9 0 "" "0.0" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{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" 
 | 
					"{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" 
 | 
				
			||||||
"{WK_00000001_REGISTERS}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 1 "1.00" 300 0 0 350 200 2065 0 "" "0.0" 
 | 
					"{WK_00000001_REGISTERS}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 1 "1.00" 300 0 0 350 200 2065 0 "" "0.0" 
 | 
				
			||||||
"{WK_00000001_STACKTRACE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.50" 277 0 0 350 200 2065 0 "" "0.0" 
 | 
					"{WK_00000001_STACKTRACE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.50" 277 0 0 350 200 2065 0 "" "0.0" 
 | 
				
			||||||
"{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "0.50" 300 0 0 1040 307 17 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811" "0.0" 
 | 
					"{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "0.50" 300 0 0 1040 307 17 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811" "0.0" 
 | 
				
			||||||
| 
						 | 
					@ -527,10 +527,8 @@
 | 
				
			||||||
"{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" 
 | 
					"{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" 
 | 
				
			||||||
"{WK_TB00000013_SYMBOL} TOOLBAR 0" 
 | 
					"{WK_TB00000013_SYMBOL} TOOLBAR 0" 
 | 
				
			||||||
"{WK_TB00000011_CPU} TOOLBAR 0" 
 | 
					"{WK_TB00000011_CPU} TOOLBAR 0" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" 
 | 
					 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 
 | 
					"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" 
 | 
				
			||||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" 
 | 
					 | 
				
			||||||
[TARGET_NAME]
 | 
					[TARGET_NAME]
 | 
				
			||||||
"RX E1/E20 SYSTEM" "" 0 
 | 
					"RX E1/E20 SYSTEM" "" 0 
 | 
				
			||||||
[STATUSBAR_STATEINFO_VD1]
 | 
					[STATUSBAR_STATEINFO_VD1]
 | 
				
			||||||
| 
						 | 
					@ -561,7 +559,7 @@
 | 
				
			||||||
[DEBUGGER_OPTIONS]
 | 
					[DEBUGGER_OPTIONS]
 | 
				
			||||||
"" 
 | 
					"" 
 | 
				
			||||||
[DOWNLOAD_MODULES]
 | 
					[DOWNLOAD_MODULES]
 | 
				
			||||||
"$(PROJDIR)\Debug_with_optimisation\RTOSDemo.abs" 0 "Elf/Dwarf2" 0 0 1 0 
 | 
					"$(PROJDIR)\$(CONFIGNAME)\RTOSDemo.abs" 0 "Elf/Dwarf2" 0 0 1 0 
 | 
				
			||||||
[CONNECT_ON_GO]
 | 
					[CONNECT_ON_GO]
 | 
				
			||||||
"FALSE" 
 | 
					"FALSE" 
 | 
				
			||||||
[DOWNLOAD_MODULES_AFTER_BUILD]
 | 
					[DOWNLOAD_MODULES_AFTER_BUILD]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										60
									
								
								Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,60 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ***************************************************************************
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    FreeRTOS tutorial books are available in pdf and paperback.        *
 | 
				
			||||||
 | 
					     *    Complete, revised, and edited pdf reference manuals are also       *
 | 
				
			||||||
 | 
					     *    available.                                                         *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    Purchasing FreeRTOS documentation will not only help you, by       *
 | 
				
			||||||
 | 
					     *    ensuring you get running as quickly as possible and with an        *
 | 
				
			||||||
 | 
					     *    in-depth knowledge of how to use FreeRTOS, it will also help       *
 | 
				
			||||||
 | 
					     *    the FreeRTOS project to continue with its mission of providing     *
 | 
				
			||||||
 | 
					     *    professional grade, cross platform, de facto standard solutions    *
 | 
				
			||||||
 | 
					     *    for microcontrollers - completely free of charge!                  *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					     *    Thank you for using FreeRTOS, and thank you for your support!      *
 | 
				
			||||||
 | 
					     *                                                                       *
 | 
				
			||||||
 | 
					    ***************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    This file is part of the FreeRTOS distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FreeRTOS is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					    the terms of the GNU General Public License (version 2) as published by the
 | 
				
			||||||
 | 
					    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
 | 
				
			||||||
 | 
					    >>>NOTE<<< The modification to the GPL is included to allow you to
 | 
				
			||||||
 | 
					    distribute a combined work that includes FreeRTOS without being obliged to
 | 
				
			||||||
 | 
					    provide the source code for proprietary components outside of the FreeRTOS
 | 
				
			||||||
 | 
					    kernel.  FreeRTOS is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 | 
				
			||||||
 | 
					    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 | 
				
			||||||
 | 
					    more details. You should have received a copy of the GNU General Public
 | 
				
			||||||
 | 
					    License and the FreeRTOS license exception along with FreeRTOS; if not it
 | 
				
			||||||
 | 
					    can be viewed here: http://www.freertos.org/a00114.html and also obtained
 | 
				
			||||||
 | 
					    by writing to Richard Barry, contact details for whom are available on the
 | 
				
			||||||
 | 
					    FreeRTOS WEB site.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    1 tab == 4 spaces!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.FreeRTOS.org - Documentation, latest information, license and
 | 
				
			||||||
 | 
					    contact details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.SafeRTOS.com - A version that is certified for use in safety
 | 
				
			||||||
 | 
					    critical systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http://www.OpenRTOS.com - Commercial support, development, porting,
 | 
				
			||||||
 | 
					    licensing and training services.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef BUTTON_AND_LCD_H
 | 
				
			||||||
 | 
					#define BUTTON_AND_LCD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void vStartButtonAndLCDDemo( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,10 +35,6 @@ struct _LCD_Params {
 | 
				
			||||||
	char *ptr_str;
 | 
						char *ptr_str;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void prvLCDTaskLine1( void *pvParameters );
 | 
					 | 
				
			||||||
void prvLCDTaskLine2( void *pvParameters );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* RS Register Select pin */
 | 
					/* RS Register Select pin */
 | 
				
			||||||
#define RS_PIN			PORTJ.PODR.BIT.B1
 | 
					#define RS_PIN			PORTJ.PODR.BIT.B1
 | 
				
			||||||
/* Display Enable pin */  
 | 
					/* Display Enable pin */  
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,8 +92,10 @@ static void prvQueueSendTask( void *pvParameters );
 | 
				
			||||||
static xQueueHandle xQueue = NULL;
 | 
					static xQueueHandle xQueue = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* This variable is not used by this simple Blinky example.  It is defined 
 | 
					/* This variable is not used by this simple Blinky example.  It is defined 
 | 
				
			||||||
purely to allow the project to link as it is used by the full project. */
 | 
					purely to allow the project to link as it is used by the full build 
 | 
				
			||||||
 | 
					configuration. */
 | 
				
			||||||
volatile unsigned long ulHighFrequencyTickCount = 0UL;
 | 
					volatile unsigned long ulHighFrequencyTickCount = 0UL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void main(void)
 | 
					void main(void)
 | 
				
			||||||
| 
						 | 
					@ -120,9 +122,9 @@ extern void HardwareSetup( void );
 | 
				
			||||||
		vTaskStartScheduler();
 | 
							vTaskStartScheduler();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/* If all is well we will never reach here as the scheduler will now be
 | 
						/* If all is well the next line of code will not be reached as the scheduler 
 | 
				
			||||||
	running.  If we do reach here then it is likely that there was insufficient
 | 
						will be	running.  If the next line is reached then it is likely that there was 
 | 
				
			||||||
	heap available for the idle task to be created. */
 | 
						insufficient heap available for the idle task to be created. */
 | 
				
			||||||
	for( ;; );
 | 
						for( ;; );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
| 
						 | 
					@ -144,8 +146,10 @@ const unsigned long ulValueToSend = 100UL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Send to the queue - causing the queue receive task to flash its LED.  0
 | 
							/* Send to the queue - causing the queue receive task to flash its LED.  0
 | 
				
			||||||
		is used so the send does not block - it shouldn't need to as the queue
 | 
							is used so the send does not block - it shouldn't need to as the queue
 | 
				
			||||||
		should always be empty here. */
 | 
							should always be empty here (it should always be empty because the task
 | 
				
			||||||
		xQueueSend( xQueue, &ulValueToSend, 0 );
 | 
							removing items from the queue has a higher priority than the task adding
 | 
				
			||||||
 | 
							things to the queue). */
 | 
				
			||||||
 | 
							xQueueSend( xQueue, &ulValueToSend, 0UL );
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
| 
						 | 
					@ -171,6 +175,11 @@ unsigned long ulReceivedValue;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* A callback function named vApplicationSetupTimerInterrupt() must be defined
 | 
				
			||||||
 | 
					to configure a tick interrupt source, and configTICK_VECTOR set in 
 | 
				
			||||||
 | 
					FreeRTOSConfig.h to install the tick interrupt handler in the correct position
 | 
				
			||||||
 | 
					in the vector table.  This example uses a compare match timer.  It can be
 | 
				
			||||||
 | 
					into any FreeRTOS project, provided the same compare match timer is available. */
 | 
				
			||||||
void vApplicationSetupTimerInterrupt( void )
 | 
					void vApplicationSetupTimerInterrupt( void )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* Enable compare match timer 0. */
 | 
						/* Enable compare match timer 0. */
 | 
				
			||||||
| 
						 | 
					@ -196,24 +205,28 @@ void vApplicationSetupTimerInterrupt( void )
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* This function is explained by the comments above its prototype at the top
 | 
					/* If configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h, then this
 | 
				
			||||||
of this file. */
 | 
					function will be called if pvPortMalloc() returns NULL because it has exhausted
 | 
				
			||||||
 | 
					the available FreeRTOS heap space.  See http://www.freertos.org/a00111.html. */
 | 
				
			||||||
void vApplicationMallocFailedHook( void )
 | 
					void vApplicationMallocFailedHook( void )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	for( ;; );
 | 
						for( ;; );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* This function is explained by the comments above its prototype at the top
 | 
					/* If configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2 in 
 | 
				
			||||||
of this file. */
 | 
					FreeRTOSConfig.h, then this function will be called if a task overflows its 
 | 
				
			||||||
 | 
					stack space.  See 
 | 
				
			||||||
 | 
					http://www.freertos.org/Stacks-and-stack-overflow-checking.html. */
 | 
				
			||||||
void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )
 | 
					void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	for( ;; );
 | 
						for( ;; );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* This function is explained by the comments above its prototype at the top
 | 
					/* If configUSE_IDLE_HOOK is set to 1 in FreeRTOSConfig.h, then this function
 | 
				
			||||||
of this file. */
 | 
					will be called on each iteration of the idle task.  See 
 | 
				
			||||||
 | 
					http://www.freertos.org/a00016.html */
 | 
				
			||||||
void vApplicationIdleHook( void )
 | 
					void vApplicationIdleHook( void )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* Just to prevent the variable getting optimised away. */
 | 
						/* Just to prevent the variable getting optimised away. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,69 +54,66 @@
 | 
				
			||||||
/* ****************************************************************************
 | 
					/* ****************************************************************************
 | 
				
			||||||
 * This project includes a lot of tasks and tests and is therefore complex.
 | 
					 * This project includes a lot of tasks and tests and is therefore complex.
 | 
				
			||||||
 * If you would prefer a much simpler project to get started with then select
 | 
					 * If you would prefer a much simpler project to get started with then select
 | 
				
			||||||
 * the 'Blinky' build configuration within the HEW IDE.
 | 
					 * the 'Blinky' build configuration within the HEW IDE.  The Blinky build
 | 
				
			||||||
 | 
					 * configuration uses main-blinky.c instead of main-full.c.
 | 
				
			||||||
 * ****************************************************************************
 | 
					 * ****************************************************************************
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Creates all the demo application tasks, then starts the scheduler.  The web
 | 
					 * Creates all the demo application tasks, then starts the scheduler.  The web
 | 
				
			||||||
 * documentation provides more details of the standard demo application tasks,
 | 
					 * documentation provides more details of the standard demo application tasks,
 | 
				
			||||||
 * which provide no particular functionality but do provide a good example of
 | 
					 * which provide no particular functionality but do provide a good example of
 | 
				
			||||||
 * how to use the FreeRTOS API.  The tasks defined in flop.c are included in the
 | 
					 * how to use the FreeRTOS API.
 | 
				
			||||||
 * set of standard demo tasks to ensure the floating point unit gets some
 | 
					 | 
				
			||||||
 * exercise.
 | 
					 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * In addition to the standard demo tasks, the following tasks and tests are
 | 
					 * In addition to the standard demo tasks, the following tasks and tests are
 | 
				
			||||||
 * defined and/or created within this file:
 | 
					 * defined and/or created within this file:
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Webserver ("uIP") task - This serves a number of dynamically generated WEB
 | 
					 * "Reg test" tasks - These fill the registers with known values, then 
 | 
				
			||||||
 * pages to a standard WEB browser.  The IP and MAC addresses are configured by
 | 
					 * repeatedly check that each register still contains its expected value for 
 | 
				
			||||||
 * constants defined at the bottom of FreeRTOSConfig.h.  Use either a standard
 | 
					 * the lifetime of the tasks.  Each task uses different values.  The tasks run 
 | 
				
			||||||
 * Ethernet cable to connect through a hug, or a cross over (point to point)
 | 
					 * with very low priority so get preempted very frequently.  A check variable 
 | 
				
			||||||
 * cable to connect directly.  Ensure the IP address used is compatible with the
 | 
					 * is incremented on each iteration of the test loop.  A register containing an 
 | 
				
			||||||
 * IP address of the machine running the browser - the easiest way to achieve
 | 
					 * unexpected value is indicative of an error in the context switching 
 | 
				
			||||||
 * this is to ensure the first three octets of the IP addresses are the same.
 | 
					 * mechanism and will result in a branch to a null loop - which in turn will 
 | 
				
			||||||
 | 
					 * prevent the check variable from incrementing any further and allow the check 
 | 
				
			||||||
 | 
					 * timer (described below) to determine that an error has occurred.  The nature 
 | 
				
			||||||
 | 
					 * of the reg test tasks necessitates that they are written in assembly code.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * "Reg test" tasks - These fill the registers with known values, then check
 | 
					 * "Check Timer" and Callback Function - The check timer period is initially 
 | 
				
			||||||
 * that each register still contains its expected value.  Each task uses
 | 
					 * set to five seconds.  The check timer callback function checks that all the 
 | 
				
			||||||
 * different values.  The tasks run with very low priority so get preempted
 | 
					 * standard demo tasks are not only still executing, but are executing without 
 | 
				
			||||||
 * very frequently.  A check variable is incremented on each iteration of the
 | 
					 * reporting any errors.  If the check timer discovers that a task has either 
 | 
				
			||||||
 * test loop.  A register containing an unexpected value is indicative of an
 | 
					 * stalled, or reported an error, then it changes its own period from the 
 | 
				
			||||||
 * error in the context switching mechanism and will result in a branch to a
 | 
					 * initial three seconds, to just 200ms.  The check timer callback function 
 | 
				
			||||||
 * null loop - which in turn will prevent the check variable from incrementing
 | 
					 * also toggles LED 3 each time it is called.  This provides a visual 
 | 
				
			||||||
 * any further and allow the check task (described below) to determine that an
 | 
					 * indication of the system status:  If the LED toggles every five seconds, 
 | 
				
			||||||
 * error has occurred.  The nature of the reg test tasks necessitates that they
 | 
					 * then no issues have been discovered.  If the LED toggles every 200ms, then 
 | 
				
			||||||
 * are written in assembly code.
 | 
					 * an issue has been discovered with at least one task.
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * "Check" task - This only executes every five seconds but has a high priority
 | 
					 | 
				
			||||||
 * to ensure it gets processor time.  Its main function is to check that all the
 | 
					 | 
				
			||||||
 * standard demo tasks are still operational.  While no errors have been
 | 
					 | 
				
			||||||
 * discovered the check task will toggle LED 5 every 5 seconds - the toggle
 | 
					 | 
				
			||||||
 * rate increasing to 200ms being a visual indication that at least one task has
 | 
					 | 
				
			||||||
 * reported unexpected behaviour.
 | 
					 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * "High frequency timer test" - A high frequency periodic interrupt is
 | 
					 * "High frequency timer test" - A high frequency periodic interrupt is
 | 
				
			||||||
 * generated using a timer - the interrupt is assigned a priority above
 | 
					 * generated using a timer - the interrupt is assigned a priority above
 | 
				
			||||||
 * configMAX_SYSCALL_INTERRUPT_PRIORITY so should not be effected by anything
 | 
					 * configMAX_SYSCALL_INTERRUPT_PRIORITY, so will not be effected by anything
 | 
				
			||||||
 * the kernel is doing.  The frequency and priority of the interrupt, in
 | 
					 * the kernel is doing.  The frequency and priority of the interrupt, in
 | 
				
			||||||
 * combination with other standard tests executed in this demo, should result
 | 
					 * combination with other standard tests executed in this demo, will result
 | 
				
			||||||
 * in interrupts nesting at least 3 and probably 4 deep.  This test is only
 | 
					 * in interrupts nesting at least 3 and probably 4 deep.  This test is only
 | 
				
			||||||
 * included in build configurations that have the optimiser switched on.  In
 | 
					 * included in build configurations that have the optimiser switched on.
 | 
				
			||||||
 * optimised builds the count of high frequency ticks is used as the time base
 | 
					 | 
				
			||||||
 * for the run time stats.
 | 
					 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * *NOTE 1* If LED5 is toggling every 5 seconds then all the demo application
 | 
					 * "Button and LCD test" - This creates two tasks.  The first simply scrolls
 | 
				
			||||||
 * tasks are executing as expected and no errors have been reported in any
 | 
					 * a message back and forth along the top line of the LCD display.  If no
 | 
				
			||||||
 * tasks.  The toggle rate increasing to 200ms indicates that at least one task
 | 
					 * buttons are pushed, the second also scrolls a message back and forth, but
 | 
				
			||||||
 * has reported unexpected behaviour.
 | 
					 * along the bottom line of the display.  The automatic scrolling of the second
 | 
				
			||||||
 | 
					 * line of the display can be started and stopped using button SW2.  Once 
 | 
				
			||||||
 | 
					 * stopped it can then be manually nudged left using button SW3, and manually
 | 
				
			||||||
 | 
					 * nudged right using button SW1.  Button pushes generate an interrupt, and the
 | 
				
			||||||
 | 
					 * interrupt communicates with the task using a queue.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * *NOTE 2* vApplicationSetupTimerInterrupt() is called by the kernel to let
 | 
					 * *NOTE 1* vApplicationSetupTimerInterrupt() is called by the kernel to let
 | 
				
			||||||
 * the application set up a timer to generate the tick interrupt.  In this
 | 
					 * the application set up a timer to generate the tick interrupt.  In this
 | 
				
			||||||
 * example a compare match timer is used for this purpose.
 | 
					 * example a compare match timer is used for this purpose.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * *NOTE 3* The CPU must be in Supervisor mode when the scheduler is started.
 | 
					 * *NOTE 2* The CPU must be in Supervisor mode when the scheduler is started.
 | 
				
			||||||
 * The PowerON_Reset_PC() supplied in resetprg.c with this demo has
 | 
					 * The PowerON_Reset_PC() supplied in resetprg.c with this demo has
 | 
				
			||||||
 * Change_PSW_PM_to_UserMode() commented out to ensure this is the case.
 | 
					 * Change_PSW_PM_to_UserMode() commented out to ensure this is the case.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * *NOTE 4* The IntQueue common demo tasks test interrupt nesting and make use
 | 
					 * *NOTE 3* The IntQueue common demo tasks test interrupt nesting and make use
 | 
				
			||||||
 * of all the 8bit timers (as two cascaded 16bit units).
 | 
					 * of all the 8bit timers (as two cascaded 16bit units).
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,6 +126,7 @@
 | 
				
			||||||
/* Kernel includes. */
 | 
					/* Kernel includes. */
 | 
				
			||||||
#include "FreeRTOS.h"
 | 
					#include "FreeRTOS.h"
 | 
				
			||||||
#include "task.h"
 | 
					#include "task.h"
 | 
				
			||||||
 | 
					#include "timers.h"
 | 
				
			||||||
#include "semphr.h"
 | 
					#include "semphr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Standard demo includes. */
 | 
					/* Standard demo includes. */
 | 
				
			||||||
| 
						 | 
					@ -145,43 +143,42 @@
 | 
				
			||||||
#include "QPeek.h"
 | 
					#include "QPeek.h"
 | 
				
			||||||
#include "recmutex.h"
 | 
					#include "recmutex.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Demo specific tasks. */
 | 
				
			||||||
 | 
					#include "ButtonAndLCD.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Peripheral includes. */
 | 
					/* Peripheral includes. */
 | 
				
			||||||
#include "lcd.h"
 | 
					#include "lcd.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Values that are passed into the reg test tasks using the task parameter.  The
 | 
					/* Values that are passed into the reg test tasks using the task parameter.  
 | 
				
			||||||
tasks check that the values are passed in correctly. */
 | 
					The tasks check that the values are passed in correctly. */
 | 
				
			||||||
#define mainREG_TEST_1_PARAMETER	( 0x12121212UL )
 | 
					#define mainREG_TEST_1_PARAMETER	( 0x12121212UL )
 | 
				
			||||||
#define mainREG_TEST_2_PARAMETER	( 0x12345678UL )
 | 
					#define mainREG_TEST_2_PARAMETER	( 0x12345678UL )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Priorities at which the tasks are created. */
 | 
					/* Priorities at which the tasks are created. */
 | 
				
			||||||
#define mainCHECK_TASK_PRIORITY		( configMAX_PRIORITIES - 1 )
 | 
					 | 
				
			||||||
#define mainQUEUE_POLL_PRIORITY		( tskIDLE_PRIORITY + 1 )
 | 
					#define mainQUEUE_POLL_PRIORITY		( tskIDLE_PRIORITY + 1 )
 | 
				
			||||||
#define mainSEM_TEST_PRIORITY		( tskIDLE_PRIORITY + 1 )
 | 
					#define mainSEM_TEST_PRIORITY		( tskIDLE_PRIORITY + 1 )
 | 
				
			||||||
#define mainBLOCK_Q_PRIORITY		( tskIDLE_PRIORITY + 2 )
 | 
					#define mainBLOCK_Q_PRIORITY		( tskIDLE_PRIORITY + 2 )
 | 
				
			||||||
#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )
 | 
					#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )
 | 
				
			||||||
#define mainFLASH_TASK_PRIORITY		( tskIDLE_PRIORITY + 1 )
 | 
					#define mainFLASH_TASK_PRIORITY		( tskIDLE_PRIORITY + 1 )
 | 
				
			||||||
#define mainuIP_TASK_PRIORITY		( tskIDLE_PRIORITY + 2 )
 | 
					 | 
				
			||||||
#define mainINTEGER_TASK_PRIORITY   ( tskIDLE_PRIORITY )
 | 
					#define mainINTEGER_TASK_PRIORITY   ( tskIDLE_PRIORITY )
 | 
				
			||||||
#define mainGEN_QUEUE_TASK_PRIORITY	( tskIDLE_PRIORITY )
 | 
					#define mainGEN_QUEUE_TASK_PRIORITY	( tskIDLE_PRIORITY )
 | 
				
			||||||
#define mainFLOP_TASK_PRIORITY		( tskIDLE_PRIORITY )
 | 
					#define mainFLOP_TASK_PRIORITY		( tskIDLE_PRIORITY )
 | 
				
			||||||
#define mainLCD_TASK_PRIORITY		( tskIDLE_PRIORITY + 1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* The WEB server uses string handling functions, which in turn use a bit more
 | 
					 | 
				
			||||||
stack than most of the other tasks. */
 | 
					 | 
				
			||||||
#define mainuIP_STACK_SIZE			( configMINIMAL_STACK_SIZE * 3 )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The LED toggled by the check task. */
 | 
					/* The LED toggled by the check task. */
 | 
				
			||||||
#define mainCHECK_LED				( 3 )
 | 
					#define mainCHECK_LED				( 3 )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The rate at which mainCHECK_LED will toggle when all the tasks are running
 | 
					/* The period at which the check timer will expire, in ms, provided no errors
 | 
				
			||||||
without error.  Controlled by the check task as described at the top of this
 | 
					have been reported by any of the standard demo tasks.  ms are converted to the
 | 
				
			||||||
file. */
 | 
					equivalent in ticks using the portTICK_RATE_MS constant. */
 | 
				
			||||||
#define mainNO_ERROR_CYCLE_TIME		( 5000 / portTICK_RATE_MS )
 | 
					#define mainCHECK_TIMER_PERIOD_MS			( 5000UL / portTICK_RATE_MS )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The rate at which mainCHECK_LED will toggle when an error has been reported
 | 
					/* The period at which the check timer will expire, in ms, if an error has been
 | 
				
			||||||
by at least one task.  Controlled by the check task as described at the top of
 | 
					reported in one of the standard demo tasks.  ms are converted to the equivalent
 | 
				
			||||||
this file. */
 | 
					in ticks using the portTICK_RATE_MS constant. */
 | 
				
			||||||
#define mainERROR_CYCLE_TIME		( 200 / portTICK_RATE_MS )
 | 
					#define mainERROR_CHECK_TIMER_PERIOD_MS 	( 200UL / portTICK_RATE_MS )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* A block time of zero simple means "Don't Block". */
 | 
				
			||||||
 | 
					#define mainDONT_BLOCK				( 0UL )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * vApplicationMallocFailedHook() will only be called if
 | 
					 * vApplicationMallocFailedHook() will only be called if
 | 
				
			||||||
| 
						 | 
					@ -229,9 +226,9 @@ static void prvRegTest1Implementation( void );
 | 
				
			||||||
static void prvRegTest2Implementation( void );
 | 
					static void prvRegTest2Implementation( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The check task as described at the top of this file.
 | 
					 * The check timer callback function, as described at the top of this file.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static void prvCheckTask( void *pvParameters );
 | 
					static void prvCheckTimerCallback( xTimerHandle xTimer );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
| 
						 | 
					@ -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. */
 | 
					stops incrementing then it is likely that its associate task has stalled. */
 | 
				
			||||||
unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;
 | 
					unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The status message that is displayed at the bottom of the "task stats" web
 | 
					/* The check timer.  This uses prvCheckTimerCallback() as its callback
 | 
				
			||||||
page, which is served by the uIP task.  This will report any errors picked up
 | 
					function. */
 | 
				
			||||||
by the reg test task. */
 | 
					static xTimerHandle xCheckTimer = NULL;
 | 
				
			||||||
const char *pcStatusMessage = "All tasks executing without error.";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
extern void SwitchSetup(void);
 | 
					 | 
				
			||||||
extern xQueueHandle SwitchQueue;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
extern xSemaphoreHandle LCD_Mutex;
 | 
					 | 
				
			||||||
extern struct _LCD_Params Line1;
 | 
					 | 
				
			||||||
extern struct _LCD_Params Line2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -266,7 +252,6 @@ extern void HardwareSetup( void );
 | 
				
			||||||
	/* Renesas provided CPU configuration routine.  The clocks are configured in
 | 
						/* Renesas provided CPU configuration routine.  The clocks are configured in
 | 
				
			||||||
	here. */
 | 
						here. */
 | 
				
			||||||
	HardwareSetup();	
 | 
						HardwareSetup();	
 | 
				
			||||||
	SwitchSetup();      
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Turn all LEDs off. */
 | 
						/* Turn all LEDs off. */
 | 
				
			||||||
	vParTestInitialise();
 | 
						vParTestInitialise();
 | 
				
			||||||
| 
						 | 
					@ -275,17 +260,8 @@ extern void HardwareSetup( void );
 | 
				
			||||||
	xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );
 | 
						xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );
 | 
				
			||||||
	xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );
 | 
						xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* The button and LCD tasks, as described at the top of this file. */
 | 
				
			||||||
	/* LCD task */
 | 
						vStartButtonAndLCDDemo();
 | 
				
			||||||
	LCD_Mutex = xSemaphoreCreateMutex();
 | 
					 | 
				
			||||||
	xTaskCreate( prvLCDTaskLine1, "LCD1", configMINIMAL_STACK_SIZE * 3, ( void *)&Line1, mainLCD_TASK_PRIORITY, NULL );
 | 
					 | 
				
			||||||
	xTaskCreate( prvLCDTaskLine2, "LCD2", configMINIMAL_STACK_SIZE * 3, ( void *)&Line2, mainLCD_TASK_PRIORITY + 1, NULL );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Switch Queue to handle switch presses */
 | 
					 | 
				
			||||||
	SwitchQueue = xQueueCreate(32, 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Start the check task as described at the top of this file. */
 | 
					 | 
				
			||||||
	xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE * 3, NULL, mainCHECK_TASK_PRIORITY, NULL );
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Create the standard demo tasks. */
 | 
						/* Create the standard demo tasks. */
 | 
				
			||||||
	vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
 | 
						vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
 | 
				
			||||||
| 
						 | 
					@ -299,12 +275,26 @@ extern void HardwareSetup( void );
 | 
				
			||||||
	vStartRecursiveMutexTasks();
 | 
						vStartRecursiveMutexTasks();
 | 
				
			||||||
	vStartInterruptQueueTasks();
 | 
						vStartInterruptQueueTasks();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* The suicide tasks must be created last as they need to know how many
 | 
						/* The suicide tasks must be created last as they need to know how many
 | 
				
			||||||
	tasks were running prior to their creation in order to ascertain whether
 | 
						tasks were running prior to their creation in order to ascertain whether
 | 
				
			||||||
	or not the correct/expected number of tasks are running at any given time. */
 | 
						or not the correct/expected number of tasks are running at any given time. */
 | 
				
			||||||
	vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );
 | 
						vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Create the software timer that performs the 'check' functionality,
 | 
				
			||||||
 | 
						as described at the top of this file. */
 | 
				
			||||||
 | 
						xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */
 | 
				
			||||||
 | 
													( mainCHECK_TIMER_PERIOD_MS ),		/* The timer period, in this case 5000ms (5s). */
 | 
				
			||||||
 | 
													pdTRUE,								/* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
 | 
				
			||||||
 | 
													( void * ) 0,						/* The ID is not used, so can be set to anything. */
 | 
				
			||||||
 | 
													prvCheckTimerCallback				/* The callback function that inspects the status of all the other tasks. */
 | 
				
			||||||
 | 
												  );
 | 
				
			||||||
 | 
												  
 | 
				
			||||||
 | 
						configASSERT( xCheckTimer );
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/* Start the check timer.  It will actually start when the scheduler is
 | 
				
			||||||
 | 
						started. */
 | 
				
			||||||
 | 
						xTimerStart( xCheckTimer, mainDONT_BLOCK );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Start the tasks running. */
 | 
						/* Start the tasks running. */
 | 
				
			||||||
	vTaskStartScheduler();
 | 
						vTaskStartScheduler();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -315,104 +305,85 @@ extern void HardwareSetup( void );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void prvCheckTask( void *pvParameters )
 | 
					static void prvCheckTimerCallback( xTimerHandle xTimer )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;
 | 
				
			||||||
static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;
 | 
					static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;
 | 
				
			||||||
portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;
 | 
					 | 
				
			||||||
extern void vSetupHighFrequencyTimer( void );
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* If this is being executed then the kernel has been started.  Start the high
 | 
						/* Check the standard demo tasks are running without error. */
 | 
				
			||||||
	frequency timer test as described at the top of this file.  This is only
 | 
						if( xAreGenericQueueTasksStillRunning() != pdTRUE )
 | 
				
			||||||
	included in the optimised build configuration - otherwise it takes up too much
 | 
					 | 
				
			||||||
	CPU time and can disrupt other tests. */
 | 
					 | 
				
			||||||
	#ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST
 | 
					 | 
				
			||||||
		vSetupHighFrequencyTimer();
 | 
					 | 
				
			||||||
	#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Initialise xNextWakeTime - this only needs to be done once. */
 | 
					 | 
				
			||||||
	xNextWakeTime = xTaskGetTickCount();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for( ;; )
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		/* Place this task in the blocked state until it is time to run again. */
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );
 | 
						}
 | 
				
			||||||
		
 | 
						else if( xAreQueuePeekTasksStillRunning() != pdTRUE )
 | 
				
			||||||
		/* Check the standard demo tasks are running without error. */
 | 
						{
 | 
				
			||||||
		if( xAreGenericQueueTasksStillRunning() != pdTRUE )
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		{
 | 
						}
 | 
				
			||||||
			/* Increase the rate at which this task cycles, which will increase the
 | 
						else if( xAreBlockingQueuesStillRunning() != pdTRUE )
 | 
				
			||||||
			rate at which mainCHECK_LED flashes to give visual feedback that an error
 | 
						{
 | 
				
			||||||
			has occurred. */
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
						}
 | 
				
			||||||
			pcStatusMessage = "Error: GenQueue";
 | 
						else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
 | 
				
			||||||
		}
 | 
						{
 | 
				
			||||||
		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		{
 | 
						}
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
						else if( xAreSemaphoreTasksStillRunning() != pdTRUE )
 | 
				
			||||||
			pcStatusMessage = "Error: QueuePeek";
 | 
						{
 | 
				
			||||||
		}
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		else if( xAreBlockingQueuesStillRunning() != pdTRUE )
 | 
						}
 | 
				
			||||||
		{
 | 
						else if( xArePollingQueuesStillRunning() != pdTRUE )
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
						{
 | 
				
			||||||
			pcStatusMessage = "Error: BlockQueue";
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		}
 | 
						}
 | 
				
			||||||
		else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
 | 
						else if( xIsCreateTaskStillRunning() != pdTRUE )
 | 
				
			||||||
		{
 | 
						{
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
			pcStatusMessage = "Error: BlockTime";
 | 
						}
 | 
				
			||||||
		}
 | 
						else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
 | 
				
			||||||
		else if( xAreSemaphoreTasksStillRunning() != pdTRUE )
 | 
						{
 | 
				
			||||||
		{
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
						}
 | 
				
			||||||
			pcStatusMessage = "Error: SemTest";
 | 
						else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
 | 
				
			||||||
		}
 | 
						{
 | 
				
			||||||
		else if( xArePollingQueuesStillRunning() != pdTRUE )
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		{
 | 
						}
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
						else if( xAreIntQueueTasksStillRunning() != pdPASS )
 | 
				
			||||||
			pcStatusMessage = "Error: PollQueue";
 | 
						{
 | 
				
			||||||
		}
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
		else if( xIsCreateTaskStillRunning() != pdTRUE )
 | 
						}
 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
					 | 
				
			||||||
			pcStatusMessage = "Error: Death";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
					 | 
				
			||||||
			pcStatusMessage = "Error: IntMath";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
					 | 
				
			||||||
			pcStatusMessage = "Error: RecMutex";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else if( xAreIntQueueTasksStillRunning() != pdPASS )
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
					 | 
				
			||||||
			pcStatusMessage = "Error: IntQueue";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Check the reg test tasks are still cycling.  They will stop incrementing
 | 
						/* Check the reg test tasks are still cycling.  They will stop incrementing
 | 
				
			||||||
		their loop counters if they encounter an error. */
 | 
						their loop counters if they encounter an error. */
 | 
				
			||||||
		if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )
 | 
						if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							lErrorStatus = pdFAIL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ulLastRegTest1CycleCount = ulRegTest1CycleCount;
 | 
				
			||||||
 | 
						ulLastRegTest2CycleCount = ulRegTest2CycleCount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Toggle the check LED to give an indication of the system status.  If
 | 
				
			||||||
 | 
						the LED toggles every 5 seconds then everything is ok.  A faster toggle
 | 
				
			||||||
 | 
						indicates an error. */
 | 
				
			||||||
 | 
						vParTestToggleLED( mainCHECK_LED );
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						/* Was an error detected this time through the callback execution? */
 | 
				
			||||||
 | 
						if( lErrorStatus != pdPASS )
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if( lChangedTimerPeriodAlready == pdFALSE )
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
								lChangedTimerPeriodAlready = pdTRUE;
 | 
				
			||||||
			pcStatusMessage = "Error: RegTest1";
 | 
								
 | 
				
			||||||
 | 
								/* This call to xTimerChangePeriod() uses a zero block time.  
 | 
				
			||||||
 | 
								Functions called from inside of a timer callback function must 
 | 
				
			||||||
 | 
								*never* attempt	to block. */
 | 
				
			||||||
 | 
								xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					 | 
				
			||||||
		if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			xCycleFrequency = mainERROR_CYCLE_TIME;
 | 
					 | 
				
			||||||
			pcStatusMessage = "Error: RegTest2";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		ulLastRegTest1CycleCount = ulRegTest1CycleCount;
 | 
					 | 
				
			||||||
		ulLastRegTest2CycleCount = ulRegTest2CycleCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		/* Toggle the check LED to give an indication of the system status.  If
 | 
					 | 
				
			||||||
		the LED toggles every 5 seconds then everything is ok.  A faster toggle
 | 
					 | 
				
			||||||
		indicates an error. */
 | 
					 | 
				
			||||||
		vParTestToggleLED( mainCHECK_LED );
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
| 
						 | 
					@ -464,6 +435,19 @@ void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName
 | 
				
			||||||
of this file. */
 | 
					of this file. */
 | 
				
			||||||
void vApplicationIdleHook( void )
 | 
					void vApplicationIdleHook( void )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						/* If this is being executed then the kernel has been started.  Start the high
 | 
				
			||||||
 | 
						frequency timer test as described at the top of this file.  This is only
 | 
				
			||||||
 | 
						included in the optimised build configuration - otherwise it takes up too much
 | 
				
			||||||
 | 
						CPU time and can disrupt other tests. */
 | 
				
			||||||
 | 
						#ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST
 | 
				
			||||||
 | 
						static portBASE_TYPE xTimerTestStarted = pdFALSE;
 | 
				
			||||||
 | 
						extern void vSetupHighFrequencyTimer( void );
 | 
				
			||||||
 | 
							if( xTimerTestStarted == pdFALSE )
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								vSetupHighFrequencyTimer();
 | 
				
			||||||
 | 
								xTimerTestStarted = pdTRUE;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -668,14 +652,3 @@ RegTest2Error:
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					/*-----------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char *pcGetTaskStatusMessage( void )
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	/* Not bothered about a critical section here although technically because of
 | 
					 | 
				
			||||||
	the task priorities the pointer could change it will be atomic if not near
 | 
					 | 
				
			||||||
	atomic and its not critical. */
 | 
					 | 
				
			||||||
	return ( char * ) pcStatusMessage;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/*-----------------------------------------------------------*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,112 +0,0 @@
 | 
				
			||||||
/* Kernel includes. */
 | 
					 | 
				
			||||||
#include "FreeRTOS.h"
 | 
					 | 
				
			||||||
#include "task.h"
 | 
					 | 
				
			||||||
#include "semphr.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "iodefine.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
extern xQueueHandle SwitchQueue;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IRQ1
 | 
					 | 
				
			||||||
#pragma interrupt (Excep_IRQ1(vect=65))
 | 
					 | 
				
			||||||
void Excep_IRQ1(void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IRQ3
 | 
					 | 
				
			||||||
#pragma interrupt (Excep_IRQ3(vect=67))
 | 
					 | 
				
			||||||
void Excep_IRQ3(void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IRQ4
 | 
					 | 
				
			||||||
#pragma interrupt (Excep_IRQ4(vect=68))
 | 
					 | 
				
			||||||
void Excep_IRQ4(void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void SwitchSetup(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	/* Configure SW 1-3 pin settings */
 | 
					 | 
				
			||||||
    PORT3.PDR.BIT.B1 = 0;		/* Switch 1 - Port 3.1 - IRQ1 */
 | 
					 | 
				
			||||||
    PORT3.PDR.BIT.B3 = 0;		/* Switch 2 - Port 3.3 - IRQ3 */
 | 
					 | 
				
			||||||
    PORT3.PDR.BIT.B4 = 0;		/* Switch 3 - Port 3.4 - IRQ4 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	PORT3.PMR.BIT.B1 = 1;
 | 
					 | 
				
			||||||
	PORT3.PMR.BIT.B3 = 1;
 | 
					 | 
				
			||||||
	PORT3.PMR.BIT.B4 = 1;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	MPC.PWPR.BIT.B0WI = 0;		// Writing to the PFSWE bit is enabled
 | 
					 | 
				
			||||||
	MPC.PWPR.BIT.PFSWE = 1;		// Writing to the PFS register is enabled
 | 
					 | 
				
			||||||
	MPC.P31PFS.BIT.ISEL = 1;
 | 
					 | 
				
			||||||
	MPC.P33PFS.BIT.ISEL = 1;
 | 
					 | 
				
			||||||
	MPC.P34PFS.BIT.ISEL = 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* IRQ1	*/
 | 
					 | 
				
			||||||
	ICU.IER[0x08].BIT.IEN1 = 1;	
 | 
					 | 
				
			||||||
	ICU.IPR[65].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;
 | 
					 | 
				
			||||||
	ICU.IR[65].BIT.IR = 0;
 | 
					 | 
				
			||||||
	ICU.IRQCR[1].BIT.IRQMD = 1;	// falling edge
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/* IRQ3	*/
 | 
					 | 
				
			||||||
	ICU.IER[0x08].BIT.IEN3 = 1;	
 | 
					 | 
				
			||||||
	ICU.IPR[67].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;
 | 
					 | 
				
			||||||
	ICU.IR[67].BIT.IR = 0;
 | 
					 | 
				
			||||||
	ICU.IRQCR[3].BIT.IRQMD = 1;	// falling edge
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* IRQ4	*/
 | 
					 | 
				
			||||||
	ICU.IER[0x08].BIT.IEN4 = 1;	
 | 
					 | 
				
			||||||
	ICU.IPR[68].BIT.IPR = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;
 | 
					 | 
				
			||||||
	ICU.IR[68].BIT.IR = 0;
 | 
					 | 
				
			||||||
	ICU.IRQCR[4].BIT.IRQMD = 1;	// falling edge
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void Excep_IRQ1(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 | 
					 | 
				
			||||||
	static portTickType PreviousCount = 0;
 | 
					 | 
				
			||||||
	portTickType CurrentCount;
 | 
					 | 
				
			||||||
	static unsigned char ID_Switch1 = 1;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	CurrentCount = xTaskGetTickCount();
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	if( (CurrentCount - PreviousCount) > (125 / portTICK_RATE_MS) )
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		xQueueSendToBackFromISR( SwitchQueue, &ID_Switch1, &xHigherPriorityTaskWoken);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	PreviousCount = CurrentCount;
 | 
					 | 
				
			||||||
    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void Excep_IRQ3(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	static portTickType PreviousCount = 0;
 | 
					 | 
				
			||||||
	portTickType CurrentCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 | 
					 | 
				
			||||||
	static unsigned char ID_Switch2 = 2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CurrentCount = xTaskGetTickCount();
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	if( (CurrentCount - PreviousCount) > (250 / portTICK_RATE_MS) )
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		xQueueSendToBackFromISR( SwitchQueue, &ID_Switch2, &xHigherPriorityTaskWoken);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	PreviousCount = CurrentCount;
 | 
					 | 
				
			||||||
    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void Excep_IRQ4(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	static portTickType PreviousCount = 0;
 | 
					 | 
				
			||||||
	portTickType CurrentCount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
 | 
					 | 
				
			||||||
	static unsigned char ID_Switch3 = 3;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	CurrentCount = xTaskGetTickCount();
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	if( (CurrentCount - PreviousCount) > (125 / portTICK_RATE_MS) )
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		xQueueSendToBackFromISR( SwitchQueue, &ID_Switch3, &xHigherPriorityTaskWoken);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	PreviousCount = CurrentCount;
 | 
					 | 
				
			||||||
    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue