Я хотел бы спросить о вещах, которые я до сих пор не получил после прочтения многих статей по USB, включая официальные спецификации USB 2.0.
Что такое конечные точки и какова их цель? Позвольте мне объяснить немного: из того, что я понял, конечная точка является источником или местом назначения данных. Я не хочу быть грубым, но у меня болит голова, потому что я не могу понять, почему. Я имею в виду, что USB - это последовательная шина, поэтому она должна заботиться только о доставке данных по назначению. Направление это устройство. Зачем более включать несколько пунктов назначения в устройство в виде конечных точек? Я имею в виду, что USB-устройство может управлять данными так, как хочет, так, как хочет любой разработчик логической структуры, так зачем добавлять их для передачи спецификаций?
В USB-хосте на ПК USB-хост загружает на устройство соответствующие драйверы. Итак, допустим, я подключил какое-то USB-устройство нестандартного класса. Драйвер USB-хоста получит свои идентификаторы и так далее, и, узнав устройство, он должен загрузить свои драйверы. Но я думал, что драйверы устройств присутствуют в ядре, так как их можно загрузить дополнительно?
Кроме того, допустим, что мой USB-хост подключен к ПК через PCI. Таким образом, мое хост-устройство USB будет генерировать некоторое PCI-прерывание, чтобы привлечь внимание ОС, а затем ОС сначала должна загрузить драйвер хоста USB. Разве это не слишком медленный процесс? Я имею в виду, да, даже USB 3.0 намного медленнее, чем процессор, но все же ...
Спасибо за любой ответ, пожалуйста, если вы знаете что-то о помощи enpoints, второй вопрос более теоретический. Еще раз спасибо :)