Explorar el Código

Implement Serial.availableForWrite()

teensy4-core
PaulStoffregen hace 5 años
padre
commit
412cb705ed
Se han modificado 1 ficheros con 5 adiciones y 21 borrados
  1. +5
    -21
      teensy4/usb_serial.c

+ 5
- 21
teensy4/usb_serial.c Ver fichero



int usb_serial_write_buffer_free(void) int usb_serial_write_buffer_free(void)
{ {
#if 0
uint32_t len;

uint32_t sum = 0;
tx_noautoflush = 1; tx_noautoflush = 1;
if (!tx_packet) {
if (!usb_configuration ||
usb_tx_packet_count(CDC_TX_ENDPOINT) >= TX_PACKET_LIMIT ||
(tx_packet = usb_malloc()) == NULL) {
tx_noautoflush = 0;
return 0;
}
for (uint32_t i=0; i < TX_NUM; i++) {
if (i == tx_head) continue;
if (!(usb_transfer_status(tx_transfer + i) & 0x80)) sum += TX_SIZE;
} }
len = CDC_TX_SIZE - tx_packet->index;
// TODO: Perhaps we need "usb_cdc_transmit_flush_timer = TRANSMIT_FLUSH_TIMEOUT"
// added here, so the SOF interrupt can't take away the available buffer
// space we just promised the user could write without blocking?
// But does this come with other performance downsides? Could it lead to
// buffer data never actually transmitting in some usage cases? More
// investigation is needed.
// https://github.com/PaulStoffregen/cores/issues/10#issuecomment-61514955
tx_noautoflush = 0; tx_noautoflush = 0;
return len;
#endif
return 0;
return sum;
} }


void usb_serial_flush_output(void) void usb_serial_flush_output(void)

Cargando…
Cancelar
Guardar