Есть ли какая-либо причина не писать напрямую в файлы аппаратного оверлея? - PullRequest
0 голосов
/ 12 января 2020

Так часто при работе с выводами io (gpio, pwm, usb) в структуре файла будет файл, который имеет непосредственное отношение к выводу io, и люди часто изменяют вывод, используя echo val > file и cat file , Есть ли причина не просто записывать в этот файл, используя fopen или file.read/write?

В частности, сейчас я работаю с USB-устройством, которое использует SPCI, и у меня были различные разрешения проблемы, которые затрудняют использование pyusb или pyvisa, но я могу echo для устройства в /dev/device_file просто отлично. Я делал подобные вещи с помощью gpio pins без каких-либо побочных эффектов.

Я очень ценю любой ваш вклад (а также ссылки, говорящие о проблеме). Я пытался найти больше информации по этому вопросу, но по какой-то причине мне кажется, что я ничего не могу сказать об этом (возможно, я просто использую неправильные термины, но все же я добился небольшого прогресса в этом вопросе).

1 Ответ

1 голос
/ 13 января 2020

Я предполагаю, что когда вы упоминаете "file.read/write", вы ссылаетесь на функции в стандартной библиотеке Python для чтения и записи в файлы. Нет, не должно быть проблем с использованием этих функций для записи в файлы GPIO и PWM, и это было бы предпочтительнее, потому что тогда вы избегаете создания нового процесса оболочки для анализа вашей команды и, возможно, создания новых процессов для echo и cat команды.

Если вам интересно, вы можете использовать утилиту strace в вашей программе Python, а также в эквивалентных командах оболочки, чтобы сравнить, что они делают, но вам на самом деле не нужно для этих простых случаев.

...