From cbf012dedc0ae7e858269051a132d2ed415cdfb0 Mon Sep 17 00:00:00 2001 From: Frank Voorburg Date: Fri, 20 Jan 2017 11:45:38 +0000 Subject: [PATCH] Refs #229. Improved the serial communication implementation in MicroBoot and SerialBoot to support FTDI based virtual COM ports. git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@204 5dc33758-31d5-4daf-9ae8-b24bf3d40d73 --- Host/SerialBoot.exe | Bin 45056 -> 46592 bytes .../interfaces/uart/XcpTransport.pas | 4 ++ Host/Source/SerialBoot/port/linux/timeutil.c | 2 +- .../SerialBoot/port/linux/xcptransport.c | 20 +++++++--- .../SerialBoot/port/win32/xcptransport.c | 36 +++++++++++------- Host/openblt_uart.dll | Bin 2459648 -> 2459648 bytes Target/Source/boot.h | 2 +- 7 files changed, 43 insertions(+), 21 deletions(-) diff --git a/Host/SerialBoot.exe b/Host/SerialBoot.exe index 013dd2476bd258d65b997378f5372f26e705f49e..20a4c7fe30e404443b6c784e3b89c983624fde4d 100644 GIT binary patch literal 46592 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

fQriu*-cweJ_y-B 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 literal 45056 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 diff --git a/Host/Source/MicroBoot/interfaces/uart/XcpTransport.pas b/Host/Source/MicroBoot/interfaces/uart/XcpTransport.pas index bbd41614..7964ab5d 100644 --- a/Host/Source/MicroBoot/interfaces/uart/XcpTransport.pas +++ b/Host/Source/MicroBoot/interfaces/uart/XcpTransport.pas @@ -86,6 +86,10 @@ begin sciDriver.DataBits := dbEight; sciDriver.StopBits := sbOneStopBit; sciDriver.Parity.Bits := prNone; + sciDriver.FlowControl.XonXoffOut := false; + sciDriver.FlowControl.XonXoffIn := false; + sciDriver.FlowControl.ControlRTS := rtsDisable; + sciDriver.FlowControl.ControlDTR := dtrEnable; // reset packet length packetLen := 0; diff --git a/Host/Source/SerialBoot/port/linux/timeutil.c b/Host/Source/SerialBoot/port/linux/timeutil.c index 0125127d..79a6db15 100644 --- a/Host/Source/SerialBoot/port/linux/timeutil.c +++ b/Host/Source/SerialBoot/port/linux/timeutil.c @@ -33,7 +33,7 @@ #include /* C types */ #include /* UNIX standard functions */ #include /* file control definitions */ -#include /* time definitions */ +#include /* time definitions */ /************************************************************************************//** diff --git a/Host/Source/SerialBoot/port/linux/xcptransport.c b/Host/Source/SerialBoot/port/linux/xcptransport.c index 04f92cd8..40229aa9 100644 --- a/Host/Source/SerialBoot/port/linux/xcptransport.c +++ b/Host/Source/SerialBoot/port/linux/xcptransport.c @@ -37,6 +37,7 @@ #include /* file control definitions */ #include /* error number definitions */ #include /* POSIX terminal control */ +#include /* system I/O control */ #include "xcpmaster.h" /* XCP master protocol module */ #include "timeutil.h" /* time utility module */ @@ -79,6 +80,7 @@ static sb_int32 hUart = UART_INVALID_HANDLE; sb_uint8 XcpTransportInit(sb_char *device, sb_uint32 baudrate) { struct termios options; + int iFlags; /* open the port */ hUart = open(device, O_RDWR | O_NOCTTY | O_NDELAY); @@ -132,6 +134,9 @@ sb_uint8 XcpTransportInit(sb_char *device, sb_uint32 baudrate) XcpTransportClose(); return SB_FALSE; } + /* turn on DTR */ + iFlags = TIOCM_DTR; + ioctl(hUart, TIOCMBIS, &iFlags); /* success */ return SB_TRUE; } /*** end of XcpTransportInit ***/ @@ -183,16 +188,21 @@ sb_uint8 XcpTransportSendPacket(sb_uint8 *data, sb_uint8 len, sb_uint16 timeOutM /* read the first byte, which contains the length of the xcp packet that follows */ bytesToRead = 1; - uartReadDataPtr = &responsePacket.len; + responsePacket.len = 0; while(bytesToRead > 0) { - result = read(hUart, uartReadDataPtr, bytesToRead); + result = read(hUart, &responsePacket.len, bytesToRead); if (result != -1) { bytesRead = result; - /* update the bytes that were already read */ - uartReadDataPtr += bytesRead; - bytesToRead -= bytesRead; + /* one byte should be read and it should contain the packet length, which cannot be 0 */ + if ((bytesRead == bytesToRead) && (responsePacket.len > 0)) + { + /* valid packet length received so stop this loop to continue with the reception + * remaining packet bytes + */ + bytesToRead = 0; + } } /* check for timeout if not yet done */ if ( (bytesToRead > 0) && (TimeUtilGetSystemTimeMs() >= timeoutTime) ) diff --git a/Host/Source/SerialBoot/port/win32/xcptransport.c b/Host/Source/SerialBoot/port/win32/xcptransport.c index 17b0bce6..3ea1323d 100644 --- a/Host/Source/SerialBoot/port/win32/xcptransport.c +++ b/Host/Source/SerialBoot/port/win32/xcptransport.c @@ -47,9 +47,6 @@ #define XCP_MASTER_UART_MAX_DATA ((XCP_MASTER_TX_MAX_DATA>XCP_MASTER_RX_MAX_DATA) ? \ (XCP_MASTER_TX_MAX_DATA+1) : (XCP_MASTER_RX_MAX_DATA+1)) -/** \brief The smallest time in millisecond that the UART is configured for. */ -#define UART_RX_TIMEOUT_MIN_MS (5) - /**************************************************************************************** * Local data declarations @@ -97,6 +94,11 @@ sb_uint8 XcpTransportInit(sb_char *device, sb_uint32 baudrate) dcbSerialParams.ByteSize = 8; dcbSerialParams.StopBits = ONESTOPBIT; dcbSerialParams.Parity = NOPARITY; + dcbSerialParams.fOutX = FALSE; + dcbSerialParams.fInX = FALSE; + dcbSerialParams.fRtsControl = RTS_CONTROL_DISABLE; + dcbSerialParams.fDtrControl = DTR_CONTROL_ENABLE; + if (!SetCommState(hUart, &dcbSerialParams)) { XcpTransportClose(); @@ -104,11 +106,12 @@ sb_uint8 XcpTransportInit(sb_char *device, sb_uint32 baudrate) } /* set communication timeout parameters */ - timeouts.ReadIntervalTimeout = UART_RX_TIMEOUT_MIN_MS; - timeouts.ReadTotalTimeoutConstant = UART_RX_TIMEOUT_MIN_MS; - timeouts.ReadTotalTimeoutMultiplier = 1; - timeouts.WriteTotalTimeoutConstant = UART_RX_TIMEOUT_MIN_MS; - timeouts.WriteTotalTimeoutMultiplier = 1; + timeouts.ReadIntervalTimeout = 0; + timeouts.ReadTotalTimeoutConstant = 0; + timeouts.ReadTotalTimeoutMultiplier = 100; + timeouts.WriteTotalTimeoutConstant = 0; + timeouts.WriteTotalTimeoutMultiplier = 100; + if (!SetCommTimeouts(hUart, &timeouts)) { XcpTransportClose(); @@ -177,19 +180,24 @@ sb_uint8 XcpTransportSendPacket(sb_uint8 *data, sb_uint8 len, sb_uint16 timeOutM /* ------------------------ XCP packet reception ----------------------------------- */ /* determine timeout time */ - timeoutTime = TimeUtilGetSystemTimeMs() + timeOutMs + UART_RX_TIMEOUT_MIN_MS; + timeoutTime = TimeUtilGetSystemTimeMs() + timeOutMs + 100; /* read the first byte, which contains the length of the xcp packet that follows */ dwToRead = 1; - uartReadDataPtr = &responsePacket.len; + responsePacket.len = 0; while(dwToRead > 0) { dwRead = 0; - if (ReadFile(hUart, uartReadDataPtr, dwToRead, &dwRead, NULL)) + if (ReadFile(hUart, &responsePacket.len, dwToRead, &dwRead, NULL)) { - /* update the bytes that were already read */ - uartReadDataPtr += dwRead; - dwToRead -= dwRead; + /* one byte should be read and it should contain the packet length, which cannot be 0 */ + if ((dwRead == dwToRead) && (responsePacket.len > 0)) + { + /* valid packet length received so stop this loop to continue with the reception + * remaining packet bytes + */ + dwToRead = 0; + } } /* check for timeout if not yet done */ if ( (dwToRead > 0) && (TimeUtilGetSystemTimeMs() >= timeoutTime) ) diff --git a/Host/openblt_uart.dll b/Host/openblt_uart.dll index effd22285801fe5149e854fdd19aae6dfd463f3a..f7930d5ba8e5a0461a80d9cac84a59c539fa0ce6 100644 GIT binary patch delta 37159 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 delta 36900 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