реклама на сайте
подробности

 
 
> eCos не блокируемое чтение serial порт, таймаут на приём символо
grishkin
сообщение Feb 27 2008, 14:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 22-01-08
Пользователь №: 34 302



Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Kirill Frolov
сообщение Feb 27 2008, 15:53
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(grishkin @ Feb 27 2008, 17:15) *
Камень 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);


--------------------
[ZX]
Go to the top of the page
 
+Quote Post
grishkin
сообщение Feb 28 2008, 09:01
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 22-01-08
Пользователь №: 34 302



Это работает только, если есть поддержка posix termios, но у меня не получается сконфигурировать eCos с этой поддержкой. Если я включаю posix, eCos не собирается и выдаёт ошибку, что pkgconf/posix.h: Нет такого файла или каталога. В кодах eCos его нет, где он должен быть я не знаю.
Go to the top of the page
 
+Quote Post
v_shamaev
сообщение Feb 28 2008, 20:04
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259



Цитата(grishkin @ Feb 27 2008, 17:15) *
Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать?

Если у вас не блокирующее чтение, то что должно происходить по тайм-ауту? А как примеры использования механизмов можно посмотреть в тестах,- благо их в eCos полно.


--------------------
Водку пьянствовать и безобразия нарушать!!!
Go to the top of the page
 
+Quote Post
axle
сообщение Feb 29 2008, 11:50
Сообщение #5


Частый гость
**

Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167



Цитата(grishkin @ Feb 27 2008, 20:15) *
Камень at91sam7x256. Поставил на него eCos. Сконфигурировал usart0 средствами eCos, не могу найти где выставить таймаут на приём при неблокируемом чтении. Подскажите как это сделать?

А у raw serial driver в eCos нельзя выставить таймауты. Вызов может быть либо блокирующим либо нет. И все.

Posix termios вы неправильно подключаете. То что касается termios находится в io/serial, а заголовочный файл подключается через #include <termios.h>. Пакет posix для termios подключать не надо, достаточно isoinfra.

Только не уверен, что termios поможет. По моему он вызывает, то же самый raw serial.
Go to the top of the page
 
+Quote Post
grishkin
сообщение Mar 1 2008, 08:19
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 22-01-08
Пользователь №: 34 302



Какую функцию для открытия порта нужно использовать при работе через termios: cyg_io_loop или open?
Go to the top of the page
 
+Quote Post
axle
сообщение Mar 1 2008, 13:37
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167



Цитата(grishkin @ Mar 1 2008, 14:19) *
Какую функцию для открытия порта нужно использовать при работе через termios: cyg_io_loop или open?

В общем случае используется cyg_io_lookup().
Но если добавить пакет CYGPKG_IO_FILEIO (слой совместимости с posix file io), то можно использовать fopen().
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 04:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016