zephyr/tests/drivers/uart/uart_mix_fifo_poll
Krzysztof Chruscinski c590b3545a drivers: serial: Use microseconds to represent timeout
Updated uart_rx_enable() and uart_tx() to use timeout given
in microseconds. Previously argument was given in milliseconds.
However, there are cases when milliseconds granularity is not
enough and can significantly reduce a throughput, e.g. 1ms is
100 bytes at 1Mb.

Updated 4 drivers which implement asynchronous API. Updated
places where API was used.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-10-12 12:26:56 +02:00
..
boards
src drivers: serial: Use microseconds to represent timeout 2021-10-12 12:26:56 +02:00
CMakeLists.txt cmake: increase minimal required version to 3.20.0 2021-08-20 09:47:34 +02:00
prj.conf
README.txt
testcase.yaml tests: drivers: uart: uart_mix_fifo_poll: Add low power configuration 2021-03-08 12:51:50 +01:00

The purpose of this test is to validate that uart_poll_out call is resilient to
being interrupted by another uart API call. That includes uart_poll_out called
from higher priority context, uart_fifo_fill called from UART interrupt context
and uart_tx called from higher priority context. Preemptions shall not lead to
any bytes being dropped.

This test is establishing 3 context from which uart_poll_out is called:
- main thread
- higher priority thread
- k_timer timeout context

From each context stream of data is being sent. Bytes in streams are encoded as
following: 4 MSB bits contains stream ID, 4 LSB bits are incremented.

Test requires that two pairs of pins are shortened: TX with RX and CTS with RTS.
UART receives loopback data and validates if for each stream (identified by ID)
data is consistent.