История изменений
Исправление i-rinat, (текущая версия) :
А это точно можно сделать для /sys/class/gpio/gpio4/value ?
Конечно нельзя. Это же псевдофайлы, их нельзя мапить. Для них определены только операции чтения и записи. Туда удобно писать из скриптов. Но если нужно работать быстро и с минимальными задержками, лучше работать напрямую.
GPIO в малинке, как и в других аналогичных железках, отображаются в физические адреса памяти. Пишешь туда значение — GPIO пин поднимается или опускается. Так же и в обратную сторону — нужно просто читать память. Для доступа к физическим адресам просто мапишь /dev/mem по определённому смещению к себе в адресное пространство, и вперёд.
Это в какой операционной системе?
А какая разница-то? Под Linux это, не на голом железе.
http://codeandlife.com/2015/03/25/raspberry-pi-2-vs-1-gpio-benchmark/
Исходная версия i-rinat, :
А это точно можно сделать для /sys/class/gpio/gpio4/value ?
Конечно нельзя. Это же псевдофайлы, их нельзя мапить. Для них определены только операции чтения и записи. Туда удобно писать из скриптов. Но если нужно работать быстро и с минимальными задержками, лучше работать напрямую.
GPIO в малинке, как и в других аналогичных железках, отображаются в физические адреса памяти. Пишешь туда значение — GPIO пин поднимается или опускается. Так же и в обратную сторону — нужно просто читать память. Для доступа к физическим адресам просто мапишь /dev/mem по определённому смещению к себе в адресное пространство, и вперёд.