Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Jul 02, 2022 2:53 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 11 posts ] 
Author Message
PostPosted: Tue Sep 30, 2014 8:40 pm 
Offline
KSoC/GSoC Student

Joined: Mon May 20, 2013 6:34 pm
Posts: 25
Я написал драйвер для USB-to-COM конвертера от конторы FTDI. Стало ясно, что использовать драйвер, как прослойку между программой и виртуальным COM-портом не слишком практично и удобно, в том числе и потому, что подобные конвертеры производят разные фирмы (и для каждого нужен будет свой драйвер). Поэтому будет разумно написать прослойку (подсистему) виртуальных COM-портов, аналогичную Windows. Предлагаю обсудить подробности реализации, после чего я возьмусь за это дело. Пока я это представляю, как процедуру RegVCP() для драйвера. И доработка одной из системных функций, чтобы не пришлось переписывать программы, которые уже работают с COM-портом

I've developed driver for USB-to-COM converter from FTDi company. It became clear, that using driver to communicate with virtual COM-port not that handy and easy, also because there are many converters from different manufacturers (and each require own driver). That's why it is reasonable to develop Virtual COM Port (VCP) subsystem, like windows' one. As for now, I think it should look like RegVCP proc for driver. And rework of one of sys funcs, to make unnecessary rewriting existing programs, which use COM-port


Top
   
PostPosted: Tue Sep 30, 2014 8:57 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1317
Not many applications use the com port right now.
And the ones that do, access the I/O ports directly. They will need to be rewritten.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Top
   
PostPosted: Tue Sep 30, 2014 10:52 pm 
Offline
KSoC/GSoC Student

Joined: Mon May 20, 2013 6:34 pm
Posts: 25
Ah, yes. Really sysfunc 46 only reserves, I thought it whole interface)


Top
   
PostPosted: Wed Oct 01, 2014 9:24 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1460
gtament
Да, кроме стандартного RS232 у всех чипов имеется свой собственный функционал, доступный через дополнительные порты, MMIO или конфигспейс.

И люди выбирают конкретный чип не только ради стандартных COM-портов, но и еще и ради этих дополнительных печенек - RS485, GPIO, встроенного счетчика событий и что у них еще там наворочено.

Предусмотрен ли у тебя доступ к этим печенькам, или легче просто открыть для юзера все порты и MMIO?


Top
   
PostPosted: Wed Oct 01, 2014 10:36 am 
Offline
KSoC/GSoC Student

Joined: Mon May 20, 2013 6:34 pm
Posts: 25
В данном случае речь идет только о подсистеме виртуальных ком портов, прослойке между драйвером конкретного устройства и пприложением. Для ее работы по-прежнему нужен полноценный драйвер, который и будет реализовывать все то, что ты выше озвучил. И если кому-то эти плюшки понадобятся, то ему придется обращаться к устройству через драййвер и IOCTL. Надеюсь, понятно ответил


Top
   
PostPosted: Mon Oct 15, 2018 7:50 pm 
Offline

Joined: Tue Jun 24, 2008 11:12 pm
Posts: 68
Кто-нибудь этим занят сейчас? Если нет, то возьму эту таску себе. В планах:
  • Сделать в ядре базовую поддержку последовательных портов: вынести в экспорт функции для добавления/удаления, добавить системный вызов для приложений (перечисление, открытие/закрытие, запись/чтение, настройка параметров, аппаратный контроль потока);
  • Написать отдельный драйвер для стандартных портов;
  • Адаптировать usbftdi (возможно впоследствии написать универсальный usbcdc?);
  • Поправить system/terminal для работы с новым API.


Top
   
PostPosted: Mon Oct 15, 2018 9:48 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 440
какая то библиотечка про UART пробегала


Top
   
PostPosted: Wed Oct 17, 2018 11:49 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1498
Sh@dy , было бы здорово всё это реализовать!
Как будет что потестирвать — выкладывай.


Top
   
PostPosted: Sat Jun 11, 2022 10:12 pm 
Offline

Joined: Tue Jun 24, 2008 11:12 pm
Posts: 68
Хочу добавить новое событие для подсистемы последовательных портов. Назначение события пока что два:
  • уведомить все приложения о том, что в системе появился/исчез порт
  • уведомить приложение, открывшее порт, что доступны данные для чтения

В связи с этим вопрос: EVENT_EXTENDED, судя по всему, сейчас не используется. Можно его заменить?


Top
   
PostPosted: Sat Jun 11, 2022 10:29 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 724
I don't think EVENT_EXTENDED is to be used for that. There are virtual com devices, usb devices, ahci devices, network devices, etc: using a new event for each device type seems to be wasteful and just an improper design. I don't know what design would be a proper one though :D . It often happens in KolibriOS that to solve problem Y you have to solve problem X first. May be this is the case too.


Top
   
PostPosted: Sat Jun 11, 2022 11:04 pm 
Offline

Joined: Tue Jun 24, 2008 11:12 pm
Posts: 68
Спасибо за ответ. Я согласен с тем, что добавление очередного события, возможно, является не лучшим выходом в этой ситуации. Оставлю пока в стороне реализацию событий от последовательных портов. Данные от них можно будет получить просто по запросу.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 11 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited