diff --git a/doc/en/building.txt b/doc/en/building.txt index f54894cb..31b8a872 100644 --- a/doc/en/building.txt +++ b/doc/en/building.txt @@ -84,7 +84,7 @@ You need to enable this if you want to use the link:refman_gen_term.html[term mo #define BUILD_TERM -link:#static[Static configuration data dependencies]: *CON_UART_ID, CON_UART_SPEED, CON_TIMER_ID, TERM_LINES, TERM_COLS* +link:#static[Static configuration data dependencies]: *CON_UART_ID, CON_UART_SPEED, CON_TIMER_ID, CON_FLOW_TYPE, TERM_LINES, TERM_COLS* o|BUILD_UIP |= SERMUX_SERVICE_ID_FIRST ) return PLATFORM_ERR; return platform_s_uart_set_flow_control( id, type ); -#endif // #ifndef PLATFORM_UART_SET_FLOW_CONTROL } diff --git a/src/platform/at91sam7x/platform.c b/src/platform/at91sam7x/platform.c index 747a5096..54a0a852 100644 --- a/src/platform/at91sam7x/platform.c +++ b/src/platform/at91sam7x/platform.c @@ -243,6 +243,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return USART_Read( base, 0 ); } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timer functions diff --git a/src/platform/avr32/platform.c b/src/platform/avr32/platform.c index 909f441f..64e41f4d 100644 --- a/src/platform/avr32/platform.c +++ b/src/platform/avr32/platform.c @@ -440,6 +440,18 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return usart_getchar( pusart ); } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + volatile avr32_usart_t *pusart = ( volatile avr32_usart_t* )uart_base_addr[ id ]; + + // AVR32 only supports combined RTS/CTS flow control + if( type != PLATFORM_UART_FLOW_NONE && type != ( PLATFORM_UART_FLOW_RTS | PLATFORM_UART_FLOW_CTS ) ) + return PLATFORM_ERR; + pusart->mr &= ~AVR32_USART_MR_MODE_MASK; + pusart->mr |= ( type == PLATFORM_UART_FLOW_NONE ? AVR32_USART_MR_MODE_NORMAL : AVR32_USART_MR_MODE_HARDWARE ) << AVR32_USART_MR_MODE_OFFSET; + return PLATFORM_OK; +} + // **************************************************************************** // Timer functions diff --git a/src/platform/i386/platform.c b/src/platform/i386/platform.c index 58e5e5b0..bf8e80a8 100644 --- a/src/platform/i386/platform.c +++ b/src/platform/i386/platform.c @@ -155,6 +155,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return -1; } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // "Dummy" timer functions diff --git a/src/platform/lm3s/platform.c b/src/platform/lm3s/platform.c index e404f81a..1aa49c4f 100644 --- a/src/platform/lm3s/platform.c +++ b/src/platform/lm3s/platform.c @@ -463,6 +463,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return MAP_UARTCharGet( base ); } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timers // Same on LM3S8962, LM3S6965, LM3S6918 and LM3S9B92 (4 timers) diff --git a/src/platform/lpc17xx/platform.c b/src/platform/lpc17xx/platform.c index 42672b93..6c3c79eb 100644 --- a/src/platform/lpc17xx/platform.c +++ b/src/platform/lpc17xx/platform.c @@ -230,6 +230,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return ( int )buffer; } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timer section diff --git a/src/platform/lpc24xx/platform.c b/src/platform/lpc24xx/platform.c index 6e14f416..935be487 100644 --- a/src/platform/lpc24xx/platform.c +++ b/src/platform/lpc24xx/platform.c @@ -405,6 +405,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return *UxRBR; } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timer section diff --git a/src/platform/lpc288x/platform.c b/src/platform/lpc288x/platform.c index a0aa75a7..c65a037a 100644 --- a/src/platform/lpc288x/platform.c +++ b/src/platform/lpc288x/platform.c @@ -128,6 +128,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return uart_read(); } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timer diff --git a/src/platform/sim/platform.c b/src/platform/sim/platform.c index bf812440..2b03c729 100644 --- a/src/platform/sim/platform.c +++ b/src/platform/sim/platform.c @@ -137,6 +137,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return -1; } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // "Dummy" timer functions diff --git a/src/platform/stm32/platform_conf.h b/src/platform/stm32/platform_conf.h index 72b6981f..ad97d0b7 100755 --- a/src/platform/stm32/platform_conf.h +++ b/src/platform/stm32/platform_conf.h @@ -30,8 +30,6 @@ #define BUILD_C_INT_HANDLERS #define BUILD_LUA_INT_HANDLERS -#define PLATFORM_UART_SET_FLOW_CONTROL - // ***************************************************************************** // UART/Timer IDs configuration data (used in main.c) diff --git a/src/platform/str7/platform.c b/src/platform/str7/platform.c index 136044ee..0bebcb62 100644 --- a/src/platform/str7/platform.c +++ b/src/platform/str7/platform.c @@ -195,6 +195,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return UART_ByteReceive( pport ); } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timer diff --git a/src/platform/str9/platform.c b/src/platform/str9/platform.c index f1331b31..4247868a 100644 --- a/src/platform/str9/platform.c +++ b/src/platform/str9/platform.c @@ -285,6 +285,11 @@ int platform_s_uart_recv( unsigned id, s32 timeout ) return UART_ReceiveData( p_uart ); } +int platform_s_uart_set_flow_control( unsigned id, int type ) +{ + return PLATFORM_ERR; +} + // **************************************************************************** // Timer