기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요?


제가 안드로이드 USB 디바이스를 이용하는 어플리케이션을 만들고 있는데요.


어떤 디바이스에 버튼입력을 감지하는데 이상하게 3~4초 정도 지연이 발생하네요.

몇몇 안드로이드 기기(갤럭시 노트, 갤럭시s3)에서는 지연이 거의 없는데

다른기기에서는(G3 , G2, 갤럭시s4, 엣지, 노트4 등) 대부분 지연이 발생합니다. 

그러니까 버튼을 누를 뒤 3~4초가 지나서 반응하는 경우가 많아요. 한 절반정도는 3초이후에 반응하고

1/10 정도는 바로 반응하기도 하는 것 같습니다. 


확인해보니 안되는 기기의 공통점은 커널버전이 3.4 이상이고

잘 되는 기기는 커널버전이 3.0.31 이네요.


커널단에 무슨 문제가 있을 수 있을까요?

웹 검색을 해봐도 USB 제어와 관련된 뭐가 달라졌는지 잘 모르겠더라구요.


버튼 입력을 받는 방식을 여러가지로 해봤는데 

usbDeviceConnection을 사용했다가 

libusb를 사용하고 있습니다.

두 방식 모두 결과는 동일했습니다. 

일반적으로 3초 이상의 지연이 있고 빠를 때는 1초 이내에 응답하기도 하구요.


아무튼 libusb의 interrupt_transfer를 사용했는데요.

지연되는 부분이 어디인지 확인하기 위해서 로그 찍어가면서 코드를 따라가다 보니

ioctl 로 urb를 제출하고 난 뒤에 poll 함수에서 멈춰있고 버튼입력을 받은 뒤

poll 자체를 벗어나는데 오래걸리더라구요. 


이후 다시 ioctl로 urb를 읽어오는데요. 


혹시 싶어서 poll에 timeout을 주고 강제적으로 fd에서 urb값을 읽어오도록 했는데

그 값 자체가 버튼을 누른지 3초 이상 지나야 바뀌는 것 같더라구요. 


혹시나 싶어서 키보드로 interrupt transfer를 시도해봤는데 키보드는 지연없이 잘 동작하네요.

넘겨주는 값이 이상해서 그런건지 이렇게까지 늦게 반응하는게 잘 이해되지 않습니다 .


이젠 어떤 시도를 해봐야 원인을 찾을 수 있을 지 모르겠네요. 


혹시 짐작가시는 바가 있으시다면 알려주시면 감사하겠습니다. 


읽어주셔서 감사합니다~



고등어

2015.12.17 05:42:06
*.36.136.16


Bulk를 한번 사용해보세요.

아라라라기

2015.12.17 20:03:49
*.106.171.173

Bulk 도 사용해 봤는데 마찬가지 입니다.

내용 추가하자면 가장 최근에 테스트한게 넥서스 7 태블릿 (커널버전 3.4)인데

여기서는 또 정상적으로 동작하네요.



List of Articles
번호 제목 글쓴이 날짜 조회 수
6248 크로스 컴파일러 질문입니다. [2] vain 2015-12-30 254
6247 리눅스에서 인터럽트 트랜스퍼의 폴링인터벌을 조절할 수 있는 방법이... [1] 아라라라기 2015-12-26 215
6246 USB networ driver CDC NCM endpoint 질문 [10] 은민아빠 2015-12-23 699
6245 6410 Sleep Mode 질문 [1] 깜성 2015-12-18 254
6244 JNI 에서 V4L2를 사용할수 있나요? [5] biokk 2015-12-17 466
» 안드로이드 버튼입력 지연 [2] 아라라라기 2015-12-15 211
6242 안드로이드 지자기 센서 포팅과 관련하여 질문드립니다. [4] ImYeol 2015-11-26 420
6241 /dev/mmcblk0rpmb가 나오게 하려면 어떻게 해야 하나요? [1] 혜민아빠 2015-11-19 204
6240 udev 를 이용하여 /dev 사용권한을 변경할수 있나요? [1] pedor11 2015-11-18 185
6239 camera HAL시 퍼미션을 얻을 수 있는가요? [2] 조신 2015-11-18 147
6238 slattach 기능을 안드로이드에서 이용할 수 있는 방법 문의드립니다 [4] 엘카 2015-11-03 276
6237 안드로이드 textureview로 동영상 재생시 black screen 질문드려요 새삶 2015-10-28 625
6236 arm컴파일러관련 질문인데요.. [2] pedor11 2015-10-23 267
6235 [안드로이드 서비스 실행관련] [1] 밥줘잉 2015-10-09 229
6234 리눅스 SDL 라이브러리로 4 채널 블랙박스 UI 성능이 나올지 잘 ... 파란새 2015-10-07 531
6233 키이벤트 관련 질문드립니다. [3] 하하호호하하 2015-10-06 188
6232 PWM Timer2 Prescaler값 변경시 시스템 시간 지연 문제? [3] 루벤94 2015-10-06 209
6231 Android HAL의 필요성? [4] Supsupi 2015-10-02 534
6230 AOSP user 모드 빌드 시 주의사항 질문드립니다. [1] 엘카 2015-09-26 255
6229 input device I2C 통신 관련 질문입니다. file [5] ImYeol 2015-09-25 621

사용자 로그인