establish flushing of uart to leverage buffering putchar()

This commit is contained in:
devsaurus 2017-04-18 22:43:03 +02:00
parent b72cb34d6e
commit 018a67a710
3 changed files with 9 additions and 0 deletions

View File

@ -131,6 +131,7 @@ static int uart_write( lua_State* L )
if( len > 255 ) if( len > 255 )
return luaL_error( L, "invalid number" ); return luaL_error( L, "invalid number" );
platform_uart_send( id, (uint8_t)len ); platform_uart_send( id, (uint8_t)len );
platform_uart_flush( id );
} }
else else
{ {
@ -138,6 +139,7 @@ static int uart_write( lua_State* L )
buf = lua_tolstring( L, s, &len ); buf = lua_tolstring( L, s, &len );
for( i = 0; i < len; i ++ ) for( i = 0; i < len; i ++ )
platform_uart_send( id, buf[ i ] ); platform_uart_send( id, buf[ i ] );
platform_uart_flush( id );
} }
} }
return 0; return 0;

View File

@ -72,6 +72,7 @@ enum
static inline int platform_uart_exists( unsigned id ) { return id < NUM_UART; } static inline int platform_uart_exists( unsigned id ) { return id < NUM_UART; }
uint32_t platform_uart_setup( unsigned id, uint32_t baud, int databits, int parity, int stopbits ); uint32_t platform_uart_setup( unsigned id, uint32_t baud, int databits, int parity, int stopbits );
void platform_uart_send( unsigned id, uint8_t data ); void platform_uart_send( unsigned id, uint8_t data );
void platform_uart_flush( unsigned id );
int platform_uart_set_flow_control( unsigned id, int type ); int platform_uart_set_flow_control( unsigned id, int type );

View File

@ -68,6 +68,12 @@ void platform_uart_send( unsigned id, uint8_t data )
putchar (data); putchar (data);
} }
void platform_uart_flush( unsigned id )
{
if (id == CONSOLE_UART)
fflush (stdout);
}
// ***************************************************************************** // *****************************************************************************
// Sigma-Delta platform interface // Sigma-Delta platform interface