hybroid писал(а):MsDemonid писал(а):Возьмите те же софт-модемы. Вас ведь не удивляет, что почти всю работу, что раньше выполняли на аппаратном уровне, в этих модемах выполняет софт?
Драйвер. Выполняет драйвер. Как и в примере звуковых, выполняется драйвером. А про дешевизну софтварных устройств вы загибаете.
Приходилось ковырять эти самые модемы, дабы вырезать из них ММХ. Б
ольшую часть работы выполняет именно софт в юзермоде. Драйвер там только играет роль прокладки между регистрами модема и софтом.
Что касается цены, здесь много факторов и в двух словах всего не учтешь. Если брать пром. масштабы, то все зависит от объема партии. Если же брать самоделки, то софт обходится даром, в любом случае будет экономия.
hybroid писал(а):Драйвер не равен софтине, запускаемой в userspace. Только в микроядерной архитектуре в первом приближении получается нечто похожее, но это один хрен другой уровень. А вам же хочется из пользовательской софтины, запускаемой пользователем, заниматься прямым ногодрыганьем.
В чем принципиальная разница доступа к СОМ-порту из драйвера или из программы?
hybroid писал(а):Вы, видимо, читали плохо, т.к. я говорил о быдлокоде вообще без использования каких-либо библиотек, исключительно на своих костылях. Такого - до хренища. Читайте ещё раз.
Ну извиняйте, недопонял
hybroid писал(а):О боги, чтобы опуститься до уровня доса, без какого-то вменяемого разделения всего, чего можно - вам придётся "настраивать линукс" весьма долго.
Лень лезть в сорсы. Потому завязываем с линуксом, тем более "не моя" это система.
hybroid писал(а):Прямой доступ к порту из софта - это костыль. Поэтому и должен быть через костыль. Хотите с блекджеками и шлюхами сделать свою мигалку - пишите драйвер. Или по-человечески сделайте устройство, не требующее от протокола передачи данных передавать данные не по этому протоколу.
С каких это пор прямая работа с железом стала костылем? Драйвера изначально задумывались для нестандартных устройств, не более. И если откроете книги классиков программирования, то у них четко проводится эта грань - для стандартных устройств предпочтительнее работа напрямую, а не через биос или драйвера. Разумеется глупо напрямую прогать какой-нибудь сканер, раз на них вообще отсутствуют стандарты. Но СОМ и LPT стандартизированы, какие здесь могут возникнуть осложнения? Кому от этого будет вред?
hybroid писал(а):MsDemonid писал(а):Через СОМ и LPT легко и непринужденно присоединяются I2C, SPI и microLAN девайсы.
Вот об этом речь и идёт. Не хрен их туда толкать.
Почему? Религия не позволяет?
hybroid писал(а):Полуоткрытозакрытые стандарты почитайте и задумайтесь, почему LPT, он же IEEE 1284 должен каким-то образом вам это обеспечивать из ОС. Операционка не подумала о радиолюбителях и нестандартном применении порта? Да и правильно. И так уже на этот бедный порт за его жизнь навешали кучу костылей, хватит!
COM-порт. Двунаправленный последовательный интерфейс, связанный чуть более, чем полностью с RS-232C. Всю последнюю жизнь добавляет только проблем, благодаря своей асинхронности. В него подключались терминалы во времена динозавров. Потом в него подключались модемы/мыши. Сейчас в него подключают бесперебойники, кассовые аппараты и прочие встраиваемые устройства,
которые используют его по назначению. Почему вы собрались в него толкать что-то не по назначению? В вашем списке даже USART нету

Гордо выпрямившись требуете костыль?
Согласно классикам, порты служат для расширения функционала компьютера, путем подключения различных устройств и других компьютеров. Но, во всех этих определениях нет ни слова о том, что такое "не по назначению". Надо думать это идиоты написали десятки книг, из серии "расширяем возможности ПК". Вас послушать, так и мышка подключалась не по назначению, поскольку производители, в целях экономии, нередко использовали только два проводка, заглушая остальные линии
Вы не задумывались, для чего в том же СОМ оставили прямой доступ к управляющим линиям? Пральна, чтобы подключать не стандартные устройства, использующие эти линии по своему усмотрению.
Tolmi писал(а):Зачем таскать за собой скелеты ? Флоппи интерфейс тоже умер. И IDE туда же спешит. Их почему не оплакивают и почему по ним не скорбят ?
Вы будете смеяться, но у подруги на работе обнаружил коробочку дискет. Она на них отчеты в банк отвозит, грит так удобнее - оставил дискету и ушел, не нужно ждать. А дискету не жалко, копейки стоит
Вообще же флоппи вымерли по вполне очевидной причине - они были ненадежны. Что касается IDE, то вымирает только интерфейс подключения, а програмный интерфейс АТА никто не отменял. Потому и нет никакого "плача", программистам как-то до лампочки сколько проводов идет к винту, им главное чтобы порты на месте остались.
ploop писал(а):А что прикажете делать, если случай единичный? Ваять "железку" на один раз? А за чей счет?
Такая железка, в виде отладочной платы с МК, должна быть под рукой у любого любителя, разрабатывающего девайсы на МК (тем более использующем связь с ПК)
Накодить несколько строк UART<>SPI или UART<>IIC или что-то подобное - час с перекурами. Для поделок купить тиньку за 1$ или STM8 (что еще дешевле) тоже, думаю, не проблема.
Опять же, лишний посредник, лишние телодвижения. А для чего? Только для того, чтобы все было "по правилам"? А кто вообще решил, что SPI или I2C через COM & LPT - это не по правилам? Кто сказал, что связь с компом авто по СОМ-порту - это не правильно? Кто-нибудь может мне это внятно объяснить?
Раз уж зашел разговор о подходах, то давайте порассуждаем. У системы есть множество средств контроля действий юзермодной программы, включая контроль за временем реакции программы и возможность прибить ее в любое время. И уж прямой доступ к СОМ-порту она переживет, все равно это на ее работу не влияет. А вот контроля за действиями драйверов у системы не так много, поскольку они имеют равные с ней привелегии. Здесь все отдано на откуп программисту, в надежде, что он будет строго и по назначению использовать предоставляемый АПИ и только АПИ. Но контроля за этим нет никакого, система беззащитна перед драйвером. И если драйвер кривовато написан, либо его создатели чего-то не предусмотрели, либо сторонний драйвер захочет пободаться, то это верный способ показать юзеру синий экран. Так что вопрос спорный, что лучше - увидеть окошко "ваша программа выполнила недопустимые действия и будет закрыта", или проклинать драйверописателей за кривые руки. Потому я считаю, что если можно безопасно обойтись без драйверов, то нужно этим пользоваться.