grishkin 0 27 февраля, 2008 Опубликовано 27 февраля, 2008 · Жалоба Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fk0 0 27 февраля, 2008 Опубликовано 27 февраля, 2008 · Жалоба Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать? На счёт ecos не уверен, но в общем случае так: struct termios ts; tcgetattr(FILENO, &ts); cfmakeraw(&ts); ts.c_cc[VMIN]=0, ts.c_cc[VTIME]=TIMEOUT; /* ! */ tcsetattr(FILENO, TCSANOW, &ts); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
grishkin 0 28 февраля, 2008 Опубликовано 28 февраля, 2008 · Жалоба Это работает только, если есть поддержка posix termios, но у меня не получается сконфигурировать eCos с этой поддержкой. Если я включаю posix, eCos не собирается и выдаёт ошибку, что pkgconf/posix.h: Нет такого файла или каталога. В кодах eCos его нет, где он должен быть я не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_shamaev 0 28 февраля, 2008 Опубликовано 28 февраля, 2008 · Жалоба Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать? Если у вас не блокирующее чтение, то что должно происходить по тайм-ауту? А как примеры использования механизмов можно посмотреть в тестах,- благо их в eCos полно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axle 0 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать? А у raw serial driver в eCos нельзя выставить таймауты. Вызов может быть либо блокирующим либо нет. И все. Posix termios вы неправильно подключаете. То что касается termios находится в io/serial, а заголовочный файл подключается через #include <termios.h>. Пакет posix для termios подключать не надо, достаточно isoinfra. Только не уверен, что termios поможет. По моему он вызывает, то же самый raw serial. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
grishkin 0 1 марта, 2008 Опубликовано 1 марта, 2008 · Жалоба Какую функцию для открытия порта нужно использовать при работе через termios: cyg_io_loop или open? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
axle 0 1 марта, 2008 Опубликовано 1 марта, 2008 · Жалоба Какую функцию для открытия порта нужно использовать при работе через termios: cyg_io_loop или open? В общем случае используется cyg_io_lookup(). Но если добавить пакет CYGPKG_IO_FILEIO (слой совместимости с posix file io), то можно использовать fopen(). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться