summaryrefslogtreecommitdiff
path: root/apps/system/zmodem/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'apps/system/zmodem/README.txt')
-rwxr-xr-xapps/system/zmodem/README.txt35
1 files changed, 32 insertions, 3 deletions
diff --git a/apps/system/zmodem/README.txt b/apps/system/zmodem/README.txt
index 4217e66aa..9048a82d9 100755
--- a/apps/system/zmodem/README.txt
+++ b/apps/system/zmodem/README.txt
@@ -65,6 +65,7 @@ Using NuttX Zmodem with a Linux Host
using 9600 baud for the data transfers -- high rates may result in data
overruns):
+ $ sudo stty -F /dev/ttyS0 raw # Puts the TTY in raw transfer mode
$ sudo stty -F /dev/ttyS0 9600 # Select 9600 BAUD
$ sudo stty -F /dev/ttyS0 crtscts # Enables CTS/RTS handshaking
$ sudo stty -F /dev/ttyS0 # Show the TTY configuration
@@ -105,6 +106,7 @@ Using NuttX Zmodem with a Linux Host
9600 baud for the data transfers -- high rates may result in data
overruns):
+ $ sudo stty -F /dev/ttyS0 raw # Puts the TTY in raw transfer mode
$ sudo stty -F /dev/ttyS0 9600 # Select 9600 BAUD
$ sudo stty -F /dev/ttyS0 crtscts # Enables CTS/RTS handshaking
$ sudo stty -F /dev/ttyS0 # Show the TTY configuration
@@ -144,12 +146,39 @@ Using NuttX Zmodem with a Linux Host
the previously received data to the file and the serial driver's RX
buffer is overrun by a few bytes while the write is in progress.
As a result, when it reads the next buffer of data, a few bytes may
- be missing (maybe 10). Either (1) we need a more courteous host
- application, or (2) we need to greatly improve the target side
- buffering capability!
+ be missing (maybe 10). The symptom of this missing data is a CRC check
+ failure.
+
+ Either (1) we need a more courteous host application, or (2) we
+ need to greatly improve the target side buffering capability!
+ Either (1) we need a more courteous host application, or (2) we
+ need to greatly improve the target side buffering capability!
My thought now is to implement the NuttX sz and rz commands as
PC side applications as well. Matching both sides and obeying
the handshaking will solve the issues. Another option might be
to fix the serial driver hardware flow control somehow.
+ sz has several command line options which one would think would
+ alleviate these problems. But as of yet, I have not found a
+ combination of options that does so:
+
+ -L N, --packetlen N
+ Use ZMODEM sub-packets of length N. A larger N (32 <= N <= 1024)
+ gives slightly higher throughput, a smaller N speeds error
+ recovery. The default is 128 below 300 baud, 256 above 300 baud,
+ or 1024 above 2400 baud.
+
+ -l N, --framelen N
+ Wait for the receiver to acknowledge correct data every N
+ (32 <= N <= 1024) characters. This may be used to avoid network
+ overrun when XOFF flow control is lacking.
+
+ -w N, --windowsize N
+ Limit the transmit window size to N bytes (ZMODEM).
+
+ UPDATE: I have verified that with debug off and at lower serial
+ BAUD (1200), the transfers of large fails succeed without errors.
+ You may need the Linux sz -O option to keep it from timing out
+ in these low BAUD transfers.
+