저는 C에서 리눅스에서 SPI 인터페이스 (ioctl)로 값을 얻는 데몬을 쓰고 있습니다. SPI (spidev-userland)는 약간 불안정한 것으로 보이며 임의의 시간에 데몬을 정지시킵니다.C 함수가 스레드로 호출 됨 - 리눅스 유저 랜드 프로그램
값을 가져 오는 함수에 대한 호출을 좀 더 잘 제어 할 필요가 있습니다. 그리고 그 값을 얻기 위해 기다릴 수있는 스레드로 생각하고있었습니다. 그것은 새로운 스레드가 데몬 자체를 제거하지 않고 그것을 동결시키고 죽입니다. 그런 다음 다시 시작하기 전에 ADC를 재설정하는 것과 같은 조치를 적용 할 수 있습니다. 이것이 가능한가?
I를 달성하기 위해 원하는의 의사 예 :
(함수 INT의 get_adc_value (INT의 adc_channel 플로트 * 값)) PID = 스레드
- (get_adc_value (1 & 값); // 스레드가 함수를 호출하도록합니다.
- wait_until_finish (pid, timeout); // 함수가 끝날 때까지 대기/시간 초과
- if (timeout) kill pid, start over // 스레드가 반환되지 않는 경우 // 주어진 시간에, 변수 값을 반환하고, 문제에 대한 모든 입력에 대한
감사를 계속 처리, 다른 반환 값 제정신 경우
빠른 답변 감사드립니다. 아마도 pthread_cond_timedwait 조건이 트릭을 수행 할 수 있다고 생각합니다. 작동 방식을 확인하기 위해 일부 테스트 코드를 작성해야합니다. – Einar