usbuart: Moved usbuart_set_led_state() into aux_serial.c

This commit is contained in:
dragonmux 2022-08-21 15:01:26 +01:00 committed by Piotr Esden-Tempski
parent 9cb9cda62f
commit 3d707b4497
4 changed files with 27 additions and 23 deletions

View File

@ -22,6 +22,7 @@
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/stm32/usart.h>
#include <libopencm3/stm32/dma.h>
#include <libopencm3/cm3/cortex.h>
#elif defined(LM4F)
#include <libopencm3/lm4f/rcc.h>
#include <libopencm3/lm4f/uart.h>
@ -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];

View File

@ -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*/

View File

@ -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)

View File

@ -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);
}
}