diff --git a/Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf b/Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf
new file mode 100644
index 000000000..607fc9e6d
--- /dev/null
+++ b/Demo/CORTEX_LPC1768_GCC_Rowley/usbser.inf
@@ -0,0 +1,45 @@
+[Version]
+Signature="$Windows NT$"
+Class=Ports
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%LINUX%
+DriverVer=08/17/2004,0.0.2.0
+; Copyright (C) 2004 Al Borchers (alborchers@steinerpoint.com)
+; released under GNU General Public License
+
+[Manufacturer]
+%LINUX%=GSerialDeviceList
+
+[GSerialDeviceList]
+%GSERIAL%=GSerialInstall, USB\VID_FFFF&PID_0005
+
+[DestinationDirs]
+DefaultDestDir=10,System32\Drivers
+
+[GSerialInstall]
+CopyFiles=GSerialCopyFiles
+AddReg=GSerialAddReg
+
+[GSerialCopyFiles]
+usbser.sys
+
+[GSerialAddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,usbser.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[GSerialInstall.Services]
+AddService = usbser,0x0002,GSerialService
+
+[GSerialService]
+DisplayName = %GSERIAL_DISPLAY_NAME%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %10%\System32\Drivers\usbser.sys
+LoadOrderGroup = Base
+
+[Strings]
+LINUX = "Linux"
+GSERIAL = "USB CDC serial port emulation"
+GSERIAL_DISPLAY_NAME = "USB CDC serial port emulation"
\ No newline at end of file
diff --git a/Demo/CORTEX_LPC1768_IAR/main.c b/Demo/CORTEX_LPC1768_IAR/main.c
index 6074eda47..9e3588185 100644
--- a/Demo/CORTEX_LPC1768_IAR/main.c
+++ b/Demo/CORTEX_LPC1768_IAR/main.c
@@ -91,11 +91,15 @@
tick hook). */
#define mainCHECK_DELAY ( ( portTickType ) 5000 / portTICK_RATE_MS )
+/* The toggle rate for the LED. */
+#define mainLED_TOGGLE_RATE ( ( portTickType ) 1000 / portTICK_RATE_MS )
+
/* Task priorities. */
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainUIP_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
+#define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
@@ -125,6 +129,11 @@ extern void vuIP_Task( void *pvParameters );
*/
extern void vUSBTask( void *pvParameters );
+/*
+ * Very basic task that does nothing but use delays to flash an LED.
+ */
+static void prvFlashTask( void *pvParameters );
+
/*
* Simply returns the current status message for display on served WEB pages.
*/
@@ -153,8 +162,11 @@ int main( void )
vStartQueuePeekTasks();
vStartRecursiveMutexTasks();
+ /* Create the simple LED flash task. */
+ xTaskCreate( prvFlashTask, ( signed char * ) "Flash", configMINIMAL_STACK_SIZE, ( void * ) NULL, mainFLASH_TASK_PRIORITY, NULL );
+
/* Create the USB task. */
-// xTaskCreate( vUSBTask, ( signed char * ) "USB", configMINIMAL_STACK_SIZE, ( void * ) NULL, tskIDLE_PRIORITY, NULL );
+ xTaskCreate( vUSBTask, ( signed char * ) "USB", configMINIMAL_STACK_SIZE, ( void * ) NULL, tskIDLE_PRIORITY, NULL );
/* Create the uIP task. The WEB server runs in this task. */
xTaskCreate( vuIP_Task, ( signed char * ) "uIP", mainBASIC_WEB_STACK_SIZE, ( void * ) NULL, mainUIP_TASK_PRIORITY, NULL );
@@ -217,7 +229,22 @@ static unsigned portLONG ulTicksSinceLastDisplay = 0;
{
pcStatusMessage = "An error has been detected in the Mutex test/demo.";
}
-
+ }
+}
+/*-----------------------------------------------------------*/
+
+static void prvFlashTask( void *pvParameters )
+{
+portTickType xLastFlashTime;
+
+ /* We need to initialise xLastFlashTime prior to the first call to
+ vTaskDelayUntil(). */
+ xLastFlashTime = xTaskGetTickCount();
+
+ for(;;)
+ {
+ /* Simply toggle the LED between delays. */
+ vTaskDelayUntil( &xLastFlashTime, mainLED_TOGGLE_RATE );
vParTestToggleLED( 0 );
}
}
@@ -261,10 +288,10 @@ void prvSetupHardware( void )
/* select main OSC, 12MHz, as the PLL clock source. */
SC->CLKSRCSEL = 0x1;
- SC->PLL0CFG = 0x0b;
+ SC->PLL0CFG = 0x20031;
SC->PLL0FEED = PLLFEED_FEED1;
SC->PLL0FEED = PLLFEED_FEED2;
-
+
/* Enable PLL, disconnected. */
SC->PLL0CON = 1;
SC->PLL0FEED = PLLFEED_FEED1;
@@ -274,7 +301,7 @@ void prvSetupHardware( void )
SC->CCLKCFG = 0x03;
/* Configure flash accelerator. */
- SC->FLASHCFG = 0x303a;
+ SC->FLASHCFG = 0x403a;
/* Check lock bit status. */
while( ( ( SC->PLL0STAT & ( 1 << 26 ) ) == 0 ) );
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt
index f2b037c02..182e449d2 100644
--- a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt
+++ b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dbgdt
@@ -19,7 +19,7 @@
- 124272727
+ 277272727
@@ -55,7 +55,7 @@
Workspace
- RTOSDemoRTOSDemo/WEB Server
+ RTOSDemo
@@ -65,14 +65,14 @@
- TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\main.c013851515151TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\ARM_CM3\port.c014558215821TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\ParTest.c07634673467TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c010553478834788TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\emac.c0130527352734TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\EthDev_LPC17xx.h028217892179020100000010000001
+ TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\main.c0146526652660TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\ARM_CM3\port.c014558215821TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\ParTest.c07634673467TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c010553478834788TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\emac.c013052735273TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\EthDev_LPC17xx.h02821789217902TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\httpd-cgi.c0000TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\FreeRTOSConfig.h045000100000010000001
- iaridepm.enu1debuggergui.enu1-2-2742198-2-2200200142857203252142857756098-2-21981402-2-214042001002857203252142857203252
+ iaridepm.enu1debuggergui.enu1-2-2742351-2-2200200142857203252252143756098-2-21981402-2-214042001002857203252142857203252
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
index 23207c418..1929cbebc 100644
--- a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
+++ b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.dni
@@ -1,5 +1,5 @@
[DebugChecksum]
-Checksum=1859043743
+Checksum=-1523643934
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
diff --git a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
index ff734cf3c..fdfdeb890 100644
--- a/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
+++ b/Demo/CORTEX_LPC1768_IAR/settings/RTOSDemo.wsdt
@@ -25,7 +25,7 @@
-
+
TabID-17246-25544
@@ -37,7 +37,7 @@
- 0
+ 0
TabID-17664-26559
@@ -47,20 +47,20 @@
TabID-11527-1227Find in FilesFind-in-FilesTabID-6216-4192Debug LogDebug-Log
- 0
+ 0
- TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\main.c013851515151TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\ARM_CM3\port.c014558215821TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\ParTest.c07634673467TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c010553478834788TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\emac.c0130527352734TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\EthDev_LPC17xx.h028217892179020100000010000001
+ TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\main.c0146526652660TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\ARM_CM3\port.c014558215821TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\ParTest.c07634673467TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c010553478834788TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\emac.c013052735273TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\EthDev_LPC17xx.h02821789217902TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\webserver\httpd-cgi.c0000TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\CORTEX_LPC1768_IAR\FreeRTOSConfig.h045000100000010000001
- iaridepm.enu1-2-2640389-2-2200200142857203252279286652439-2-23001402-2-214043021002857306911142857203252
+ iaridepm.enu1-2-2640389-2-2200200142857203252279286652439-2-23001402-2-214043021002857306911142857203252
diff --git a/Demo/CORTEX_LPC1768_IAR/usbser.inf b/Demo/CORTEX_LPC1768_IAR/usbser.inf
new file mode 100644
index 000000000..607fc9e6d
--- /dev/null
+++ b/Demo/CORTEX_LPC1768_IAR/usbser.inf
@@ -0,0 +1,45 @@
+[Version]
+Signature="$Windows NT$"
+Class=Ports
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%LINUX%
+DriverVer=08/17/2004,0.0.2.0
+; Copyright (C) 2004 Al Borchers (alborchers@steinerpoint.com)
+; released under GNU General Public License
+
+[Manufacturer]
+%LINUX%=GSerialDeviceList
+
+[GSerialDeviceList]
+%GSERIAL%=GSerialInstall, USB\VID_FFFF&PID_0005
+
+[DestinationDirs]
+DefaultDestDir=10,System32\Drivers
+
+[GSerialInstall]
+CopyFiles=GSerialCopyFiles
+AddReg=GSerialAddReg
+
+[GSerialCopyFiles]
+usbser.sys
+
+[GSerialAddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,usbser.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[GSerialInstall.Services]
+AddService = usbser,0x0002,GSerialService
+
+[GSerialService]
+DisplayName = %GSERIAL_DISPLAY_NAME%
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER
+StartType = 3 ; SERVICE_DEMAND_START
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL
+ServiceBinary = %10%\System32\Drivers\usbser.sys
+LoadOrderGroup = Base
+
+[Strings]
+LINUX = "Linux"
+GSERIAL = "USB CDC serial port emulation"
+GSERIAL_DISPLAY_NAME = "USB CDC serial port emulation"
\ No newline at end of file