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

 
 
> Обработка данных с COM-портов, вызов select?
ra9ftm
сообщение Sep 17 2010, 02:20
Сообщение #1


Участник
*

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



Кто как обрабатывает данные в своей программе? Сейчас использую вызов select(), но есть подозрение, что он внутри себя крутит цикл, тем самым нагружая ОС. Так ли это?
Судя по этому howto есть возможность указать функцию-обработчик поступающих данных отдельно, которая будет вызываться только при поступлении данных на порт:
http://tldp.org/HOWTO/Serial-Programming-H...115.html#AEN144
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
andybeg
сообщение Sep 27 2010, 10:58
Сообщение #2


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

Группа: Участник
Сообщений: 133
Регистрация: 30-11-06
Пользователь №: 22 954



у меня сейчас в программе стартуют три треда и в каждом из них идёт работа со своим уартом , сейчас использую select для ожидания данных. но что то мне гооврит, что это не оптимально и надо будет обращаться на прямую к регистрам приёма, такмне думается быстрее, но процессор помоим ощущениям select не грузит
кстатичтоза линукс?

Сообщение отредактировал andybeg - Sep 27 2010, 10:59
Go to the top of the page
 
+Quote Post
ra9ftm
сообщение Sep 27 2010, 11:13
Сообщение #3


Участник
*

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



linux 2.6.34, проц lpc3240 smile.gif
Go to the top of the page
 
+Quote Post
andybeg
сообщение Sep 27 2010, 12:00
Сообщение #4


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

Группа: Участник
Сообщений: 133
Регистрация: 30-11-06
Пользователь №: 22 954



тогда наверное мои слова актуальны все,я пишу для lpc2478
Go to the top of the page
 
+Quote Post
romez777
сообщение Sep 28 2010, 03:54
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



QUOTE (ra9ftm @ Sep 17 2010, 05:20) *
Кто как обрабатывает данные в своей программе? Сейчас использую вызов select(), но есть подозрение, что он внутри себя крутит цикл, тем самым нагружая ОС. Так ли это?


А вы посмотрите на реализацию select в драйвере, структура file_operations, метод epoll.
Go to the top of the page
 
+Quote Post
Demeny
сообщение Nov 11 2010, 09:54
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(ra9ftm @ Sep 17 2010, 05:20) *
Кто как обрабатывает данные в своей программе? Сейчас использую вызов select(), но есть подозрение, что он внутри себя крутит цикл, тем самым нагружая ОС. Так ли это?

Чем не устраивает старый добрый блокирующий read(...), запущенный в отдельном потоке ? select() удобно использовать при обслуживании нескольких файловых дескрипторов, а так он без надобности...ИМХО.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post

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

 


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


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