Как я понял (или разуверьте меня
):
1. WiringOP является библиотекой пространства пользователя...
2. Для её работы, вообще говоря, не нужна поддержка со стороны модуля ядра, может работать без драйвера ... добираясь куда-то по портам GPIO напрямую, пользуясь стандартом на железо GPIO
3. Но из-за этого оно не может работать по прерываниям (на вход GPIO) - только программным опросом (циклическим, как работают программируемые логические контроллеры, PLC).
Таким образом, WiringOP
годится для организации циклического программного опроса ... ещё это называют pooling, или моноцикл - когда WiringOP в цикле непрерывно молотит опрос входов GPIO.
Это в точности напоминает тот цикл автоматического управления, как это реализуется в Arduino или промышленных PLC (программируемых логических контроллерах ... Siemens, Schneider Electric ... и т.п.).
И WiringOP
не годится для реакции на данные GPIO по прерываниям, по событиям... ну и таким образом, для организации многопоточной, параллельной работы и т.д.
Это не значит, что одно явно лучше другого или хуже.
Это разные
способы.
P.S. Хотя ... работа через драйвер, в стандартной sysfs модели Linux полностью перекрывает возможности WiringOP, т.е. включает все те возможности, но не наоборот. Но и WiringOP имеет право жить, за счёт большей простоты своего использования из программного кода, там где это уместно.