필자가 작성한 프로그램에서 비동기 작업을 처리하는 방법을 잘 모르겠다. 적어도 경험이 많은 사람이 적어도 올바른 방향으로 나를 가리킬 수 있기를 바란다.리눅스에서의 병렬 처리
임베디드 ARM 프로세서에서 Angstrom Linux를 실행 중입니다. 내 프로그램은 노출 된 하드웨어 PWM과 PTP를 통한 카메라를 통해 여러 서보를 제어합니다. 또한 임의의 클라이언트 (이 경우에는 Android)로부터 명령을받는 소켓 데몬입니다. 카메라 PTP는 속도가 느리기 때문에 프로그램의 나머지 부분이 응답해야하기 때문에 작업을 마칠 때까지 기다릴 필요가 없습니다.
스레드를 사용해 보았지만 카메라 스레드의 문제로 인해 전체 프로세스가 중단 된 것 같습니다. 이상적으로는 카메라를 자체적으로 꺼내서 카메라로 보내고 싶으면 끝내면 주 기능을 알 수 있습니다. 이것은 적절한 포크 기법입니까 아니면 부적절하게 스레딩을 구현 했습니까?
또한, 그때 나는 이미 더 이상 크로스 컴파일 문제를 피하기 위해 큰 차 라이브러리를 멀리하고 싶습니다. 제안에 대해 미리 감사드립니다.
왜 새 프로세스에서 실행하지 않습니까? 그런 다음 소켓을 통해 통신 하시겠습니까? – Hassan
고급 Linux 프로그래밍을 가이드로 사용했지만 clone() 함수를 다루지 않습니다. 적절한 기술로 보입니다 –
수 있습니다. 아니면 [system()'] (http://www.cplusplus.com/reference/clibrary/cstdlib/system/) 일 수 있습니다. 저것을 한번보세요. – Hassan