From: richardbarry Date: Sat, 17 Sep 2011 16:41:46 +0000 (+0000) Subject: Lots of work on the RX200 demo. Blinky and Full/Debug build configurations are now... X-Git-Tag: V7.0.2~8 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8fda381108ebba8942cdd1801f1308cefa4397ee;p=freertos 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. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1602 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws index a21eccd3c..defac9639 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws @@ -38,7 +38,7 @@ "2" "Default3" "1" "3" "Default4" "1" [OPTIONS_DEBUG_TAB] -0 1 0 0 0 +0 1 1 0 0 [VCS] "" "" "" 0 [VCS_PROJECT] diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws index 11ae0bb98..dd2a67ae8 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws @@ -7,15 +7,11 @@ [GENERAL_DATA] [BREAKPOINTS] [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\Source\timers.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" [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\lcd.c" -4 -23 1302 566 1 3 -"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 +"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\main-full.c" -4 -23 1302 648 1 0 [LOADED_PROJECTS] "RTOSDemo" [END] diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp index ec6c4e6b5..b2e2cf4ec 100644 Binary files a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp and b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Blinky/Blinky.hdp differ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c new file mode 100644 index 000000000..a1e7c8215 --- /dev/null +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c @@ -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 ); +} + diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h index 0a6b1cba1..f2640ca83 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h @@ -72,8 +72,8 @@ #define configUSE_PREEMPTION 1 #define configUSE_IDLE_HOOK 0 #define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ ( ICLK_FREQUENCY ) /* Set in rskrx62ndef.h. */ -#define configPERIPHERAL_CLOCK_HZ ( PCLK_FREQUENCY ) /* Set in rskrx62ndef.h. */ +#define configCPU_CLOCK_HZ ( ICLK_FREQUENCY ) /* Set in rskrx210def.h. */ +#define configPERIPHERAL_CLOCK_HZ ( PCLK_FREQUENCY ) /* Set in rskrx210def.h. */ #define configTICK_RATE_HZ ( ( portTickType ) 1000 ) #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 140 ) #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 50 * 1024 ) ) diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp index eb2b47660..daadf2d0a 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.hwp @@ -11,9 +11,7 @@ [CONFIGURATIONS] "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_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" -"SimDebug_RX600" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\SimDebug_RX600" [BUILD_PHASES] "Renesas OptLinker" 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\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\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\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\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\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\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\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\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-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\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 @@ -218,62 +216,63 @@ [GENERAL_DATA_SESSION_DefaultSession] [GENERAL_DATA_SESSION_SessionRX200_E1_E20_SYSTEM] [OPTIONS_Blinky_Renesas OptLinker] -"Single Shot" "0163a6546847cc10" 5 +"Single Shot" "08221511d557cc10" 5 [OPTIONS_Blinky_Renesas RX Assembler] -"Assembly source file" "0fe42629efb3cc10" 4 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0fe42629efb3cc10" 4 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 -"Linkage symbol file" "0fe42629efb3cc10" 4 +"Assembly source file" "07a7155f1257cc10" 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" "07a7155f1257cc10" 4 +"Linkage symbol file" "07a7155f1257cc10" 4 [OPTIONS_Blinky_Renesas RX C/C++ Compiler] -"C source file" "0c9d1629efb3cc10" 2 -"C++ source file" "0c9d1629efb3cc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0c9d1629efb3cc10" 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\IntQueueTimer.c" "0c9d1629efb3cc10" 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\Renesas-Files\dbsct.c" "0c9d1629efb3cc10" 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\intprg.c" "0c9d1629efb3cc10" 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\resetprg.c" "0c9d1629efb3cc10" 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\vecttbl.c" "0c9d1629efb3cc10" 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\main-blinky.c" "0d7a61d06847cc10" 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\switches.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0c9d1629efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0c9d1629efb3cc10" 2 +"C source file" "07a7155f1257cc10" 2 +"C++ source file" "07a7155f1257cc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07a7155f1257cc10" 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" "07a7155f1257cc10" 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\ParTest.c" "07a7155f1257cc10" 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\hwsetup.c" "07a7155f1257cc10" 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\lcd.c" "07a7155f1257cc10" 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\resetprg.c" "07a7155f1257cc10" 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\Renesas-Files\vecttbl.c" "07a7155f1257cc10" 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\main-full.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07a7155f1257cc10" 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" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07a7155f1257cc10" 2 [OPTIONS_Blinky_Renesas RX C/C++ Library Generator] -"Single Shot" "0c9d1629efb3cc10" 1 +"Single Shot" "07a7155f1257cc10" 1 [OPTIONS_Blinky_Renesas RX Configurator] -"Single Shot" "0d7a61d06847cc10" 6 +"Single Shot" "0aac2411d557cc10" 6 [OPTIONS_Blinky] "" 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|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [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] [B|SKIPDEPENDENCY|1] " 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 -"[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 -"[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 -"[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 [EXCLUDED_FILES_Blinky] "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\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\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\switches.c" [LINKAGE_ORDER_Blinky] [GENERAL_DATA_CONFIGURATION_Blinky] [OPTIONS_Debug_Renesas OptLinker] -"Single Shot" "0bff42d06847cc10" 5 +"Single Shot" "08221511d557cc10" 5 [OPTIONS_Debug_Renesas RX Assembler] -"Assembly source file" "0fddf529efb3cc10" 4 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0fddf529efb3cc10" 4 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port_asm.src" "0e2e6019b896cc10" 4 -"Linkage symbol file" "0fddf529efb3cc10" 4 +"Assembly source file" "07a7155f1257cc10" 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" "07a7155f1257cc10" 4 +"Linkage symbol file" "07a7155f1257cc10" 4 [OPTIONS_Debug_Renesas RX C/C++ Compiler] -"C source file" "0c86f529efb3cc10" 2 -"C++ source file" "0c86f529efb3cc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0c86f529efb3cc10" 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\IntQueueTimer.c" "0c86f529efb3cc10" 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\Renesas-Files\dbsct.c" "0c86f529efb3cc10" 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\intprg.c" "0c86f529efb3cc10" 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\resetprg.c" "0c86f529efb3cc10" 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\vecttbl.c" "0c86f529efb3cc10" 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\main-blinky.c" "0d7a61d06847cc10" 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\switches.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX200\port.c" "0e2e6019b896cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0c86f529efb3cc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "0c86f529efb3cc10" 2 +"C source file" "07a7155f1257cc10" 2 +"C++ source file" "07a7155f1257cc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "07a7155f1257cc10" 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" "07a7155f1257cc10" 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\ParTest.c" "07a7155f1257cc10" 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\hwsetup.c" "07a7155f1257cc10" 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\lcd.c" "07a7155f1257cc10" 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\resetprg.c" "07a7155f1257cc10" 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\Renesas-Files\vecttbl.c" "07a7155f1257cc10" 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\main-full.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "07a7155f1257cc10" 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" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "07a7155f1257cc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "07a7155f1257cc10" 2 [OPTIONS_Debug_Renesas RX C/C++ Library Generator] -"Single Shot" "0c86f529efb3cc10" 1 +"Single Shot" "07a7155f1257cc10" 1 [OPTIONS_Debug_Renesas RX Configurator] -"Single Shot" "0d7a61d06847cc10" 6 +"Single Shot" "0aac2411d557cc10" 6 [OPTIONS_Debug] "" 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|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] +"[V|VERSION|1] [B|COMMAND|1] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|SPEC|UITRON4] [S|CPU|RX200] [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 -"[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 -"[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 -"[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 -"[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 [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\lowsrc.c" [LINKAGE_ORDER_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] -"Single Shot" "0bff42d06847cc10" 5 +"Single Shot" "08221511d557cc10" 5 [OPTIONS_Debug_with_optimisation_Renesas RX Assembler] "Assembly source file" "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\recmutex.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\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\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\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\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\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-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\portable\MemMang\heap_2.c" "0b8cd057b896cc10" 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] "Single Shot" "0d348e39e796cc10" 1 [OPTIONS_Debug_with_optimisation_Renesas RX Configurator] -"Single Shot" "0d7a61d06847cc10" 6 +"Single Shot" "0aac2411d557cc10" 6 [OPTIONS_Debug_with_optimisation] "" 0 "[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] " 5 [EXCLUDED_FILES_Debug_with_optimisation] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" [LINKAGE_ORDER_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] [SESSION_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession] "MEMORY_MAPPING_OPTIONS" "" @@ -547,24 +431,12 @@ [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM] "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] [SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession] "MEMORY_MAPPING_OPTIONS" "" [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX200_E1_E20_SYSTEM] "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] 0 "" "" "" "" [END] diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav index 2c9b73cb7..66e4cf616 100644 Binary files a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav and b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav differ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps index b08c7b492..404a9d4a1 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.tps @@ -8,50 +8,34 @@ [CONFIGURATIONS] "Blinky" "Debug" -"Debug_RX600_E1_E20_SYSTEM" "Debug_with_optimisation" -"SimDebug_RX600" [CURRENT_CONFIGURATION] -"Blinky" +"Debug" [CURRENT_SESSION] "SessionRX200_E1_E20_SYSTEM" [GENERAL_DATA_PROJECT] "FDT_UserBootAreaFiles" "" [GENERAL_DATA_CONFIGURATION_Blinky] -"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" +"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" [SESSIONS_Blinky] "DefaultSession" "SessionRX200_E1_E20_SYSTEM" [GENERAL_DATA_CONFIGURATION_Debug] -"PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" +"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" [SESSIONS_Debug] "DefaultSession" "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] "PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" [SESSIONS_Debug_with_optimisation] "DefaultSession" "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_SESSION_SessionRX200_E1_E20_SYSTEM] [GENERAL_DATA_SESSION_DefaultSession] [GENERAL_DATA_CONFIGURATION_SESSION_Blinky_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_SimDebug_RX600_SessionRX200_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX200_E1_E20_SYSTEM] [END] diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c index 930111b49..834ff6d07 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/lcd.c @@ -30,39 +30,6 @@ User Includes #include "rskrx210def.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 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 ); - } - } - } - } - } -} \ No newline at end of file diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf index ac5c078be..b111b64a9 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf @@ -89,32 +89,32 @@ "{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0" "{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_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_10" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF80000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "000000000000E130" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000014" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "000000000000889C" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000E788" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000004030001" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF881E1" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "000000000000DEE4" +"{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_22" "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_3" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "000000000000DEE4" +"{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_6" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "00000000A5A5A5A5" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "00000000A5A5A5A5" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "25" "{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" "{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" "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|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" -"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 294 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" +"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.07" 212 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|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|<>|32781|32782|<>|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_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_MEMORY}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "1.00" 219 1452 519 1033 219 2053 0 "42202|42203|42204|42233|<>|42206|42205|42230|42229|42207|<>|42208|42209|42210|49076|42228|42227|<>|42231|42232|42234|42235|<>|42211|<>" "0.0" -"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 294 560 340 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 212 560 340 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|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_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|<>|32771|32829|32772|32827|32773|<>|32786|<>|32810|32811" "0.0" @@ -527,10 +527,8 @@ "{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" "{WK_TB00000013_SYMBOL} TOOLBAR 0" "{WK_TB00000011_CPU} TOOLBAR 0" -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\lcd.c" -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-full.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\main-blinky.c" -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX200_RX210-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" [TARGET_NAME] "RX E1/E20 SYSTEM" "" 0 [STATUSBAR_STATEINFO_VD1] @@ -561,7 +559,7 @@ [DEBUGGER_OPTIONS] "" [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] "FALSE" [DOWNLOAD_MODULES_AFTER_BUILD] diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h new file mode 100644 index 000000000..c6a4a0ac2 --- /dev/null +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h @@ -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 + diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h index 1818da4f9..3544b8117 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/lcd.h @@ -35,10 +35,6 @@ struct _LCD_Params { char *ptr_str; }; -void prvLCDTaskLine1( void *pvParameters ); -void prvLCDTaskLine2( void *pvParameters ); - - /* RS Register Select pin */ #define RS_PIN PORTJ.PODR.BIT.B1 /* Display Enable pin */ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c index 5b63f6323..800c7e5d5 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c @@ -92,8 +92,10 @@ static void prvQueueSendTask( void *pvParameters ); static xQueueHandle xQueue = NULL; /* 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; + /*-----------------------------------------------------------*/ void main(void) @@ -120,9 +122,9 @@ extern void HardwareSetup( void ); vTaskStartScheduler(); } - /* If all is well we will never reach here as the scheduler will now be - running. If we do reach here then it is likely that there was insufficient - heap available for the idle task to be created. */ + /* If all is well the next line of code will not be reached as the scheduler + will be running. If the next line is reached then it is likely that there was + insufficient heap available for the idle task to be created. */ for( ;; ); } /*-----------------------------------------------------------*/ @@ -144,8 +146,10 @@ const unsigned long ulValueToSend = 100UL; /* 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 - should always be empty here. */ - xQueueSend( xQueue, &ulValueToSend, 0 ); + should always be empty here (it should always be empty because the task + 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 ) { /* 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 -of this file. */ +/* If configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h, then this +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 ) { for( ;; ); } /*-----------------------------------------------------------*/ -/* This function is explained by the comments above its prototype at the top -of this file. */ +/* If configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2 in +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 ) { for( ;; ); } /*-----------------------------------------------------------*/ -/* This function is explained by the comments above its prototype at the top -of this file. */ +/* If configUSE_IDLE_HOOK is set to 1 in FreeRTOSConfig.h, then this function +will be called on each iteration of the idle task. See +http://www.freertos.org/a00016.html */ void vApplicationIdleHook( void ) { /* Just to prevent the variable getting optimised away. */ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c index 8c1b693d0..8522ab3b2 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c @@ -54,69 +54,66 @@ /* **************************************************************************** * 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 - * 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 * documentation provides more details of the standard demo application tasks, * which provide no particular functionality but do provide a good example of - * how to use the FreeRTOS API. The tasks defined in flop.c are included in the - * set of standard demo tasks to ensure the floating point unit gets some - * exercise. + * how to use the FreeRTOS API. * * In addition to the standard demo tasks, the following tasks and tests are * defined and/or created within this file: * - * Webserver ("uIP") task - This serves a number of dynamically generated WEB - * pages to a standard WEB browser. The IP and MAC addresses are configured by - * constants defined at the bottom of FreeRTOSConfig.h. Use either a standard - * Ethernet cable to connect through a hug, or a cross over (point to point) - * cable to connect directly. Ensure the IP address used is compatible with the - * IP address of the machine running the browser - the easiest way to achieve - * this is to ensure the first three octets of the IP addresses are the same. + * "Reg test" tasks - These fill the registers with known values, then + * repeatedly check that each register still contains its expected value for + * the lifetime of the tasks. Each task uses different values. The tasks run + * with very low priority so get preempted very frequently. A check variable + * is incremented on each iteration of the test loop. A register containing an + * unexpected value is indicative of an error in the context switching + * 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 - * that each register still contains its expected value. Each task uses - * different values. The tasks run with very low priority so get preempted - * very frequently. A check variable is incremented on each iteration of the - * test loop. A register containing an unexpected value is indicative of an - * error in the context switching 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 task (described below) to determine that an - * error has occurred. The nature of the reg test tasks necessitates that they - * are written in assembly code. - * - * "Check" task - This only executes every five seconds but has a high priority - * 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. + * "Check Timer" and Callback Function - The check timer period is initially + * set to five seconds. The check timer callback function checks that all the + * standard demo tasks are not only still executing, but are executing without + * reporting any errors. If the check timer discovers that a task has either + * stalled, or reported an error, then it changes its own period from the + * initial three seconds, to just 200ms. The check timer callback function + * also toggles LED 3 each time it is called. This provides a visual + * indication of the system status: If the LED toggles every five seconds, + * then no issues have been discovered. If the LED toggles every 200ms, then + * an issue has been discovered with at least one task. * * "High frequency timer test" - A high frequency periodic interrupt is * 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 - * 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 - * included in build configurations that have the optimiser switched on. In - * optimised builds the count of high frequency ticks is used as the time base - * for the run time stats. + * included in build configurations that have the optimiser switched on. * - * *NOTE 1* If LED5 is toggling every 5 seconds then all the demo application - * tasks are executing as expected and no errors have been reported in any - * tasks. The toggle rate increasing to 200ms indicates that at least one task - * has reported unexpected behaviour. + * "Button and LCD test" - This creates two tasks. The first simply scrolls + * a message back and forth along the top line of the LCD display. If no + * buttons are pushed, the second also scrolls a message back and forth, but + * 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 * 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 * 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). */ @@ -129,6 +126,7 @@ /* Kernel includes. */ #include "FreeRTOS.h" #include "task.h" +#include "timers.h" #include "semphr.h" /* Standard demo includes. */ @@ -145,43 +143,42 @@ #include "QPeek.h" #include "recmutex.h" +/* Demo specific tasks. */ +#include "ButtonAndLCD.h" + /* Peripheral includes. */ #include "lcd.h" -/* Values that are passed into the reg test tasks using the task parameter. The -tasks check that the values are passed in correctly. */ +/* Values that are passed into the reg test tasks using the task parameter. +The tasks check that the values are passed in correctly. */ #define mainREG_TEST_1_PARAMETER ( 0x12121212UL ) #define mainREG_TEST_2_PARAMETER ( 0x12345678UL ) /* Priorities at which the tasks are created. */ -#define mainCHECK_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) #define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 ) #define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) #define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainuIP_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) #define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainGEN_QUEUE_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. */ #define mainCHECK_LED ( 3 ) -/* The rate at which mainCHECK_LED will toggle when all the tasks are running -without error. Controlled by the check task as described at the top of this -file. */ -#define mainNO_ERROR_CYCLE_TIME ( 5000 / portTICK_RATE_MS ) +/* The period at which the check timer will expire, in ms, provided no errors +have been reported by any of the standard demo tasks. ms are converted to the +equivalent in ticks using the portTICK_RATE_MS constant. */ +#define mainCHECK_TIMER_PERIOD_MS ( 5000UL / portTICK_RATE_MS ) -/* The rate at which mainCHECK_LED will toggle when an error has been reported -by at least one task. Controlled by the check task as described at the top of -this file. */ -#define mainERROR_CYCLE_TIME ( 200 / portTICK_RATE_MS ) +/* The period at which the check timer will expire, in ms, if an error has been +reported in one of the standard demo tasks. ms are converted to the equivalent +in ticks using the portTICK_RATE_MS constant. */ +#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_RATE_MS ) + +/* A block time of zero simple means "Don't Block". */ +#define mainDONT_BLOCK ( 0UL ) /* * vApplicationMallocFailedHook() will only be called if @@ -229,9 +226,9 @@ static void prvRegTest1Implementation( 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. */ unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL; -/* The status message that is displayed at the bottom of the "task stats" web -page, which is served by the uIP task. This will report any errors picked up -by the reg test task. */ -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; - +/* The check timer. This uses prvCheckTimerCallback() as its callback +function. */ +static xTimerHandle xCheckTimer = NULL; /*-----------------------------------------------------------*/ @@ -266,7 +252,6 @@ extern void HardwareSetup( void ); /* Renesas provided CPU configuration routine. The clocks are configured in here. */ HardwareSetup(); - SwitchSetup(); /* Turn all LEDs off. */ vParTestInitialise(); @@ -275,17 +260,8 @@ extern void HardwareSetup( void ); 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 ); - - /* LCD task */ - 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 ); + /* The button and LCD tasks, as described at the top of this file. */ + vStartButtonAndLCDDemo(); /* Create the standard demo tasks. */ vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); @@ -299,12 +275,26 @@ extern void HardwareSetup( void ); vStartRecursiveMutexTasks(); vStartInterruptQueueTasks(); - /* 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 or not the correct/expected number of tasks are running at any given time. */ 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. */ 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; -portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME; -extern void vSetupHighFrequencyTimer( void ); - /* If this is being executed then the kernel has been started. Start the high - frequency timer test as described at the top of this file. This is only - included in the optimised build configuration - otherwise it takes up too much - CPU time and can disrupt other tests. */ - #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST - vSetupHighFrequencyTimer(); - #endif + /* Check the standard demo tasks are running without error. */ + if( xAreGenericQueueTasksStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreBlockingQueuesStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xArePollingQueuesStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xIsCreateTaskStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) + { + lErrorStatus = pdFAIL; + } + else if( xAreIntQueueTasksStillRunning() != pdPASS ) + { + lErrorStatus = pdFAIL; + } - /* Initialise xNextWakeTime - this only needs to be done once. */ - xNextWakeTime = xTaskGetTickCount(); + /* Check the reg test tasks are still cycling. They will stop incrementing + their loop counters if they encounter an error. */ + if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) + { + lErrorStatus = pdFAIL; + } - for( ;; ) + if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) { - /* Place this task in the blocked state until it is time to run again. */ - vTaskDelayUntil( &xNextWakeTime, xCycleFrequency ); - - /* Check the standard demo tasks are running without error. */ - if( xAreGenericQueueTasksStillRunning() != pdTRUE ) - { - /* Increase the rate at which this task cycles, which will increase the - rate at which mainCHECK_LED flashes to give visual feedback that an error - has occurred. */ - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: GenQueue"; - } - else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: QueuePeek"; - } - else if( xAreBlockingQueuesStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: BlockQueue"; - } - else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: BlockTime"; - } - else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: SemTest"; - } - else if( xArePollingQueuesStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: PollQueue"; - } - 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"; - } + lErrorStatus = pdFAIL; + } - /* Check the reg test tasks are still cycling. They will stop incrementing - their loop counters if they encounter an error. */ - if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: RegTest1"; - } + ulLastRegTest1CycleCount = ulRegTest1CycleCount; + ulLastRegTest2CycleCount = ulRegTest2CycleCount; - if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) + /* 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; - pcStatusMessage = "Error: RegTest2"; + lChangedTimerPeriodAlready = pdTRUE; + + /* This call to xTimerChangePeriod() uses a zero block time. + Functions called from inside of a timer callback function must + *never* attempt to block. */ + xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK ); } - - 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. */ 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; -} -/*-----------------------------------------------------------*/ - - - diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c deleted file mode 100644 index 4fa19297e..000000000 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c +++ /dev/null @@ -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 ); -} \ No newline at end of file