]> git.sur5r.net Git - freertos/blobdiff - Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
Remove unnecessary use of portLONG, portCHAR and portSHORT.
[freertos] / Demo / ARM7_AT91SAM7S64_IAR / serial / serial.c
index f48699d755e63b510a837e07dfd85e53e7f3468d..d0d112fea38fe05dc70ee8785bc6fc2b67598598 100644 (file)
@@ -1,43 +1,49 @@
 /*\r
-       FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+    FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.\r
 \r
-       This file is part of the FreeRTOS.org distribution.\r
+    This file is part of the FreeRTOS distribution.\r
 \r
-       FreeRTOS.org is free software; you can redistribute it and/or modify\r
-       it under the terms of the GNU General Public License as published by\r
-       the Free Software Foundation; either version 2 of the License, or\r
-       (at your option) any later version.\r
+    FreeRTOS is free software; you can redistribute it and/or modify it    under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation and modified by the FreeRTOS exception.\r
+    **NOTE** The exception to the GPL is included to allow you to distribute a\r
+    combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    Alternative commercial license and support terms are also available upon\r
+    request.  See the licensing section of http://www.FreeRTOS.org for full\r
+    license details.\r
 \r
-       FreeRTOS.org is distributed in the hope that it will be useful,\r
-       but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-       GNU General Public License for more details.\r
+    FreeRTOS is distributed in the hope that it will be useful,    but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details.\r
 \r
-       You should have received a copy of the GNU General Public License\r
-       along with FreeRTOS.org; if not, write to the Free Software\r
-       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+    You should have received a copy of the GNU General Public License along\r
+    with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59\r
+    Temple Place, Suite 330, Boston, MA  02111-1307  USA.\r
 \r
-       A special exception to the GPL can be applied should you wish to distribute\r
-       a combined work that includes FreeRTOS.org, without being obliged to provide\r
-       the source code for any proprietary components.  See the licensing section \r
-       of http://www.FreeRTOS.org for full details of how and when the exception\r
-       can be applied.\r
 \r
-       ***************************************************************************\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * The FreeRTOS eBook and reference manual are available to purchase for a *\r
+    * small fee. Help yourself get started quickly while also helping the     *\r
+    * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *\r
+    *                                                                         *\r
+    ***************************************************************************\r
 \r
-       Please ensure to read the configuration and relevant port sections of the \r
-       online documentation.\r
+    1 tab == 4 spaces!\r
 \r
-       +++ http://www.FreeRTOS.org +++\r
-       Documentation, latest information, license and contact details.  \r
+    Please ensure to read the configuration and relevant port sections of the\r
+    online documentation.\r
 \r
-       +++ http://www.SafeRTOS.com +++\r
-       A version that is certified for use in safety critical systems.\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
 \r
-       +++ http://www.OpenRTOS.com +++\r
-       Commercial support, development, porting, licensing and training services.\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
 \r
-       ***************************************************************************\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
 */\r
 \r
 /* \r
@@ -68,8 +74,8 @@
 #define serINVALID_QUEUE                               ( ( xQueueHandle ) 0 )\r
 #define serHANDLE                                              ( ( xComPortHandle ) 1 )\r
 #define serNO_BLOCK                                            ( ( portTickType ) 0 )\r
-#define serNO_TIMEGUARD                                        ( ( unsigned portLONG ) 0 )\r
-#define serNO_PERIPHERAL_B_SETUP               ( ( unsigned portLONG ) 0 )\r
+#define serNO_TIMEGUARD                                        ( ( unsigned long ) 0 )\r
+#define serNO_PERIPHERAL_B_SETUP               ( ( unsigned long ) 0 )\r
 \r
 \r
 /* Queues used to hold received characters, and characters waiting to be\r
@@ -90,14 +96,14 @@ __arm void vSerialISR( void );
 /*\r
  * See the serial2.h header file.\r
  */\r
-xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
+xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
 {\r
 xComPortHandle xReturn = serHANDLE;\r
 extern void ( vUART_ISR )( void );\r
 \r
        /* Create the queues used to hold Rx and Tx characters. */\r
-       xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );\r
-       xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );\r
+       xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
+       xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
 \r
        /* If the queues were created correctly then setup the serial port \r
        hardware. */\r
@@ -108,7 +114,7 @@ extern void ( vUART_ISR )( void );
                        /* Enable the USART clock. */\r
                        AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_US0 );\r
 \r
-                       AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, ( ( unsigned portLONG ) AT91C_PA5_RXD0 ) | ( ( unsigned portLONG ) AT91C_PA6_TXD0 ), serNO_PERIPHERAL_B_SETUP );\r
+                       AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, ( ( unsigned long ) AT91C_PA5_RXD0 ) | ( ( unsigned long ) AT91C_PA6_TXD0 ), serNO_PERIPHERAL_B_SETUP );\r
 \r
                        /* Set the required protocol. */\r
                        AT91F_US_Configure( serCOM0, configCPU_CLOCK_HZ, AT91C_US_ASYNC_MODE, ulWantedBaud, serNO_TIMEGUARD );\r
@@ -137,7 +143,7 @@ extern void ( vUART_ISR )( void );
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )\r
+signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )\r
 {\r
        /* The port handle is not required as this driver only supports one port. */\r
        ( void ) pxPort;\r
@@ -155,9 +161,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )\r
+void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )\r
 {\r
-signed portCHAR *pxNext;\r
+signed char *pxNext;\r
 \r
        /* A couple of parameters that this port does not use. */\r
        ( void ) usStringLength;\r
@@ -170,7 +176,7 @@ signed portCHAR *pxNext;
        ( void ) pxPort;\r
 \r
        /* Send each character in the string, one at a time. */\r
-       pxNext = ( signed portCHAR * ) pcString;\r
+       pxNext = ( signed char * ) pcString;\r
        while( *pxNext )\r
        {\r
                xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );\r
@@ -179,7 +185,7 @@ signed portCHAR *pxNext;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )\r
+signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )\r
 {\r
        /* Place the character in the queue of characters to be transmitted. */\r
        if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
@@ -209,9 +215,9 @@ within serialISR.s79 which in turn calls this function.  See the port
 documentation on the FreeRTOS.org website for more information. */\r
 __arm void vSerialISR( void )\r
 {\r
-unsigned portLONG ulStatus;\r
-signed portCHAR cChar;\r
-portBASE_TYPE xTaskWokenByTx = pdFALSE, xTaskWokenByPost = pdFALSE;\r
+unsigned long ulStatus;\r
+signed char cChar;\r
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
 \r
        /* What caused the interrupt? */\r
        ulStatus = serCOM0->US_CSR &= serCOM0->US_IMR;\r
@@ -220,7 +226,7 @@ portBASE_TYPE xTaskWokenByTx = pdFALSE, xTaskWokenByPost = pdFALSE;
        {\r
                /* The interrupt was caused by the THR becoming empty.  Are there any\r
                more characters to transmit? */\r
-               if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xTaskWokenByTx ) == pdTRUE )\r
+               if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )\r
                {\r
                        /* A character was retrieved from the queue so can be sent to the\r
                        THR now. */\r
@@ -239,12 +245,12 @@ portBASE_TYPE xTaskWokenByTx = pdFALSE, xTaskWokenByPost = pdFALSE;
                character from the RHR and place it in the queue or received \r
                characters. */\r
                cChar = serCOM0->US_RHR;\r
-               xTaskWokenByPost = xQueueSendFromISR( xRxedChars, &cChar, xTaskWokenByPost );\r
+               xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );\r
        }\r
 \r
        /* If a task was woken by either a character being received or a character \r
        being transmitted then we may need to switch to another task. */\r
-       portEND_SWITCHING_ISR( ( xTaskWokenByPost || xTaskWokenByTx ) );\r
+       portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );\r
 \r
        /* End the interrupt in the AIC. */\r
        AT91C_BASE_AIC->AIC_EOICR = 0;\r