Поэтому, думая о том, как я бы сделал свое собственное оборудование / драйверы, я использую GPIO, и я знаю, что GPIO на самом деле использует определенные банки памяти в определенном диапазоне для всего оборудования, но как бы я начал читать и записывать их в эту память? банки?
Работает ли USB аналогичным образом?
P.S Я использую Raspberry Pi.
Если вы используете Linux, вы также можете использовать Proc interface
общаться с GPIO. Например, если вы видите это ссылка на сайт, он показывает, как контакты GPIO могут быть прочитаны или записаны непосредственно из командной строки.
Если вы используете систему, которая поддерживает mmap (), https://groups.google.com/forum/?fromgroups=#!topic/comp.os.linux.development.apps/2kiUc-dNa3c обсуждает использование mmap()
сделать это. В итоге ваш процесс откроет / dev / mem для чтения и записи и отобразит ваш базовый физический адрес как смещение в файл (а ваш параметр addr — это любой виртуальный адрес, который вы хотите использовать).