Итак, по этой ссылке видно, что у вас есть pwm /sys/ класс /шм/.
Так что в настоящее время я помещаю правильные данные в соответствующие файлы, и все работает хорошо.
Это не проблема. Проблема в том, что вам нужно сделать «кошку» в файле /sys/class/pwm/{port}/request, прежде чем он станет активным. Поэтому, если вы перезагрузите его, он не будет работать, и вам придется его повторно инициировать.
Я пытался просто fopen("~request","r"), надеясь, что это сработает, но это не так. Открытие его для "w" либо. Я также пытался выполнить exec(), но это не сработало и все равно неуклюже. Я не хочу делать необходимые предположения.
Во всяком случае, вот мой код execv().
char *request[1];
request[0] = pwmbus;
execv("/bin/cat",request);
Каков самый элегантный способ кастрировать файл? Мне не нужна информация, которую он выводит. Он просто инициализирует sysfs. В противном случае мне придется делать это вручную или все время писать сценарии.
cat /sys/class/pwm/gpio_pwm.0:0/request
sysfs 719
int fd = open("/sys/class/pwm", O_RDONLY); char buf[1]; read(fd, buf, 1); close(fd);
- person   schedule 20.10.2012