하드웨어 장치와 해당 드라이버를 HWMON 하위 시스템과 INPUT 하위 시스템에 연결하는 것의 성능 차이는 무엇입니까?
SPI 버스를 통해 연결된 ADC가 내장된 보드가 있습니다. 현재는 HWMON 하위 시스템에 바인딩된 간단한 공급업체 제공 장치 드라이버를 사용합니다. ADC가 자주 읽으면 CPU 시간이 많이 소모됩니다. HWMON 하위 시스템보다 INPUT 하위 시스템을 사용하는 드라이버를 만드는 것이 더 효율적일까요?
답변1
제 생각에는 HWMON 하위 시스템은 상대적으로 값비싼 장치에서 읽는 데 가장 적합하지만 애플리케이션에서 이를 요구하는 경우에만 그렇습니다.
INPUT 하위 시스템 드라이버에서는 애플리케이션이 장치에서 얼마나 자주 읽어야 하는지 드라이버에 알려주거나 드라이버가 정기적으로 장치를 폴링하는 것을 허용하는 메커니즘을 구현해야 합니다.항상,이끌다마디 없는CPU 소비.
공급업체가 제공하는 장치 드라이버 코드를 비판적으로 살펴보아야 합니다. 실제로 생산 품질입니까, 아니면 성능에 신경 쓰지 않고 ADC를 읽는 방법에 대한 간단한 예입니까?
루프에서 어리석게 회전하여 ADC 관련 타이밍을 수행하고 임베디드 플랫폼이 고해상도 타이머를 제공할 수 있는 경우 코어가 다시 돌아가야 할 때까지 다른 작업을 수행할 수 있도록 하는 시계 이벤트 핸들러 또는 기타 메커니즘을 사용할 수 있습니다. 루프를 교체하십시오. ADC를 읽어보는 것이 좋습니다. 연결에 사용되는 하위 시스템에 관계없이 드라이버가 사용하는 CPU 시간을 크게 줄일 수 있습니다.