From 8fda381108ebba8942cdd1801f1308cefa4397ee Mon Sep 17 00:00:00 2001 From: richardbarry Date: Sat, 17 Sep 2011 16:41:46 +0000 Subject: [PATCH] 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 --- Demo/RX200_RX210-RSK_Renesas/RTOSDemo.hws | 2 +- Demo/RX200_RX210-RSK_Renesas/RTOSDemo.tws | 10 +- .../RTOSDemo/Blinky/Blinky.hdp | Bin 95017 -> 91587 bytes .../RTOSDemo/ButtonAndLCD.c | 417 ++++++++++++++++++ .../RTOSDemo/FreeRTOSConfig.h | 4 +- .../RTOSDemo/RTOSDemo.hwp | 332 +++++--------- .../RTOSDemo/RTOSDemo.nav | Bin 265249 -> 277032 bytes .../RTOSDemo/RTOSDemo.tps | 22 +- .../RTOSDemo/Renesas-Files/lcd.c | 173 -------- .../RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf | 50 +-- .../RTOSDemo/include/ButtonAndLCD.h | 60 +++ .../RTOSDemo/include/lcd.h | 4 - .../RTOSDemo/main-blinky.c | 37 +- .../RTOSDemo/main-full.c | 343 +++++++------- .../RTOSDemo/switches.c | 112 ----- 15 files changed, 795 insertions(+), 771 deletions(-) create mode 100644 Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c create mode 100644 Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h delete mode 100644 Demo/RX200_RX210-RSK_Renesas/RTOSDemo/switches.c 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 ec6c4e6b517487a525ef5e708d12f52f5961d0ff..b2e2cf4ec42d969c8255f0611884ef3264d91adf 100644 GIT binary patch delta 1973 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 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 2c9b73cb71d3334629775f6bc470190c849b948d..66e4cf6162d95475fb703bfd7410e94ba85fe924 100644 GIT binary patch delta 8589 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 LPK%ugI`;nom7S^& delta 3473 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 / 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 -- 2.39.5