/*\r
- FreeRTOS.org V4.1.3 - Copyright (C) 2003-2006 Richard Barry.\r
+ FreeRTOS.org V5.1.2 - Copyright (C) 2003-2009 Richard Barry.\r
\r
This file is part of the FreeRTOS.org distribution.\r
\r
of http://www.FreeRTOS.org for full details of how and when the exception\r
can be applied.\r
\r
- ***************************************************************************\r
- See http://www.FreeRTOS.org for documentation, latest information, license\r
- and contact details. Please ensure to read the configuration and relevant\r
- port sections of the online documentation.\r
- ***************************************************************************\r
+ ***************************************************************************\r
+ ***************************************************************************\r
+ * *\r
+ * Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *\r
+ * *\r
+ * This is a concise, step by step, 'hands on' guide that describes both *\r
+ * general multitasking concepts and FreeRTOS specifics. It presents and *\r
+ * explains numerous examples that are written using the FreeRTOS API. *\r
+ * Full source code for all the examples is provided in an accompanying *\r
+ * .zip file. *\r
+ * *\r
+ ***************************************************************************\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the\r
+ online documentation.\r
+\r
+ http://www.FreeRTOS.org - Documentation, latest information, license and \r
+ contact details.\r
+\r
+ http://www.SafeRTOS.com - A version that is certified for use in safety \r
+ critical systems.\r
+\r
+ http://www.OpenRTOS.com - Commercial support, development, porting, \r
+ licensing and training services.\r
*/\r
\r
\r
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);\r
GPIODirModeSet(GPIO_PORTC_BASE, mainPUSH_BUTTON, GPIO_DIR_MODE_IN);\r
GPIOIntTypeSet( GPIO_PORTC_BASE, mainPUSH_BUTTON,GPIO_FALLING_EDGE );\r
+ IntPrioritySet( INT_GPIOC, configKERNEL_INTERRUPT_PRIORITY );\r
GPIOPinIntEnable( GPIO_PORTC_BASE, mainPUSH_BUTTON );\r
IntEnable( INT_GPIOC );\r
\r
\r
/* Enable Tx interrupts. */\r
HWREG( UART0_BASE + UART_O_IM ) |= UART_INT_TX;\r
+ IntPrioritySet( INT_UART0, configKERNEL_INTERRUPT_PRIORITY );\r
IntEnable( INT_UART0 );\r
\r
\r
\r
void vGPIO_ISR( void )\r
{\r
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
+\r
/* Clear the interrupt. */\r
GPIOPinIntClear(GPIO_PORTC_BASE, mainPUSH_BUTTON);\r
\r
/* Wake the button handler task. */\r
- if( xSemaphoreGiveFromISR( xButtonSemaphore, pdFALSE ) )\r
- {\r
- portEND_SWITCHING_ISR( pdTRUE );\r
- }\r
+ xSemaphoreGiveFromISR( xButtonSemaphore, &xHigherPriorityTaskWoken );\r
+\r
+ portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );\r
}\r
/*-----------------------------------------------------------*/\r
\r