From f1f005c7e30208de4449f0f03f3d6df9cac21280 Mon Sep 17 00:00:00 2001 From: richardbarry Date: Fri, 16 Sep 2011 08:48:59 +0000 Subject: [PATCH] Update demo projects for RX210, not yet complete, and not yet actually built. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1598 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- .../RTOSDemo/FreeRTOSConfig.h | 81 ++++------ .../RTOSDemo/HighFrequencyTimerTest.c | 56 +++---- .../RTOSDemo/IntQueueTimer.c | 56 +++---- .../RTOSDemo/ParTest.c | 74 ++++----- .../RTOSDemo/RTOSDemo.nav | Bin 264846 -> 263888 bytes .../RTOSDemo/Renesas-Files/hwsetup.c | 147 ++++++------------ .../RTOSDemo/SessionRX200_E1_E20_SYSTEM.hsf | 56 +++---- .../RTOSDemo/hd44780.c | 2 +- .../RTOSDemo/include/IntQueueTimer.h | 56 +++---- .../include/{rskrx62ndef.h => rskrx210def.h} | 32 +++- Demo/RX200_RX210-RSK_Renesas/RTOSDemo/lcd.c | 2 +- .../RTOSDemo/main-blinky.c | 56 +++---- .../RTOSDemo/main-full.c | 66 ++++---- 13 files changed, 301 insertions(+), 383 deletions(-) rename Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/{rskrx62ndef.h => rskrx210def.h} (74%) diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h index e7130d5d8..06914a7f7 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h @@ -1,41 +1,41 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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. @@ -137,29 +137,4 @@ required to ensure flase positive timing errors are not reported. */ #define bktSECONDARY_PRIORITY ( configMAX_PRIORITIES - 4 ) #define intqHIGHER_PRIORITY ( configMAX_PRIORITIES - 3 ) - -/*----------------------------------------------------------- - * Ethernet configuration. - *-----------------------------------------------------------*/ - -/* MAC address configuration. */ -#define configMAC_ADDR0 0x00 -#define configMAC_ADDR1 0x12 -#define configMAC_ADDR2 0x13 -#define configMAC_ADDR3 0x10 -#define configMAC_ADDR4 0x15 -#define configMAC_ADDR5 0x11 - -/* IP address configuration. */ -#define configIP_ADDR0 192 -#define configIP_ADDR1 168 -#define configIP_ADDR2 0 -#define configIP_ADDR3 200 - -/* Netmask configuration. */ -#define configNET_MASK0 255 -#define configNET_MASK1 255 -#define configNET_MASK2 255 -#define configNET_MASK3 0 - #endif /* FREERTOS_CONFIG_H */ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c index f17faafc0..90ddf0067 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c @@ -1,41 +1,41 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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. diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c index 7b5064c6b..b373e57e1 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c @@ -1,41 +1,41 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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. diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c index fa88596b5..32e412b69 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c @@ -1,41 +1,41 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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. @@ -97,10 +97,6 @@ void vParTestSetLED( unsigned long ulLED, signed long xValue ) break; case 3: LED3 = LED_ON; break; -// case 4: LED4 = LED_ON; -// break; -// case 5: LED5 = LED_ON; -// break; } } taskEXIT_CRITICAL(); @@ -120,10 +116,6 @@ void vParTestSetLED( unsigned long ulLED, signed long xValue ) break; case 3: LED3 = LED_OFF; break; -// case 4: LED4 = LED_OFF; -// break; -// case 5: LED5 = LED_OFF; -// break; } } @@ -181,16 +173,6 @@ long lReturn = pdTRUE; lReturn = pdFALSE; } break; -// case 4 : if( LED4 != 0 ) -// { -// lReturn = pdFALSE; -// } -// break; -// case 5 : if( LED5 != 0 ) -// { -// lReturn = pdFALSE; -// } -// break; } } diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav index df3ec8e88ac73fb6043c6650b4313ef572623496..996cdbfeaa9fe09e9857cadfa5e0120ac661da4b 100644 GIT binary patch delta 24376 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%0A>pxW!7CYZJi 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 T%7H{US8>$P3?{m`QS<(PNW&r< delta 25058 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 DD&Cul diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c index cba0b63d3..663c6bbb6 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/Renesas-Files/hwsetup.c @@ -41,8 +41,7 @@ Includes , "Project Includes" ******************************************************************************/ #include #include "iodefine.h" -//#include "r_ether.h" -#include "rskrx62ndef.h" +#include "rskrx210def.h" #include "hd44780.h" /* EZ-LCD include file */ /****************************************************************************** @@ -101,7 +100,6 @@ void HardwareSetup(void) void EnablePeripheralModules(void) { /* Module standby clear */ -// SYSTEM.MSTPCRB.BIT.MSTPB15 = 0; /* EtherC, EDMAC */ SYSTEM.MSTPCRA.BIT.MSTPA15 = 0; /* CMT0 */ } @@ -119,65 +117,6 @@ state changes on the external ports. Many peripheral modules will override the setting of the port registers. Ensure that the state is safe for external devices if the internal peripheral module is disabled or powered down. */ -#if(0) - /* ==== MII/RMII Pins setting ==== */ - /*--------------------------------------*/ - /* Port Function Control Register */ - /*--------------------------------------*/ -#if ETH_MODE_SEL == ETH_MII_MODE - /* EE=1, PHYMODE=1, ENETE3=1, ENETE2=0, ENETE1=1, ENETE0=0 (Ethernet) */ - IOPORT.PFENET.BYTE = 0x9A; -#endif /* ETH_MODE_SEL */ -#if ETH_MODE_SEL == ETH_RMII_MODE - /* EE=1, PHYMODE=0, ENETE3=0, ENETE2=0, ENETE1=1, ENETE0=0 (Ethernet) */ - IOPORT.PFENET.BYTE = 0x82; -#endif /* ETH_MODE_SEL */ - /*-------------------------------------------*/ - /* Input Buffer Control Register (ICR) */ - /*-------------------------------------------*/ -#if ETH_MODE_SEL == ETH_MII_MODE - /* P54=1 Set ET_LINKSTA input */ - PORT5.ICR.BIT.B4 = 1; - /* P71=1 Set ET_MDIO input */ - PORT7.ICR.BIT.B1 = 1; - /* P74=1 Set ET_ERXD1 input */ - PORT7.ICR.BIT.B4 = 1; - /* P75=1 Set ET_ERXD0 input */ - PORT7.ICR.BIT.B5 = 1; - /* P76=1 Set ET_RX_CLK input */ - PORT7.ICR.BIT.B6 = 1; - /* P77=1 Set ET_RX_ER input */ - PORT7.ICR.BIT.B7 = 1; - /* P83=1 Set ET_CRS input */ - PORT8.ICR.BIT.B3 = 1; - /* PC0=1 Set ET_ERXD3 input */ - PORTC.ICR.BIT.B0 = 1; - /* PC1=1 Set ET_ERXD2 input */ - PORTC.ICR.BIT.B1 = 1; - /* PC2=1 Set ET_RX_DV input */ - PORTC.ICR.BIT.B2 = 1; - /* PC4=1 Set EX_TX_CLK input */ - PORTC.ICR.BIT.B4 = 1; - /* PC7=1 Set ET_COL input */ - PORTC.ICR.BIT.B7 = 1; -#endif /* ETH_MODE_SEL */ -#if ETH_MODE_SEL == ETH_RMII_MODE - /* P54=1 Set ET_LINKSTA input */ - PORT5.ICR.BIT.B4 = 1; - /* P71=1 Set ET_MDIO input */ - PORT7.ICR.BIT.B1 = 1; - /* P74=1 Set RMII_RXD1 input */ - PORT7.ICR.BIT.B4 = 1; - /* P75=1 Set RMII_RXD0 input */ - PORT7.ICR.BIT.B5 = 1; - /* P76=1 Set REF50CLK input */ - PORT7.ICR.BIT.B6 = 1; - /* P77=1 Set RMII_RX_ER input */ - PORT7.ICR.BIT.B7 = 1; - /* P83=1 Set RMII_CRS_DV input */ - PORT8.ICR.BIT.B3 = 1; -#endif /* ETH_MODE_SEL */ -#endif /* Configure LED 0-4 pin settings */ PORT1.PODR.BIT.B4 = 1; PORT1.PODR.BIT.B5 = 1; @@ -215,50 +154,64 @@ void io_set_cpg(void) changes to the debugger and flash kernel BRR settings. */ /* ==== CPG setting ==== */ -// SYSTEM.SCKCR.LONG = 0x00020100; /* Clockin = 12MHz */ -// /* I Clock = 96MHz, B Clock = 24MHz, */ -// /* P Clock = 48MHz */ unsigned int i; - SYSTEM.PRCR.WORD = 0xA503; /* Protect on */ + SYSTEM.PRCR.WORD = 0xA503; /* Protect off */ -// SYSTEM.SOSCCR.BYTE = 0x01; /* stop sub-clock */ - /* delete when you use sub-clock */ - -// SYSTEM.HOCOPCR.BYTE = 0x01; /* HOCO power supply off */ - /* delete when you use HOCO */ +#if (CLK_SRC_HOCO == 1) + SYSTEM.HOCOPCR.BYTE = 0x00; /* HOCO power supply on */ + SYSTEM.HOCOCR2.BYTE = 0x03; /* Select - 50MHz */ + SYSTEM.HOCOCR.BYTE = 0x01; /* HOCO is operating */ - SYSTEM.MOSCWTCR.BYTE = 0x0D; /* 131072 state */ - /* wait over 10ms @12.5MHz */ + for(i=0; i<10; i++){ /* wait over 60us */ + } +#else + SYSTEM.MOSCWTCR.BYTE = 0x0C; /* Main Clock Oscillator Wait Control Register */ + /* 65536 states */ + /* wait over 2 ms @20MHz */ - SYSTEM.PLLWTCR.BYTE = 0x0E; /* 2097152 state */ - /* wait over 12ms @PLL=100MHz(12.5MHz*8) */ + SYSTEM.PLLWTCR.BYTE = 0x0B; /* PLL Wait Control Register */ + /* 262144 states */ + /* wait over 2.1 ms @PLL = 80Hz */ + /* (20/2x8*8) */ -// SYSTEM.PLLCR.WORD = 0x0902; /* x10 @PLL */ - /* Input to PLL (EXTAL in) / 2 */ + SYSTEM.PLLCR.WORD = 0x0701; /* x8 @PLL */ + /* Input to PLL (EXTAL in) / 2 */ + /* Therefore: + PLL = EXTAL / 2 + = 20M / 2 + = 10MHz + PLL * 8 = 80Mhz */ -// SYSTEM.MOSCCR.BYTE = 0x02; /* EXTAL ON */ + SYSTEM.MOSCCR.BYTE = 0x02; /* EXTAL ON */ /* External oscillation input selection */ -// SYSTEM.PLLCR2.BYTE = 0x00; /* PLL ON */ + SYSTEM.PLLCR2.BYTE = 0x00; /* PLL ON */ -// for(i = 0;i< 0x168;i++) /* wait over 12ms */ -// { -// } + for(i = 0; i<263; i++){ /* wait over 2.1ms */ + } +#endif -// SYSTEM.SCKCR.LONG = 0x21022222; /* ICK=PLL/2,FCK,PCK,BCL=PLL/4 */ -// SYSTEM.SCKCR3.WORD = 0x0400; /* LOCO -> PLL */ - - - /*************************************************************************/ - /* Using HOCO set to 50MHz to run device */ - /* ICLK = 50MHz */ - /* PCLKD (12ADC) = 50MHz */ - /* All other clocks = CLK / 2 = 25MHz */ - /*************************************************************************/ - - SYSTEM.HOCOCR2.BYTE = 0x03; /* 50MHz */ - SYSTEM.SCKCR.LONG = 0x10811110; - SYSTEM.SCKCR3.WORD = 0x0100; /* LOCO -> HOCO */ +// SYSTEM.SCKCR.LONG = 0x21823333; /* ICK=PLL/2,FCK,PCK,BCL=PLL/4 */ +/************************************************************************/ +/* If setting bits individually, rather than a single long write, */ +/* set the BCK value before that of ICK */ +/************************************************************************/ + SYSTEM.SCKCR.BIT.PCKD = 3; /* PLL/8 = 10MHz */ + SYSTEM.SCKCR.BIT.PCKC = 3; /* PLL/8 = 10MHz */ + SYSTEM.SCKCR.BIT.PCKB = 3; /* PLL/8 = 10MHz */ + SYSTEM.SCKCR.BIT.PCKA = 3; /* PLL/8 = 10MHz */ + SYSTEM.SCKCR.BIT.BCK = 3; /* PLL/8 = 10MHz */ + SYSTEM.SCKCR.BIT.PSTOP1 = 1; /* BUS CLK OUT Disabled */ + SYSTEM.SCKCR.BIT.ICK = 1; /* PLL/2 = 40MHz */ + SYSTEM.SCKCR.BIT.FCK = 2; /* PLL/4 = 20MHz */ + + while(SYSTEM.OPCCR.BIT.OPCMTSF == 1); + SYSTEM.OPCCR.BIT.OLPCM = 0; + while(SYSTEM.OPCCR.BIT.OPCMTSF == 1); +#if (CLK_SRC_HOCO == 1) + SYSTEM.SCKCR3.WORD = 0x0100; /* LOCO -> HOCO */ +#else + SYSTEM.SCKCR3.WORD = 0x0400; /* LOCO -> PLL */ +#endif } - 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 0cc0a6e06..0d5c76dcd 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" "0000000000004100" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000001" -"{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" "000000000000E3E0" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000003E84" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000004100" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "000000000000EB10" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000030000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "00000000FFF821C5" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000004102" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "00000000FFF813CC" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "0000000000000000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_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" "00000000FFFF8000" +"{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_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" "1234567887650000" +"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_24" "0000000000000000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_25" "1234567887650000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_3" "000000000000E560" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000001644" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000002845" +"{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_5" "0000000000000000" "{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000000" -"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000003DC0" -"{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_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_COUNT" "25" "{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" "" "{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" "" @@ -484,19 +484,20 @@ [CONFIG_INFO_VD4] 0 [WINDOW_POSITION_STATE_DATA_VD1] -"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"Help" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" "QzROM" "TOOLBAR 0" 59419 4 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{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" 172 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" +"{WK_00000001_CmdLine}" "WINDOW" 59422 0 2 "0.07" 172 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 1 "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" 172 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 "0.67" 172 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" -"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 260 560 340 350 200 18 0 "" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 354 560 340 350 200 18 0 "" "0.0" "{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 3 "0.00" 0 0 0 0 0 18 0 "" "0.0" "{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" "{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" @@ -515,7 +516,7 @@ "{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000023_RTOS}" "TOOLBAR 0" 59419 2 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000025_HELPSYSTEMTOOL}" "TOOLBAR 0" 59419 0 0 "0.00" 0 788 192 0 0 5 0 "" "0.0" -"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0" +"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000027_EVENT}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" "{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 0 0 "0.00" 0 559 254 0 0 5 0 "" "0.0" "{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 17 0 "" "0.0" @@ -524,7 +525,8 @@ [WINDOW_POSITION_STATE_DATA_VD4] [WINDOW_Z_ORDER] "{WK_TB00000028_RTOSDEBUG} TOOLBAR 0" -"{WK_TB00000025_HELPSYSTEMTOOL} TOOLBAR 0" +"{WK_TB00000013_SYMBOL} TOOLBAR 0" +"{WK_TB00000011_CPU} TOOLBAR 0" [TARGET_NAME] "RX E1/E20 SYSTEM" "" 0 [STATUSBAR_STATEINFO_VD1] diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/hd44780.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/hd44780.c index d403156ce..43bf94ad6 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/hd44780.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/hd44780.c @@ -21,7 +21,7 @@ /* Bus controls */ #include "iodefine.h" /* Device specific include file */ -#include "rskrx62ndef.h" +#include "rskrx210def.h" #define IF_BUS 4 /* Data bus width (4 or 8) */ #define IF_INIT() {} /* Initialize control port */ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h index 0c48f47a3..5a989ce1f 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h @@ -1,41 +1,41 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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. diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h similarity index 74% rename from Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h rename to Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h index c65ab0a7f..0dca415bc 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx62ndef.h +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/rskrx210def.h @@ -29,16 +29,34 @@ Macro definitions ******************************************************************************/ /* System Clock Settings */ +#define CLK_SRC_HOCO 0 /* DETAIL THIS LATER !!!! */ - +#if (CLK_SRC_HOCO == 0) +/* External xtal and PLL circuit */ +#define XTAL_FREQUENCY (20000000L) +#define PLL_MUL (8) +#define PLL_INPUT_FREQ_DIV (2) +#define ICLK_DIV (2) +#define PCLK_DIV (8) +#define BCLK_DIV (8) +#define PLL_FREQUENCY (XTAL_FREQUENCY * (PLL_MUL / PLL_INPUT_FREQ_DIV)) +#define ICLK_FREQUENCY (PLL_FREQUENCY / ICLK_DIV) +#define PCLK_FREQUENCY (PLL_FREQUENCY / PCLK_DIV) +#define BCLK_FREQUENCY (PLL_FREQUENCY / BCLK_DIV) +#else +/* Internal high speed on-chip oscillator (HOCO) */ #define XTAL_FREQUENCY (50000000L) -#define ICLK_MUL (1) -#define PCLK_MUL (2) -#define BCLK_MUL (2) -#define ICLK_FREQUENCY (XTAL_FREQUENCY * ICLK_MUL) -#define PCLK_FREQUENCY (XTAL_FREQUENCY / PCLK_MUL) -#define BCLK_FREQUENCY (XTAL_FREQUENCY / BCLK_MUL) +#define PLL_MUL (1) +#define PLL_INPUT_FREQ_DIV (1) +#define ICLK_DIV (2) +#define PCLK_DIV (8) +#define BCLK_DIV (8) +#define PLL_FREQUENCY (XTAL_FREQUENCY * (PLL_MUL / PLL_INPUT_FREQ_DIV)) +#define ICLK_FREQUENCY (PLL_FREQUENCY / ICLK_DIV) +#define PCLK_FREQUENCY (PLL_FREQUENCY / PCLK_DIV) +#define BCLK_FREQUENCY (PLL_FREQUENCY / BCLK_DIV) +#endif #define CMT0_CLK_SELECT (512) diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/lcd.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/lcd.c index 4f592fae2..930111b49 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/lcd.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/lcd.c @@ -27,7 +27,7 @@ User Includes /* iodefine.h provides a structure to access all of the device registers. */ #include "iodefine.h" /* rsk1664def.h provides common defines for widely used items. */ -#include "rskrx62ndef.h" +#include "rskrx210def.h" #include "lcd.h" /* Kernel includes. */ diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c index 70cdc02d6..5b63f6323 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c @@ -1,41 +1,41 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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. diff --git a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c index 99b6d756f..8c1b693d0 100644 --- a/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c +++ b/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c @@ -1,38 +1,38 @@ /* - FreeRTOS V6.1.1 - Copyright (C) 2011 Real Time Engineers Ltd. + FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. + *************************************************************************** - * * - * If you are: * - * * - * + New to FreeRTOS, * - * + Wanting to learn FreeRTOS or multitasking in general quickly * - * + Looking for basic training, * - * + Wanting to improve your FreeRTOS skills and productivity * - * * - * then take a look at the FreeRTOS books - available as PDF or paperback * - * * - * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * - * http://www.FreeRTOS.org/Documentation * - * * - * A pdf reference manual is also available. Both are usually delivered * - * to your inbox within 20 minutes to two hours when purchased between 8am * - * and 8pm GMT (although please allow up to 24 hours in case of * - * exceptional circumstances). Thank you for your support! * - * * + * * + * 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 exception 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 + >>>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 @@ -120,6 +120,7 @@ * of all the 8bit timers (as two cascaded 16bit units). */ +/* Standard includes. */ #include /* Hardware specific includes. */ @@ -143,8 +144,8 @@ #include "GenQTest.h" #include "QPeek.h" #include "recmutex.h" -//#include "flop.h" +/* Peripheral includes. */ #include "lcd.h" /* Values that are passed into the reg test tasks using the task parameter. The @@ -233,17 +234,6 @@ static void prvRegTest2Implementation( void ); static void prvCheckTask( void *pvParameters ); -/* - * The LCD task as described at the top of this file. - */ - - - -/* - * Contains the implementation of the WEB server. - */ -extern void vuIP_Task( void *pvParameters ); - /*-----------------------------------------------------------*/ /* Variables that are incremented on each iteration of the reg test tasks - @@ -285,8 +275,6 @@ 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 ); - /* The web server task. */ -// xTaskCreate( vuIP_Task, "uIP", mainuIP_STACK_SIZE, NULL, mainuIP_TASK_PRIORITY, NULL ); /* LCD task */ LCD_Mutex = xSemaphoreCreateMutex(); -- 2.39.5