From: Florent Kermarrec Date: Fri, 15 Feb 2019 23:08:24 +0000 (+0100) Subject: soc/tools/remote/comm_uart: be sure to flush in waiting bytes before read and write X-Git-Tag: 24jan2021_ls180~1392 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ff155a474d12b62fb84db0ca07d2577687c5c141;p=litex.git soc/tools/remote/comm_uart: be sure to flush in waiting bytes before read and write --- diff --git a/litex/soc/tools/remote/comm_uart.py b/litex/soc/tools/remote/comm_uart.py index b6a8f1c6..0a056ec7 100644 --- a/litex/soc/tools/remote/comm_uart.py +++ b/litex/soc/tools/remote/comm_uart.py @@ -38,7 +38,12 @@ class CommUART: remaining -= written pos += written + def _flush(self): + if self.port.inWaiting() > 0: + self.port.read(self.port.inWaiting()) + def read(self, addr, length=None): + self._flush() data = [] length_int = 1 if length is None else length self._write([self.msg_type["read"], length_int]) @@ -53,6 +58,7 @@ class CommUART: return data def write(self, addr, data): + self._flush() data = data if isinstance(data, list) else [data] length = len(data) offset = 0