Давайте в качестве примера рассмотрим довольно распространенный периферийный контроллер USB, основанный на 8-битном ядре микроконтроллера 8051.Одна его сторона подключается к хост-контроллеру USB на настольном компьютере.Другой конец относится к контроллеру USB-устройства, который выступает в качестве конечной точки FIFO для хоста.
Для инициализации стороны устройства потребуется некоторое встроенное программное обеспечение 8051.Драйвер класса потребуется на стороне хоста.Как только они будут созданы, разработчик приложения будет иметь имя устройства на стороне хоста, которое может быть открыто для чтения / записи.Иногда поставщик предоставляет библиотеку для выполнения определенных задач устройства и изолирует пользователя от необработанного устройства.Часто Windows DLL доступна для скрытия низкоуровневого ввода-вывода и представления операций устройства как вызовов функций.
Дополнительная прошивка 8051 контролирует FIFO с конца устройства и интерпретирует сообщения, отправленные из хост-приложения или DLL, а затем выполняет действия,Эти действия могут быть низкого уровня, такие как чтение / запись из ячейки памяти или регистра.Они могут быть высокого уровня, например, устанавливать значение ШИМ для программируемого массива счетчиков.
Таким образом, ваше гипотетическое описание записи в регистр 0x1234 недалеко от того, как это часто реализуется.