저는 리눅스 커널에 익숙하지 않습니다. 저는 리눅스를 통해 PWM을 생성하려고합니다. API 사용자는 sysfs 인터페이스에 대해 이야기합니다. C에서 사용자 공간 프로그램을 구현하고 싶습니다.하지만 PWM을 사용하면 명령 줄을 사용하도록 강요합니다. 또한, CD를 사용하고있을 때와 마찬가지로 C를 사용하여 읽기, 쓰기를 사용하는 것이 문제가됩니다. 경로 디렉토리가 변경됩니다. 따라서 경로가 가변적입니다. sysfs를 사용하지 않고 pwm_config()에 값을 전달할 수있는 방법이 있습니까? 아마도 ioctl을 통해? 그렇다면 절차는 무엇입니까? 응용 프로그램의 C 코드 : 기간 및 듀티 사이클 등의 기타 파일 등sysfs가없는 PWM
void main(){
int export = open("/sys/class/pwm/pmwchip0/export",O_WRONLY);
int period,duty_cycle,enable;
if(export == -1)
{
perror("Export:");
}
합니다.
응용 프로그램을 실행하려고하면 다음 오류가 발생합니다.
Export:: No such file or directory
Export_write: Bad file descriptor
Period_write:: Bad file descriptor
Duty_cycle_write:: Bad file descriptor
Enable_write:: Bad file descriptor
경로를 바꾸면 경로가 자동으로/sys/class/pwm/pwmchip0에서 /sys/devices/soc0/amba/f8001000.timer/pwm/pwmchip0으로 바뀌는 것을 의미합니다. – gPats
'cd '하면 현재 디렉토리가 바뀌므로 다른 디렉토리에 대한 심볼릭 링크이며 일부 쉘은이를 수행합니다. 그러나 C 프로그램을 사용한다면 절대 경로를 사용해야하므로'/ sys/class/pwm/pwmchip0'을 열면 제대로 작동합니다. – rodrigo