From 3d707b4497c16d9b6a707290476e634dcb4ceca7 Mon Sep 17 00:00:00 2001 From: dragonmux Date: Sun, 21 Aug 2022 15:01:26 +0100 Subject: [PATCH] usbuart: Moved usbuart_set_led_state() into aux_serial.c --- src/platforms/common/aux_serial.c | 23 +++++++++++++++++++++++ src/platforms/common/aux_serial.h | 4 ++++ src/platforms/common/usbuart.h | 1 - src/platforms/stm32/usbuart.c | 22 ---------------------- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/platforms/common/aux_serial.c b/src/platforms/common/aux_serial.c index 1057a03..82dbb5f 100644 --- a/src/platforms/common/aux_serial.c +++ b/src/platforms/common/aux_serial.c @@ -22,6 +22,7 @@ #include #include #include +#include #elif defined(LM4F) #include #include @@ -233,6 +234,28 @@ void aux_serial_set_encoding(struct usb_cdc_line_coding *coding) } #if defined(STM32F0) || defined(STM32F1) || defined(STM32F3) || defined(STM32F4) +/* + * Update led state atomically respecting RX anb TX states. + */ +void usbuart_set_led_state(uint8_t ledn, bool state) +{ + CM_ATOMIC_CONTEXT(); + + static uint8_t led_state = 0; + + if (state) + { + led_state |= ledn; + gpio_set(LED_PORT_UART, LED_UART); + } + else + { + led_state &= ~ledn; + if (!led_state) + gpio_clear(LED_PORT_UART, LED_UART); + } +} + char *aux_serial_current_transmit_buffer(void) { return aux_serial_transmit_buffer[aux_serial_transmit_buffer_index]; diff --git a/src/platforms/common/aux_serial.h b/src/platforms/common/aux_serial.h index c25705f..d787e0c 100644 --- a/src/platforms/common/aux_serial.h +++ b/src/platforms/common/aux_serial.h @@ -28,6 +28,8 @@ void aux_serial_init(void); void aux_serial_set_encoding(struct usb_cdc_line_coding *coding); #if defined(STM32F0) || defined(STM32F1) || defined(STM32F3) || defined(STM32F4) +void usbuart_set_led_state(uint8_t ledn, bool state); + void aux_serial_switch_transmit_buffers(void); #endif @@ -38,6 +40,7 @@ size_t aux_serial_transmit_buffer_fullness(void); /* Send a number of bytes staged into the current transmit bufer */ void aux_serial_send(size_t len); +#if defined(STM32F0) || defined(STM32F1) || defined(STM32F3) || defined(STM32F4) void aux_serial_update_receive_buffer_fullness(void); bool aux_serial_receive_has_data(void); void aux_serial_drain_receive_buffer(void); @@ -45,5 +48,6 @@ void aux_serial_drain_receive_buffer(void); void aux_serial_stage_debug_buffer(void); #endif void aux_serial_stage_receive_buffer(void); +#endif #endif /*AUX_SERIAL_H*/ diff --git a/src/platforms/common/usbuart.h b/src/platforms/common/usbuart.h index ec4f79d..7a7ffb0 100644 --- a/src/platforms/common/usbuart.h +++ b/src/platforms/common/usbuart.h @@ -22,7 +22,6 @@ #include "general.h" -void usbuart_set_led_state(uint8_t ledn, bool state); void debug_uart_run(void); #define TX_LED_ACT (1 << 0) diff --git a/src/platforms/stm32/usbuart.c b/src/platforms/stm32/usbuart.c index 6df3621..b59e6bc 100644 --- a/src/platforms/stm32/usbuart.c +++ b/src/platforms/stm32/usbuart.c @@ -46,25 +46,3 @@ uint8_t usb_dbg_in; /* Debug Fifo out pointer */ uint8_t usb_dbg_out; #endif - -/* - * Update led state atomically respecting RX anb TX states. - */ -void usbuart_set_led_state(uint8_t ledn, bool state) -{ - CM_ATOMIC_CONTEXT(); - - static uint8_t led_state = 0; - - if (state) - { - led_state |= ledn; - gpio_set(LED_PORT_UART, LED_UART); - } - else - { - led_state &= ~ledn; - if (!led_state) - gpio_clear(LED_PORT_UART, LED_UART); - } -}