]> git.sur5r.net Git - freertos/commitdiff
Ensure the SmartFusion2 interrupt driven UART drivers are not passed a zero length...
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 14 May 2013 13:22:37 +0000 (13:22 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 14 May 2013 13:22:37 +0000 (13:22 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1897 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

FreeRTOS/Demo/CORTEX_SmartFusion2_M2S050_SoftConsole/RTOSDemo/.cproject
FreeRTOS/Demo/CORTEX_SmartFusion2_M2S050_SoftConsole/RTOSDemo/Full-Demo/UARTCommandConsole.c

index e76a18d35f7662c2c5e945347744315e53df393a..ac1387499c445405a21e48c285be136d7c229c03 100644 (file)
@@ -50,7 +50,7 @@
 </option>\r
 <option id="gnu.c.compiler.option.misc.verbose.1351799799" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" value="true" valueType="boolean"/>\r
 <option id="gnu.c.compiler.option.optimization.flags.435998408" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="-ffunction-sections -fdata-sections" valueType="string"/>\r
-<option id="gnu.c.compiler.option.misc.other.1001754914" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -Wextra" valueType="string"/>\r
+<option id="gnu.c.compiler.option.misc.other.1001754914" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -Wextra" valueType="string"/>\r
 <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.2036217646" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>\r
 </tool>\r
 <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cross.cortexm3.exe.debug.612642130" name="GNU C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cross.cortexm3.exe.debug">\r
index 19d758c1fc37a89fb5bedd1264a69c8d5e2157ed..73aa0178e31c910b9b5a1f81dfda55957dbc78ae 100644 (file)
@@ -240,17 +240,20 @@ static void prvSendBuffer( const uint8_t * pcBuffer, size_t xBufferLength )
 {\r
 const portTickType xVeryShortDelay = 2UL;\r
 \r
-       MSS_UART_irq_tx( ( mss_uart_instance_t * ) pxUART, pcBuffer, xBufferLength );\r
-\r
-       /* Ensure any previous transmissions have completed.  The default UART\r
-       interrupt does not provide an event based method of     signally the end of a Tx\r
-       - this is therefore a crude poll of the Tx end status.  Replacing the\r
-       default UART handler with one that 'gives' a semaphore when the Tx is\r
-       complete would allow this poll loop to be replaced by a simple semaphore\r
-       block. */\r
-       while( MSS_UART_tx_complete( ( mss_uart_instance_t * ) pxUART ) == pdFALSE )\r
+       if( xBufferLength > 0 )\r
        {\r
-               vTaskDelay( xVeryShortDelay );\r
+               MSS_UART_irq_tx( ( mss_uart_instance_t * ) pxUART, pcBuffer, xBufferLength );\r
+\r
+               /* Ensure any previous transmissions have completed.  The default UART\r
+               interrupt does not provide an event based method of     signally the end of a Tx\r
+               - this is therefore a crude poll of the Tx end status.  Replacing the\r
+               default UART handler with one that 'gives' a semaphore when the Tx is\r
+               complete would allow this poll loop to be replaced by a simple semaphore\r
+               block. */\r
+               while( MSS_UART_tx_complete( ( mss_uart_instance_t * ) pxUART ) == pdFALSE )\r
+               {\r
+                       vTaskDelay( xVeryShortDelay );\r
+               }\r
        }\r
 }\r
 /*-----------------------------------------------------------*/\r