Ymodem
Thomas Doerfler
Thomas.Doerfler at imd-systems.de
Thu Nov 4 08:33:30 UTC 2004
Etienne,
from your previous postings I read that you use
"high-level-I/O" like fgetc etc. Maybe it would be
better to use the low-level functions like "read"
"write" for this. The "f*" function set has another
line buffer implemented in the newlib, and this
might interfer with your data stream...
wkr,
Thomas.
> Hi Thomas,
> I have a LOT of problems getting my "console compatible" YMODEM transfer
> to work. Some file get transferred (not completely since I didn't
> implement the EOT respond code), the same file can hang in the middle of
> the transfer (RTEMS is then in a waiting loop, probably waiting for a
> semaphore to be available), and some file hang at the very beginning,
> just after the first init packet (which contains the filename and file
> length).
>
> I suspect something with the console configuration. But I still don't
> understand every implication of the console settings you talked to me
> about.
>
> Here's the code:
>
> struct termios old_termsettings_stdin;
> struct termios old_termsettings_stdout;
> struct termios new_termsettings_stdin;
> struct termios new_termsettings_stdout;
>
> tcgetattr(fileno(stdin), &old_termsettings_stdin);
> tcgetattr(fileno(stdout), &old_termsettings_stdout);
>
> memcpy(&new_termsettings_stdin, &old_termsettings_stdin,
> sizeof(struct termios));
> new_termsettings_stdin.c_lflag &=
> ~(ISIG|ICANON|ECHO|ECHONL|ECHOK|ECHOE|ECHOPRT|ECHOCTL);
> new_termsettings_stdin.c_oflag = 0;
> new_termsettings_stdin.c_cc[VMIN] = 0;
> new_termsettings_stdin.c_cc[VTIME] = 10;
>
> memcpy(&new_termsettings_stdout, &old_termsettings_stdout,
> sizeof(struct termios));
> new_termsettings_stdout.c_lflag &=
> ~(ISIG|ICANON|ECHO|ECHONL|ECHOK|ECHOE|ECHOPRT|ECHOCTL);
> new_termsettings_stdout.c_oflag = 0;
> new_termsettings_stdout.c_cc[VMIN] = 0;
> new_termsettings_stdout.c_cc[VTIME] = 10;
>
> tcsetattr(fileno(stdin), TCSANOW, &new_termsettings_stdin);
> tcsetattr(fileno(stdout), TCSANOW, &new_termsettings_stdout);
>
>
> Any idea what I'm doing wrong in the config?
>
> Etienne Fortin
> Sensio
>
>
--------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler Herbststrasse 8
D-82178 Puchheim Germany
email: Thomas.Doerfler at imd-systems.de
PGP public key available at: http://www.imd-
systems.de/pgp_keys.htm
More information about the users
mailing list